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

 

 

Send comments about this topic to Microsoft