MB Data Model

The MB driver model uses a data model that consists of a set of objects defined as abstractions of MB device features. Each object is identified by a unique object identifier (OID) and is defined by a set of corresponding attributes. The set of attributes is organized into a data structure. To manage the device, the MB Service and the MB miniport driver exchange OIDs and their associated data structures based on OID requests and indications provided by the Network Driver Interface Specification (NDIS).

In the MB driver model, only set and query operations are used for OID requests. The MB driver model does not use method operations. For indications, the MB driver model uses both event and transactional notifications to indicate state changes in the objects of the MB device. Transactional notifications also signal completion of an asynchronous transaction.

The following tables list the OIDs and status indications defined for MB miniport drivers, as well as the associated data structures. MB miniport drivers must implement all mandatory general OIDs that the NDIS 6.20 Specification requires. For a list of general OIDs for NDIS 6.x, see General Operational OIDs.

In addition, MB miniport drivers must implement OID_GEN_PHYSICAL_MEDIUM even though the NDIS Specification describes it as optional to implement.

The syntax and semantics of the MB OIDs listed in the following table are described in MB Operational Semantics. The interactions between the MB Service and the MB miniport driver are described in MB Operation Flowcharts.

WWAN-Specific OIDs

OID and Corresponding Data Structure Set operation Query operation GSM/CDMA
Windows 7 Windows 8 Windows 7 Windows 8
OID_WWAN_DRIVER_CAPS uses NDIS_WWAN_DRIVER_CAPS Not supported Not supported S S GSM, CDMA
OID_WWAN_DEVICE_CAPS has no corresponding structure Not supported Not supported A A GSM, CDMA
OID_WWAN_READY_INFO has no corresponding structure Not supported Not supported A A GSM, CDMA
OID_WWAN_SERVICE_ACTIVATION† uses NDIS_WWAN_SERVICE_ACTIVATION A A Not supported Not supported GSM, CDMA
OID_WWAN_RADIO_STATE uses NDIS_WWAN_SET_RADIO_STATE A A A A GSM, CDMA
OID_WWAN_PIN uses NDIS_WWAN_SET_PIN A Not supported A Not supported GSM, CDMA
OID_WWAN_PIN_LIST has no corresponding structure Not supported Not supported A A GSM, CDMA
OID_WWAN_PIN_EX uses NDIS_WWAN_SET_PIN_EX Not supported A Not supported A GSM, CDMA
OID_WWAN_HOME_PROVIDER has no corresponding structure Not supported Not supported A A GSM, CDMA
OID_WWAN_PREFERRED_PROVIDERS† uses NDIS_WWAN_SET_PREFERRED_PROVIDERS A A A A GSM only
OID_WWAN_VISIBLE_PROVIDERS has no corresponding structure Not supported Not supported A A GSM
OID_WWAN_REGISTER_STATE uses NDIS_WWAN_SET_REGISTER_STATE A A A A CDMA
OID_WWAN_SIGNAL_STATE uses NDIS_WWAN_SET_SIGNAL_INDICATION A A A A GSM, CDMA
OID_WWAN_PACKET_SERVICE uses NDIS_WWAN_SET_PACKET_SERVICE A A A A GSM, CDMA
OID_WWAN_PROVISIONED_CONTEXTS†† uses NDIS_WWAN_SET_PROVISIONED_CONTEXT A A A A GSM, CDMA
OID_WWAN_CONNECT uses NDIS_WWAN_SET_CONTEXT_STATE A A A A GSM, CDMA
OID_WWAN_SMS_CONFIGURATION uses NDIS_WWAN_SET_SMS_CONFIGURATION A A A A GSM, CDMA
OID_WWAN_SMS_READ uses NDIS_WWAN_SMS_READ Not supported A A A GSM, CDMA
OID_WWAN_SMS_SEND uses NDIS_WWAN_SMS_SEND A A Not supported Not supported GSM, CDMA
OID_WWAN_SMS_DELETE uses NDIS_WWAN_SMS_DELETE A A Not supported Not supported GSM, CDMA
OID_WWAN_SMS_STATUS uses NDIS_WWAN_SMS_STATUS Not supported Not supported A A GSM, CDMA
OID_WWAN_VENDOR_SPECIFIC† uses a vendor-defined structure A A Not supported Not supported GSM, CDMA
OID_WWAN_DEVICE_SERVICES has no corresponding structure Not supported Not supported Not supported A GSM, CDMA
OID_WWAN_SUBSCRIBE_DEVICE_SERVICE_EVENTS uses NDIS_WWAN_SUBSCRIBE_DEVICE_SERVICE_EVENTS Not supported A Not supported Not supported GSM, CDMA
OID_WWAN_AUTH_CHALLENGE uses NDIS_WWAN_AUTH_CHALLENGE Not supported Not supported Not supported A GSM, CDMA
OID_WWAN_USSD uses NDIS_WWAN_USSD_REQUEST Not supported A Not supported Not supported GSM
OID_WWAN_DEVICE_SERVICE_COMMAND uses NDIS_WWAN_DEVICE_SERVICE_COMMAND Not supported A Not supported A GSM, CDMA

