2.2.4.1.1.2 NegotiateAPIVersion
The NegotiateAPIVersion packet is transmitted from a TAPI client to a TAPI server in a remote procedure call. Sending this packet allows an application to negotiate a TAPI version to use.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Req_Func |
|||||||||||||||||||||||||||||||
Reserved1 |
|||||||||||||||||||||||||||||||
hLineApp |
|||||||||||||||||||||||||||||||
dwDeviceID |
|||||||||||||||||||||||||||||||
dwVersion |
|||||||||||||||||||||||||||||||
dwVersionCurrent |
|||||||||||||||||||||||||||||||
dwNegotiatedVersion |
|||||||||||||||||||||||||||||||
ExtensionID |
|||||||||||||||||||||||||||||||
dwSize |
|||||||||||||||||||||||||||||||
Reserved2 |
|||||||||||||||||||||||||||||||
Reserved3 |
|||||||||||||||||||||||||||||||
Reserved4 |
|||||||||||||||||||||||||||||||
Reserved5 |
|||||||||||||||||||||||||||||||
Reserved6 |
|||||||||||||||||||||||||||||||
Reserved7 |
|||||||||||||||||||||||||||||||
VarData (16 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
Req_Func (4 bytes): An unsigned 32-bit integer. The identifier of the function that is invoked on the remote server. This value MUST be set to 52.
-
Return Values
-
On completion of ClientRequest, this field contains the result of the encapsulated telephony request. A value of 0 indicates success, and a LINEERR_Constants value indicates failure. The remote server MUST complete this call synchronously.
-
MUST return zero if the function succeeds or an error number if an error occurs. Common return values are as follows:
-
Name
Value
LINEERR_INCOMPATIBLEAPIVERSION
0x8000000C
LINEERR_OPERATIONUNAVAIL
0x80000049
LINEERR_NODRIVER
0x80000043
LINEERR_OPERATIONFAILED
0x80000048
LINEERR_NOMEM
0x80000044
LINEERR_RESOURCEUNAVAIL
0x8000004B
Reserved1 (4 bytes): An unsigned 32-bit integer. MUST be set to zero when sent and MUST be ignored on receipt.
hLineApp (4 bytes): An HLINEAPP. A handle to the client application's registration with TAPI. This field MUST have been obtained by sending the Initialize packet.
dwDeviceID (4 bytes): An unsigned 32-bit integer. Identifies the line device for which the interface version negotiation is to be performed. A valid value of dwDeviceID is in the range 0 to dwNumDevs – 1. The client obtains dwNumDevs by sending a Initialize packet to the remote server.
dwVersion (4 bytes): An unsigned 32-bit integer. The earliest TAPI version with which the application is compliant.
dwVersionCurrent (4 bytes): An unsigned 32-bit integer. The latest TAPI version with which the application is compliant.
dwNegotiatedVersion (4 bytes): An unsigned 32-bit integer. Set to TAPI_NO_DATA (0xFFFFFFFF). Upon successful completion of the request, this field will contain the TAPI version number that was negotiated.
ExtensionID (4 bytes): An unsigned 32-bit integer. Set to TAPI_NO_DATA (0xFFFFFFFF). Upon successful completion of the request, this field MUST contain the offset, in bytes, in the VarData field of a LINEEXTENSIONID packet that indicates the identifier of the provider-specific extensions.
dwSize (4 bytes): An unsigned 32-bit integer. The size, in bytes, of the packet that is indicated in the ExtensionID 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.
VarData (16 bytes): Present on successful completion of the request. Contains a LINEEXTENSIONID packet.
-
The contents of this field are DWORD aligned.