NDIS Object Identifiers

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

NDIS object identifiers (OIDs) are a set of system-defined constants that take the form OID_XXX. Each OID identifies an object, which is an information element in a management information base (MIB) that is maintained by a driver. Higher-level NDIS drivers set these OIDs in an NDIS_REQUEST-type structure for their calls to NdisRequestor NdisCoRequest. This section describes these OIDs.

NDIS OID requests are classified as follows:

  • A query is a call to retrieve information from or about the underlying NDIS driver, usually about the driver's or NIC's overall capabilities or current status.

    An NDIS protocol driver sets NdisRequestQueryInformation for the RequestType parameter to NdisRequest or NdisCoRequest when it makes global queries. Such a request made with NdisRequest is handled by the MiniportQueryInformation function of an underlying NIC driver. Such a request made with NdisCoRequest is handled by the MiniportCoRequest function of an underlying connection-oriented NIC driver or the ProtocolCoRequest function of a connection-oriented client, call manager, or MCM driver, depending on the target of the request.

  • A statistics query is a call to retrieve information about network performance. Such a request always originates in a user-mode application. Protocol drivers never set NdisRequestQueryStatistics for the RequestType parameter to NdisRequest or NdisCoRequest. Such a request made with NdisRequest is handled either by NDIS or by the MiniportQueryInformation function of an underlying NIC driver. Such a request made with NdisCoRequest is handled either by NDIS or by the MiniportCoRequest function of an underlying connection-oriented NIC driver.

  • A set is a call with directions for the underlying NDIS driver, such as setting the header format that the underlying driver should use for receive indications.

    An NDIS protocol driver sets NdisRequestSetInformation for the RequestType parameter to NdisRequest or NdisCoRequest when it makes this type of request. Such a request made with NdisRequest is handled by the MiniportSetInformation function of an underlying NIC driver. Such a request made with NdisCoRequest is handled by the MiniportCoRequest function of an underlying connection-oriented NIC driver. Such a request made with NdisCoRequest is handled by the MiniportCoRequest function of an underlying connection-oriented NIC driver or the ProtocolCoRequest function of a connection-oriented client, call manager, or MCM driver, depending on the target of the request.

Many system-defined OIDs are valid with more than one of the preceding NdisRequestXxx values. Associated with each NDIS object identified by an OID_XXX is a data buffer, which varies in size and format depending on the given OID. The caller of NdisRequestsupplies a pointer to this data buffer in the InformationBuffermember of the NDIS_REQUESTstructure.

OIDs are either general or media-specific in nature. Each defined OID is either an operational OID or a statistics OID. Support for each NDIS-defined OID is either mandatory or optional.

Some of the information about OIDs is presented in charts. For each entry (row), these charts contain the information summarized in the following table.

Column header Notation meaning

Length

By default, the value indicates the number of bytes of data associated with the OID.

For counters, a length of 4 indicates a 32-bit counter and 8 indicates a 64-bit counter.

The NIC driver cannot reset counters; counters wrap when they reach their maximum.

Values expressed in the form Arr(n), indicate an array of elements, each of size n. The underlying driver stores array elements consecutively, with no padding.

Q

An "M" indicates the mandatory OID is valid in calls to NdisRequestor NdisCoRequest with RequestType value NdisRequestQueryInformation or, from components other than protocols, NdisRequestQueryStatistics. An "O" indicates the optional OID is valid in the same type of request if the underlying NDIS driver supports the OID.

S

An "M" indicates the mandatory OID is valid in calls to NdisRequestor NdisCoRequest with RequestType value NdisRequestSetInformation. An "O" indicates the optional OID is valid in the same type of request if the underlying NDIS driver supports the OID.

Name

The system-defined OID_XXX, followed by a brief explanation of the constant name.

 

NDIS-defined OID_XXX constants are 4-byte values, encoded as shown in the following chart. However, OIDs of the form OID_TAPI_XXX do not have values that explicitly indicate whether support of each OID is mandatory or optional.

Byte (LSB to MSB) Code(s) Definition

1

0x N(unique value)

Differentiates each OID from others with the same value in the three high-order bytes.

2

0x01

Mandatory

0x02

Optional

3

0x01

Operational characteristics

0x02

Statistics

4

0x00

General information

0x01

Ethernet (802.3)

0x02

Token Ring (802.5)

0x03

Fiber Distributed Data Interface (FDDI)

0x05

LocalTalk

0x06

ARCNET

0x04

Wide area network (WAN)

0x07

TAPI

0x08

Native ATM

0x09

Wireless

0x0A

Reserved for infrared (IrDA)

0xFE

Call managers for connection-oriented media

0xFF

Vendor-specific information

 

Note   Codes 0x01-0xFE refer to system-defined, media-specific information.

 

For reference information that is specific to OIDs, see the following sections:

General Objects(OIDs supported by all drivers)

Ethernet Objects

Token Ring Objects

FDDI Objects

LocalTalk Objects

ARCNET Objects

WAN Objects

TAPI Objects

Wireless WAN Objects

Connection-Oriented Objects

Plug and Play and Power Management Objects

ATM Objects

IrDA Objects

Task Offload Objects

802.11 Wireless LAN Objects

 

 

Send comments about this topic to Microsoft