Note

The following notes apply to the preceding table: † represents optional OIDs that miniport drivers may support. Miniport drivers that do not support the optional OIDs must not return them in OID_GEN_SUPPORTED_LIST.

†† represents miniport drivers that support GSM-based devices which can optionally support OID_WWAN_PROVISIONED_CONTEXTS set and query operations. Miniport drivers that support CDMA-based devices can optionally support OID_WWAN_PROVISIONED_CONTEXTS query operations for CDMA-based devices that report Simple IP (WWAN_CTRL_CAPS_CDMA_SIMPLE_IP).

Miniport drivers must support all non-optional OIDs. The MB Service may ignore any miniport driver that does not report all of the mandatory OIDs.

"A" and "S" in the Set and Query operation columns in the preceding table reflect the nature of the transaction for completing the OID request: "A" stands for an asynchronous transaction and "S" for a synchronous transaction.

The data structures in the preceding table correspond to set operation OIDs and to return data for synchronous query operation OIDs.

The following OIDs share a common variable length list data structure called WWAN_LIST_HEADER in their corresponding data structures:

  • OID_WWAN_READY_INFO
  • OID_WWAN_PREFERRED_PROVIDERS
  • OID_WWAN_VISIBLE_PROVIDERS
  • OID_WWAN_PROVISIONED_CONTEXTS
  • OID_WWAN_SMS_READ

WWAN-Specific Indications, Corresponding Data Structures, and OS Revisions

Indication and Corresponding Data Structure

Windows 7 Revision

Windows 8 Revision

NDIS_STATUS_WWAN_DEVICE_CAPS

uses NDIS_WWAN_DEVICE_CAPS

NDIS_WWAN_DEVICE_CAPS_REVISION_1

NDIS_WWAN_DEVICE_CAPS_REVISION_2

NDIS_STATUS_WWAN_READY_INFO

uses NDIS_WWAN_READY_INFO

NDIS_WWAN_READY_INFO_REVISION_1

NDIS_WWAN_READY_INFO_REVISION_1

NDIS_STATUS_WWAN_RADIO_STATE

uses NDIS_WWAN_RADIO_STATE

NDIS_WWAN_RADIO_STATE_REVISION_1

NDIS_WWAN_RADIO_STATE_REVISION_1

NDIS_STATUS_WWAN_PIN_INFO

uses NDIS_WWAN_PIN_INFO

NDIS_WWAN_PIN_INFO_REVISION_1

NDIS_WWAN_PIN_INFO_REVISION_1

NDIS_STATUS_WWAN_PIN_LIST

uses NDIS_WWAN_PIN_LIST

NDIS_WWAN_PIN_LIST_REVISION_1

NDIS_WWAN_PIN_LIST_REVISION_1

NDIS_STATUS_WWAN_SERVICE_ACTIVATION

uses NDIS_WWAN_SERVICE_ACTIVATION_STATUS

NDIS_WWAN_SERVICE_ACTIVATION_STATUS_REVISION_1

NDIS_WWAN_SERVICE_ACTIVATION_STATUS_REVISION_1

NDIS_STATUS_WWAN_HOME_PROVIDER

uses NDIS_WWAN_HOME_PROVIDER

NDIS_WWAN_HOME_PROVIDER_REVISION_1

NDIS_WWAN_HOME_PROVIDER_REVISION_1

NDIS_STATUS_WWAN_PREFERRED_PROVIDERS

uses NDIS_WWAN_PREFERRED_PROVIDERS

NDIS_WWAN_PREFERRED_PROVIDERS_REVISION_1

NDIS_WWAN_PREFERRED_PROVIDERS_REVISION_1

NDIS_STATUS_WWAN_VISIBLE_PROVIDERS

uses NDIS_WWAN_VISIBLE_PROVIDERS

NDIS_WWAN_VISIBLE_PROVIDERS_REVISION_1

NDIS_WWAN_VISIBLE_PROVIDERS_REVISION_1

NDIS_STATUS_WWAN_REGISTER_STATE

uses NDIS_WWAN_REGISTRATION_STATE

NDIS_WWAN_REGISTRATION_STATE_REVISION_1

NDIS_WWAN_REGISTRATION_STATE_REVISION_2

NDIS_STATUS_WWAN_SIGNAL_STATE

uses NDIS_WWAN_SIGNAL_STATE

NDIS_WWAN_SIGNAL_STATE_REVISION_1

NDIS_WWAN_SIGNAL_STATE_REVISION_1

