OID_TAPI_GET_ID
The OID_TAPI_GET_ID OID requests the miniport driver to return a device ID for the specified device class associated with the selected line, address, or call.
Support for this request is mandatory.
This request uses an NDIS_TAPI_GET_ID structure, defined as follows:
typedef struct _NDIS_TAPI_GET_ID {
IN ULONG ulRequestID;
IN HDRV_LINE hdLine;
IN ULONG ulAddressID;
IN HDRV_CALL hdCall;
IN ULONG ulSelect;
IN ULONG ulDeviceClassSize;
IN ULONG ulDeviceClassOffset;
OUT VAR_STRING DeviceID;
} NDIS_TAPI_GET_ID, *PNDIS_TAPI_GET_ID;
The members of this structure contain the following information:
ulRequestID
Reserved.hdLine
Specifies the miniport driver's handle to the line.ulAddressID
Specifies an address on the given open line device. The value of this member is not validated by NDISTAPI when this request is made.hdCall
Specifies the miniport driver's handle to the call.ulSelect
Specifies whether the device ID is associated with the line, address, or a single call as one of the following:LINECALLSELECT_LINE
Selects the specified line device. The hdLine member must contain a valid line handle; hdCall and ulAddressID are unused.LINECALLSELECT_ADDRESS
Selects the specified address on the line. Both hdLine and ulAddressID must be valid; hdCall is unused.LINECALLSELECT_CALL
Selects the specified call. The hdCall member must be valid; hdLine and ulAddressID are unused.
ulDeviceClassSize
Specifies the size in bytes of the null-terminated, variable-size string specifying the device class of the device for which the configuration should be returned.ulDeviceClassOffset
Specifies the offset in bytes to the device-class string.DeviceID
Specifies the virtual address of a data structure of type VAR_STRING in which the device ID should be returned.The miniport driver fills this structure with the device ID to complete this request successfully.
Currently, there are two types of this request that must be supported by WAN NIC drivers:
IN DeviceClass = "ndis" // case insensitive
IN ulSelect = LINECALLSELECT_CALL
IN hdCall = ActiveCallHandle
OUT DeviceID = ConnectionWrapperID
DeviceID should be set to the NdisLinkContext handle returned by NDISWAN in the NDIS_MAC_LINE_UP structure for the initial NDIS_STATUS_WAN_LINE_UP indication to establish the link.
The miniport driver must make the initial line-up indication to establish a link (or open a data channel on a line) before returning from this request in order to supply this DeviceID value.
IN DeviceClass = "tapi/line"
IN ulSelect = LINECALLSELECT_LINE
IN hdCall = OpenLineHandle
OUT DeviceID = ulDeviceID
DeviceID will be set to the miniport driver-determined DeviceID associated with the line handle.
The MiniportQueryInformationfunction can return one of the following:
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALLINEHANDLE
NDIS_STATUS_TAPI_INVALADDRESSID
NDIS_STATUS_TAPI_INVALCALLHANDLE
NDIS_STATUS_TAPI_NODEVICE
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE