3.1.7.2 TSPI_phoneDevSpecific

Syntax

LONG TSPI_phoneDevSpecific(dwRequestID, hdPhone, lpParams, dwSize)
This function is used as a general extension mechanism to enable a Telephony API implementation to provide features not described in the other operations. The meanings of these extensions are device specific.

Parameters

DRV_REQUESTID dwRequestID
Specifies the identifier of the asynchronous request. The Service Provider returns this value if the function completes asynchronously.

HDRVPHONE hdPhone
Specifies the Service Provider's opaque handle to the phone on which a device-specific operation is to be performed.

LPVOID lpParams
Specifies a far pointer to a memory area used to hold a parameter block. Its interpretation is device specific.

DWORD dwSize

Return Value

Returns zero if the function is successful, the (positive) dwRequestID value if the function will be completed asynchronously, or a negative error number if an error has occurred. Possible error returns are:

The size in bytes of the parameter block area.

PHONEERR_PHONEHANDLE
The specified phone handle is invalid.

PHONEERR_INVALPOINTER
The specified pointer parameter is invalid.

PHONEERR_OPERATIONUNAVAIL
The specified operation is not available.

PHONEERR_OPERATIONFAILED
The specified operation failed for unspecified reasons.

Additional error returns are device specific.

Comments

This operation provides a generic parameter profile. The interpretation of the parameter block is device specific. Indications and replies that are device specific should use the PHONE_DEVSPECIFIC message.

This function is called in direct response to an application calling the TAPI function phoneDevSpecific. The TAPI DLL translates the hPhone parameter used at the TAPI level to the corresponding hdPhone parameter used at the TSPI level. The lpParams buffer is passed through unmodified.

A service provider can provide access to device specific functions by defining parameters for use with this operation. Applications that want to make use of these device specific extensions should consult the device specific (i.e., vendor specific) documentation that describes what extentions are defined. Note that an app that relies on these device specific extensions will typically not be portable to work with other service provider environments.

See Also

Messages: PHONE_DEVSPECIFIC