NDIS_STATUS_WWAN_PACKET_SERVICE

uses NDIS_WWAN_PACKET_SERVICE_STATE

NDIS_WWAN_PACKET_SERVICE_STATE_REVISION_1

NDIS_WWAN_PACKET_SERVICE_STATE_REVISION_1

NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS

uses NDIS_WWAN_PROVISIONED_CONTEXTS

NDIS_WWAN_PROVISIONED_CONTEXTS_REVISION_1

NDIS_WWAN_PROVISIONED_CONTEXTS_REVISION_1

NDIS_STATUS_WWAN_CONTEXT_STATE

uses NDIS_WWAN_CONTEXT_STATE

NDIS_WWAN_CONTEXT_STATE_REVISION_1

NDIS_WWAN_CONTEXT_STATE_REVISION_1

NDIS_STATUS_WWAN_SMS_CONFIGURATION

uses NDIS_WWAN_SMS_CONFIGURATION

NDIS_WWAN_SMS_CONFIGURATION_REVISION_1

NDIS_WWAN_SMS_CONFIGURATION_REVISION_1

NDIS_STATUS_WWAN_SMS_RECEIVE

uses NDIS_WWAN_SMS_RECEIVE

NDIS_WWAN_SMS_RECEIVE_REVISION_1

NDIS_WWAN_SMS_RECEIVE_REVISION_1

NDIS_STATUS_WWAN_SMS_SEND

uses NDIS_WWAN_SMS_SEND_STATUS

NDIS_WWAN_SMS_SEND_STATUS_REVISION_1

NDIS_WWAN_SMS_SEND_STATUS_REVISION_1

NDIS_STATUS_WWAN_SMS_DELETE

uses NDIS_WWAN_SMS_DELETE_STATUS

NDIS_WWAN_SMS_DELETE_STATUS_REVISION_1

NDIS_WWAN_SMS_DELETE_STATUS_REVISION_1

NDIS_STATUS_WWAN_SMS_STATUS

uses NDIS_WWAN_SMS_STATUS

NDIS_WWAN_SMS_STATUS_REVISION_1

NDIS_WWAN_SMS_STATUS_REVISION_1

NDIS_STATUS_WWAN_VENDOR_SPECIFIC

uses a vendor-defined structure

N/A

NDIS_STATUS_WWAN_USSD

uses NDIS_WWAN_USSD_EVENT

NDIS_WWAN_USSD_EVENT_REVISION_1

NDIS_WWAN_USSD_EVENT_REVISION_1

NDIS_STATUS_WWAN_DEVICE_SERVICE_SUPPORTED_COMMANDS

uses NDIS_WWAN_DEVICE_SERVICE_SUPPORTED_COMMANDS

NDIS_WWAN_DEVICE_SERVICES_REVISION_1

NDIS_WWAN_DEVICE_SERVICES_REVISION_1

NDIS_STATUS_WWAN_DEVICE_SERVICE_RESPONSE

uses NDIS_WWAN_DEVICE_SERVICE_RESPONSE

NDIS_WWAN_DEVICE_SERVICE_RESPONSE_REVISION_1

NDIS_WWAN_DEVICE_SERVICE_RESPONSE_REVISION_1

NDIS_STATUS_WWAN_DEVICE_SERVICE_EVENT

uses NDIS_WWAN_DEVICE_SERVICE_EVENT

NDIS_WWAN_DEVICE_SERVICE_EVENT_REVISION_1

NDIS_WWAN_DEVICE_SERVICE_EVENT_REVISION_1

NDIS_STATUS_WWAN_DEVICE_SERVICE_SUBSCRIPTION

uses NDIS_WWAN_DEVICE_SERVICE_SUBSCRIPTION

NDIS_WWAN_DEVICE_SERVICE_SUBSCRIPTION_REVISION_1

NDIS_WWAN_DEVICE_SERVICE_SUBSCRIPTION_REVISION_1

NDIS_STATUS_WWAN_AUTH_RESPONSE

uses NDIS_WWAN_AUTH_RESPONSE

NDIS_WWAN_AUTH_RESPONSE_REVISION_1

NDIS_WWAN_AUTH_RESPONSE_REVISION_1

NDIS_STATUS_WWAN_SET_HOME_PROVIDER_COMPLETE

uses NDIS_WWAN_SET_HOME_PROVIDER

N/A

NDIS_WWAN_HOME_PROVIDER_REVISION_2

Note

The following notes apply to the preceding table: † represents optional indications that miniport drivers may support. Be aware that if a miniport driver supports an optional OID, the miniport driver should also support the corresponding indication.

WWAN-Specific Indication Support for GSM, CDMA, and Unsolicited Indications

Indication

GSM

CDMA

Unsolicited

indication

allowed?

