2.2.4.1.6.1 DevSpecific
The DevSpecific packet is transmitted from a TAPI client to a TAPI server in a remote procedure call. Sending this packet MUST be used as a general extension mechanism to enable a TAPI implementation to provide features that are not described in the other TAPI functions. The meanings of these extensions are device specific.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Req_Func |
|||||||||||||||||||||||||||||||
|
Reserved1 |
|||||||||||||||||||||||||||||||
|
dwRequestID |
|||||||||||||||||||||||||||||||
|
lpContext |
|||||||||||||||||||||||||||||||
|
hPhone |
|||||||||||||||||||||||||||||||
|
lpParamsContext |
|||||||||||||||||||||||||||||||
|
lpParams |
|||||||||||||||||||||||||||||||
|
dwSize |
|||||||||||||||||||||||||||||||
|
Reserved2 |
|||||||||||||||||||||||||||||||
|
Reserved3 |
|||||||||||||||||||||||||||||||
|
Reserved4 |
|||||||||||||||||||||||||||||||
|
Reserved5 |
|||||||||||||||||||||||||||||||
|
Reserved6 |
|||||||||||||||||||||||||||||||
|
Reserved7 |
|||||||||||||||||||||||||||||||
|
Reserved8 |
|||||||||||||||||||||||||||||||
|
VarData (variable) |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
Req_Func (4 bytes): The identifier of the function that will be invoked on the remote server. This value MUST be set to 92.
-
Return Values
-
On completion of ClientRequest, this field MUST contain the result of the encapsulated telephony request. A nonzero request ID value indicates that the request is in progress and will complete asynchronously, and a PHONEERR_Constants value indicates synchronous failure.
-
Returns a positive request identifier if the function will be completed asynchronously or a negative error number if an error occurs. The dwParam2 parameter of the corresponding LINE_REPLY packet is 0 if the function succeeds, or is a negative error number if an error occurs. If the client specified a nonzero value in the dwRequestID field of the packet, the same value MUST be used for the returned positive request identifier. The following table lists common return values.
-
Name
Value
PHONEERR_INVALPHONEHANDLE
0x00000013
PHONEERR_NOMEM
0x0000001A
PHONEERR_INVALPOINTER
0x00000015
PHONEERR_RESOURCEUNAVAIL
0x0000001F
PHONEERR_OPERATIONUNAVAIL
0x0000001D
PHONEERR_UNINITIALIZED
0x00000022
PHONEERR_OPERATIONFAILED
0x0000001C
Additional return values are device specific.
Reserved1 (4 bytes): An unsigned 32-bit integer. MUST be set to zero when sent and MUST be ignored on receipt.
dwRequestID (4 bytes): An unsigned 32-bit integer. The identifier of the asynchronous request.
-
Value
Meaning
0x00000000
The server MUST generate a unique positive request ID to return as the Ack_ReturnValue.
0x00000001 — 0x7FFFFFFF
The server MUST use this value instead of generating a unique positive request ID.
lpContext (4 bytes): An unsigned 32-bit integer. The opaque, client-specified value that is used by the client upon request completion; MUST be returned by the server in the request completion packet.
hPhone (4 bytes): An HPHONE. The handle to a phone device. This field MUST have been obtained by sending the Open packet.
lpParamsContext (4 bytes): An unsigned 32-bit integer. The opaque, client-specified value that is used by the client upon request completion; MUST be returned by the server in the request completion packet.
lpParams (4 bytes): An unsigned 32-bit integer. The offset, in bytes, in the VarData field of a parameter block.
dwSize (4 bytes): An unsigned 32-bit integer. The size, in bytes, of the parameter block that is indicated in the lpParams field.
Reserved2 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved3 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved4 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved5 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved6 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved7 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved8 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
VarData (variable): MUST contain a parameter block indicated in the lpParams field.
-
The contents of this field are DWORD-aligned.