TAPI objects use a set of associated OIDs to make both query and set information requests. These OIDs define the request interface between user-mode TAPI service providers and underlying WAN miniport drivers. Each such request goes through NDISTAPI and NDISWAN to the target miniport driver. This section defines the OIDs that are associated with TAPI objects.
The TAPI OIDs are defined in ntddndis.h. When building a driver that supports these OIDs, include ntddndis.h and ndistapi.h.
For more information about higher-level TAPI components, especially about user-mode service providers in which these OID requests originate, see the Microsoft® Win32® SDK.
The following chart summarizes the OIDs used to get operational characteristics for NDIS drivers and NICs that support TAPI on a WAN network.
| Q | S | Name |
|---|---|---|
| Mandatory OID_TAPI_XXX | ||
| M | OID_TAPI_ANSWER Answer |
|
| M | OID_TAPI_CLOSE Close |
|
| M | OID_TAPI_CLOSE_CALL Close Call |
|
| M | OID_TAPI_CONDITIONAL_MEDIA_DETECTION Conditional Media Detection |
|
| M | OID_TAPI_DROP Drop |
|
| M | OID_TAPI_GET_ADDRESS_CAPS Get Address Capabilities |
|
| M | OID_TAPI_GET_ADDRESS_ID Get Address ID |
|
| M | OID_TAPI_GET_ADDRESS_STATUS Get Address Status |
|
| M | OID_TAPI_GET_CALL_ADDRESS_ID Get Call Address ID |
|
| M | OID_TAPI_GET_CALL_INFO Get Call Information |
|
| M | OID_TAPI_GET_CALL_STATUS Get Call Status |
|
| M | OID_TAPI_GET_DEV_CAPS Get Device Capabilities |
|
| M | OID_TAPI_GET_ID Get ID |
|
| M | OID_TAPI_GET_LINE_DEV_STATUS Get Line Device Status |
|
| M | OID_TAPI_MAKE_CALL Make Call |
|
| M | OID_TAPI_OPEN Open |
|
| M | OID_TAPI_PROVIDER_INITIALIZE Provider Initialize |
|
| M | OID_TAPI_PROVIDER_SHUTDOWN Provider Shutdown |
|
| M | OID_TAPI_SET_APP_SPECIFIC Set Application Specific Member |
|
| M | OID_TAPI_SET_CALL_PARAMS Set Call Paramaters |
|
| M | OID_TAPI_SET_DEFAULT_MEDIA_DETECTION Set Default Media Detection |
|
| M | OID_TAPI_SET_MEDIA_MODE Set Media Mode |
|
| M | OID_TAPI_SET_STATUS_MESSAGES Set Status Messages |
|
| Optional OID_TAPI_XXX | ||
| O | OID_TAPI_ACCEPT Accept |
|
| O | OID_TAPI_CONFIG_DIALOG Configuration Dialog |
|
| O | OID_TAPI_DEV_SPECIFIC Device Specific |
|
| O | OID_TAPI_DIAL Dial Specified Number for Specified Call |
|
| O | OID_TAPI_GET_DEV_CONFIG Get Device Configuration |
|
| O | OID_TAPI_GET_EXTENSION_ID Get Extension ID |
|
| O | OID_TAPI_NEGOTIATE_EXT_VERSION Return Highest Acceptable Version Extension |
|
| O | OID_TAPI_SET_DEV_CONFIG Set Device Configuration |
|
| O | OID_TAPI_SECURE_CALL Secure Call |
|
| O | OID_TAPI_SELECT_EXT_VERSION Select Extension Version |
|
| O | OID_TAPI_SEND_USER_USER_INFO Send User User Information |
In contrast with other OIDs, defined TAPI OID values do not indicate whether each OID is required or optional. The length of the information buffer for TAPI OID requests varies according to the OID-specific structure. Instances of some OID-specific structures also vary in size, in particular for TAPI-defined structures with members of type VAR_STRING, described later.
WAN miniport drivers must support the OIDS labeled as Mandatory in the preceding chart. The extent to which a given miniport driver supports those labeled Optional in the preceding chart depends on the discretion of the driver writer and the capabilities of the NIC.
The functional requirements are quite simple for several of the TAPI OID requests. For example, the OID_TAPI_SET_APP_SPECIFIC request requires a NIC driver only to associate a ULONG value with a specified call instance, which can be retrieved later with an OID_TAPI_GET_CALL_INFO request. Requests that a NIC driver writer chooses to ignore should be completed with the NDIS_STATUS_TAPI_OPERATIONUNAVAIL status code.
A NIC driver can indicate the requests it supports, which might vary over time depending on line, address, or call state, by setting or clearing specific bits in the members of structures for some of the OID_TAPI_GET_XXX requests, such as in the ulAddrCapFlags member in the LINE_ADDRESS_CAPS structure.
For the declaration of LINE_ADDRESS_CAPS and other system-defined structures in which WAN miniport drivers maintain TAPI state, see ndistapi.h. For more information about these structures, see also the Win32 SDK.
For several OID_TAPI_XXX, the miniport driver is given an OID-specific structured information buffer. More than one of these TAPI structures have a member of type VAR_STRING, which is also a structured buffer, defined as follows:
typedef struct _VAR_STRING {
ULONG ulTotalSize;
ULONG ulNeededSize;
ULONG ulUsedSize;
ULONG ulStringFormat;
ULONG ulStringSize;
ULONG ulStringOffset;
} VAR_STRING, *PVAR_STRING;
The members of this structure contain the following information:
The following topics describe the OID_XXX elements listed in the preceding chart. These topics also describe any TAPI structures that may be associated with the OID_XXX elements.