Overall Comparison with TAPI
The TSPI specification is very closely related to the TAPI specification. Most of the functions in one interface have a corresponding function in the other interface. The usual correspondence is as follows:
-
TSPI functions have the same names as TAPI functions except that they are prepended with "TSPI_". For example, the TAPI function lineAccept corresponds to the TSPI function TSPI_lineAccept.
-
Procedures that allow asynchronous operation insert a dwRequestID parameter of type DRV_REQUESTID as their first parameter. This parameter specifies the value to be returned to indicate asynchronous operation and to report asynchronous completion.
-
hCall parameters of type HCALL are replaced with hdCall parameters of type HDRVCALL, indicating the service provider's handle for the call.
-
hLine parameters of type HLINE are replaced with hdLine parameters of type HDRVLINE, indicating the service provider's handle for the line.
-
hPhone parameters of type HPHONE are replaced with hdPhone parameters of type HDRVPHONE, indicating the service provider's handle for the phone.
-
Procedures that create a new call, such as TSPI_lineMakeCall, replace a single lphCall parameter with two parameters: an htCall of type HTAPICALL parameter that passes in the TAPI handle for the call, and an lphdCall of type LPHDRVCALL that indicates the location to which the service provider must write its new handle for the call. A similar split of parameters occurs in TSPI_lineOpen and TSPI_phoneOpen.
-
At the TSPI level, there is no notion of "privilege" associated with device handles. Furthermore, at the API level, each application that has a device or call handle has a different handle, but TAPI merges these into a single handle in the service provider side. As a consequence, the error codes and status messages relating to privilege and number of clients using a device do not appear at the TSPI level.