A service provider is required to create one or more call handles (variables of type HDRVCALL) whenever TAPI calls one of these functions: TSPI_lineMakeCall, TSPI_lineCompleteTransfer, TSPI_lineForward, TSPI_linePickup, TSPI_linePrepareAddToConference, TSPI_lineSetupConference, TSPI_lineSetupTransfer, and TSPI_lineUnpark. When a service provider receives such a call, the service provider must set the variable supplied by TAPI to the value of the handle before returning from the call. TAPI considers this "pending call handle" to be tentatively valid. When the service provider actually creates the call, it must call the ASYNC_COMPLETION callback to formally validate the handle.
If TAPI calls the TSPI_lineCloseCall function before the service provider formally validates a pending call handle, the service provider must stop all further processing associated with the call handle and call the ASYNC_COMPLETION callback function using the error value LINEERR_OPERATIONFAILED.