NDIS_STATUS_WWAN_DEVICE_CAPS

X

X

N

NDIS_STATUS_WWAN_READY_INFO

X

X

Y

NDIS_STATUS_WWAN_RADIO_STATE

X

X

Y

NDIS_STATUS_WWAN_PIN_INFO

X

X

N

NDIS_STATUS_WWAN_PIN_LIST

X

X

N

NDIS_STATUS_WWAN_SERVICE_ACTIVATION

X

X

N

NDIS_STATUS_WWAN_HOME_PROVIDER

X

X

N

NDIS_STATUS_WWAN_PREFERRED_PROVIDERS

X

Y

NDIS_STATUS_WWAN_VISIBLE_PROVIDERS

X

X

N

NDIS_STATUS_WWAN_REGISTER_STATE

X

X

Y

NDIS_STATUS_WWAN_SIGNAL_STATE

X

X

Y

NDIS_STATUS_WWAN_PACKET_SERVICE

uses NDIS_WWAN_PACKET_SERVICE_STATE

X

X

Y

NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS

X

X

Y

NDIS_STATUS_WWAN_CONTEXT_STATE

X

X

Y

NDIS_STATUS_WWAN_SMS_CONFIGURATION

X

X

Y

NDIS_STATUS_WWAN_SMS_RECEIVE

X

X

Y

NDIS_STATUS_WWAN_SMS_SEND

uses NDIS_WWAN_SMS_SEND_STATUS

X

X

N

NDIS_STATUS_WWAN_SMS_DELETE

X

X

N

NDIS_STATUS_WWAN_SMS_STATUS

X

X

Y

NDIS_STATUS_WWAN_VENDOR_SPECIFIC

X

X

Y

NDIS_STATUS_WWAN_USSD

X

Y

NDIS_STATUS_WWAN_DEVICE_SERVICE_SUPPORTED_COMMANDS

X

X

N

NDIS_STATUS_WWAN_DEVICE_SERVICE_RESPONSE

X

X

N

NDIS_STATUS_WWAN_DEVICE_SERVICE_EVENT

X

X

Y

NDIS_STATUS_WWAN_DEVICE_SERVICE_SUBSCRIPTION

X

X

N

NDIS_STATUS_WWAN_AUTH_RESPONSE

X

X

N

NDIS_STATUS_WWAN_SET_HOME_PROVIDER_COMPLETE

X

X

N

Multi-carrier Specific OIDs

The following changes apply to NDIS 6.30 miniport drivers that support multi-carrier mode. If the miniport driver does not support multi-carrier mode then please refer to the preceding table.

OID and Windows 8 Corresponding Data Structure

Query Operation

Set Operation

GSM/CDMA

OID_WWAN_HOME_PROVIDER

uses NDIS_WWAN_SET_HOME_PROVIDER

A

A

GSM, CDMA

OID_WWAN_PREFERRED_MULTICARRIER_PROVIDERS

uses NDIS_WWAN_SET_PREFERRED_MULTICARRIER_PROVIDERS. The PreferredListHeader.ElementType should be set to WwanStructProvider2 and the structure is WWAN_PROVIDER2.

A

A

GSM, CDMA

Multi-carrier Specific Indications, Corresponding Data Structures, and OS Revisions

Indication and Corresponding Data Structure

Windows 8 Revision

NDIS_STATUS_WWAN_HOME_PROVIDER

uses NDIS_WWAN_HOME_PROVIDER2

NDIS_WWAN_HOME_PROVIDER_REVISION_2

NDIS_STATUS_WWAN_PREFERRED_MULTICARRIER_PROVIDERS

uses NDIS_WWAN_PREFERRED_MULTICARRIER_PROVIDERS

NDIS_WWAN_PREFERRED_MULTICARRIER_PROVIDERS_REVISION_1. The PreferredListHeader.ElementType should be set to WwanStructProvider2 and the list should contain WWAN_PROVIDER2 structure.

NDIS_STATUS_WWAN_VISIBLE_PROVIDERS

uses NDIS_WWAN_VISIBLE_PROVIDERS

NDIS_WWAN_VISIBLE_PROVIDERS_REVISION_1. The VisibleListHeader.ElementType should be set to WwanStructProvider2 and the list should contain WWAN_PROVIDER2 structure.

Multi-carrier Specific Indication Support for GSM, CDMA, and Unsolicited Indications

Indication and Corresponding Data Structure

GSM

CDMA

Unsolicited

indication

allowed?

NDIS_STATUS_WWAN_HOME_PROVIDER

X

X

N

NDIS_STATUS_WWAN_PREFERRED_MULTICARRIER_PROVIDERS

X

X

Y

NDIS_STATUS_WWAN_VISIBLE_PROVIDERS

uses NDIS_WWAN_VISIBLE_PROVIDERS

X

X

N