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.
WWAN-Specific OIDs
OID and Corresponding Data Structure | Set, Windows 7 | Set, Windows 8 | Query, Windows 7 | Query, Windows 8 | GSM/CDMA |
---|---|---|---|---|---|
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_WWAN_DEVICE_CAPS_REVISION_1 NDIS_WWAN_DEVICE_CAPS_REVISION_2 |
|
uses NDIS_WWAN_READY_INFO |
NDIS_WWAN_READY_INFO_REVISION_1 NDIS_WWAN_READY_INFO_REVISION_1 |
NDIS_WWAN_RADIO_STATE_REVISION_1 NDIS_WWAN_RADIO_STATE_REVISION_1 |
|
uses NDIS_WWAN_PIN_INFO |
NDIS_WWAN_PIN_INFO_REVISION_1 NDIS_WWAN_PIN_INFO_REVISION_1 |
uses NDIS_WWAN_PIN_LIST |
NDIS_WWAN_PIN_LIST_REVISION_1 NDIS_WWAN_PIN_LIST_REVISION_1 |
NDIS_WWAN_SERVICE_ACTIVATION_STATUS_REVISION_1 NDIS_WWAN_SERVICE_ACTIVATION_STATUS_REVISION_1 |
|
NDIS_WWAN_HOME_PROVIDER_REVISION_1 NDIS_WWAN_HOME_PROVIDER_REVISION_1 |
|
NDIS_WWAN_PREFERRED_PROVIDERS_REVISION_1 NDIS_WWAN_PREFERRED_PROVIDERS_REVISION_1 |
|
NDIS_WWAN_VISIBLE_PROVIDERS_REVISION_1 NDIS_WWAN_VISIBLE_PROVIDERS_REVISION_1 |
|
NDIS_WWAN_REGISTRATION_STATE_REVISION_1 NDIS_WWAN_REGISTRATION_STATE_REVISION_2 |
|
NDIS_WWAN_SIGNAL_STATE_REVISION_1 NDIS_WWAN_SIGNAL_STATE_REVISION_1 |
|
NDIS_WWAN_PACKET_SERVICE_STATE_REVISION_1 NDIS_WWAN_PACKET_SERVICE_STATE_REVISION_1 |
|
NDIS_WWAN_PROVISIONED_CONTEXTS_REVISION_1 NDIS_WWAN_PROVISIONED_CONTEXTS_REVISION_1 |
|
NDIS_WWAN_CONTEXT_STATE_REVISION_1 NDIS_WWAN_CONTEXT_STATE_REVISION_1 |
|
NDIS_WWAN_SMS_CONFIGURATION_REVISION_1 NDIS_WWAN_SMS_CONFIGURATION_REVISION_1 |
|
NDIS_WWAN_SMS_RECEIVE_REVISION_1 NDIS_WWAN_SMS_RECEIVE_REVISION_1 |
|
NDIS_WWAN_SMS_SEND_STATUS_REVISION_1 NDIS_WWAN_SMS_SEND_STATUS_REVISION_1 |
|
NDIS_WWAN_SMS_DELETE_STATUS_REVISION_1 NDIS_WWAN_SMS_DELETE_STATUS_REVISION_1 |
|
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 |
uses NDIS_WWAN_USSD_EVENT |
NDIS_WWAN_USSD_EVENT_REVISION_1 NDIS_WWAN_USSD_EVENT_REVISION_1 |
NDIS_WWAN_DEVICE_SERVICES_REVISION_1 NDIS_WWAN_DEVICE_SERVICES_REVISION_1 |
|
NDIS_WWAN_DEVICE_SERVICE_RESPONSE_REVISION_1 NDIS_WWAN_DEVICE_SERVICE_RESPONSE_REVISION_1 |
|
NDIS_WWAN_DEVICE_SERVICE_EVENT_REVISION_1 NDIS_WWAN_DEVICE_SERVICE_EVENT_REVISION_1 |
|
NDIS_WWAN_DEVICE_SERVICE_SUBSCRIPTION_REVISION_1 NDIS_WWAN_DEVICE_SERVICE_SUBSCRIPTION_REVISION_1 |
|
NDIS_WWAN_AUTH_RESPONSE_REVISION_1 NDIS_WWAN_AUTH_RESPONSE_REVISION_1 |
|
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? |
X |
X |
N |
|
X |
X |
Y |
|
X |
X |
Y |
|
X |
X |
N |
|
X |
X |
N |
|
X |
X |
N |
|
X |
X |
N |
|
X |
Y |
||
X |
X |
N |
|
X |
X |
Y |
|
X |
X |
Y |
|
X |
X |
Y |
|
X |
X |
Y |
|
X |
X |
Y |
|
X |
X |
Y |
|
X |
X |
Y |
|
X |
X |
N |
|
X |
X |
N |
|
X |
X |
Y |
|
X |
X |
Y |
|
X |
Y |
||
X |
X |
N |
|
X |
X |
N |
|
X |
X |
Y |
|
X |
X |
N |
|
X |
X |
N |
|
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 |
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_WWAN_HOME_PROVIDER_REVISION_2 |
|
NDIS_WWAN_PREFERRED_MULTICARRIER_PROVIDERS_REVISION_1. The PreferredListHeader.ElementType should be set to WwanStructProvider2 and the list should contain WWAN_PROVIDER2 structure. |
|
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? |
X |
X |
N |
|
X |
X |
Y |
|
X |
X |
N |