OID_GEN_MAC_OPTIONS

As a query, the OID_GEN_MAC_OPTIONS OID specifies a bitmask that defines optional properties of the underlying driver or a NIC.

Version Information

Windows Vista and later versions of Windows
Supported.

NDIS 6.0 and later miniport drivers
Not requested.

NDIS 5.1 miniport drivers
Mandatory.

Windows XP
Supported.

NDIS 5.1 miniport drivers
Mandatory.

Remarks

NDIS handles this OID for NDIS 6.0 and later miniport drivers.

A protocol that initiates this query can determine which of the flags the underlying driver sets, and can optionally take advantage of them.

The following flags are currently defined:

NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA
The protocol driver is free to access indicated data by any means. Some fast-copy functions have trouble accessing on-board device memory. Miniport drivers that indicate data out of mapped device memory should never set this flag. If a miniport driver does set this flag, it relaxes the restriction on fast-copy functions.

NDIS_MAC_OPTION_RECEIVE_SERIALIZED
The miniport driver indicates packets in a serial manner. That is, such a driver does not enter a new receive indication until the previous receive, if any, has been completed.

NDIS_MAC_OPTION_TRANSFERS_NOT_PEND
The miniport driver never completes receive indications asynchronously.

A miniport driver that indicates receive operations with the NdisMIndicateReceiveNetBufferLists function should set this flag.

NDIS_MAC_OPTION_NO_LOOPBACK
The NIC has no internal loopback support so NDIS will manage loopbacks on behalf of this driver. A miniport driver cannot provide its own software loopback as efficiently as NDIS, so every miniport driver should set this flag unless a NIC has hardware loopback support. WAN miniport drivers must set this flag.

NDIS_MAC_OPTION_FULL_DUPLEX
The miniport driver supports full-duplex transmits and indications on SMP platforms.

Note  This flag has been deprecated for use by NDIS 5.0 and later miniport drivers. NDIS 5.0 and later ignores this flag.

NDIS_MAC_OPTION_EOTX_INDICATION
This flag is obsolete.

NDIS_MAC_OPTION_8021P_PRIORITY
The NIC and its driver support 802.1p packet priority. For more information, see Packet Priority. Packet-priority values are received in NET_BUFFER structures from higher-layer drivers. The appropriate information is generated in the MAC headers of packets and transmitted over the network. In addition, this NIC and its driver support extracting the appropriate information from the MAC headers of packets received from the network. This information is forwarded in NET_BUFFER structures to higher-layer drivers.

Note  NDIS 6.0 and later and later and later miniport drivers must set the NDIS_MAC_OPTION_8021P_PRIORITY flag.

NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE
NDIS sets this flag when a miniport driver calls the NdisReadNetworkAddress function.

NDIS_MAC_OPTION_RECEIVE_AT_DPC
This flag is obsolete.

NDIS_MAC_OPTION_8021Q_VLAN
The miniport driver can assign and remove VLAN identifier (ID) marking in the MAC headers of packets. The driver maintains a configured VLAN ID for each NIC that the driver handles. The driver filters out incoming packets that do not belong to the VLAN to which a NIC is associated and marks outgoing packets with the VLAN ID. During the driver's MiniportInitializeEx function for a particular NIC, the driver initially sets the NIC's VLAN ID to zero. The driver's MiniportInitializeEx function then reads the following configuration parameter from the registry, and, if the parameter is present, sets the NIC's VLAN ID to the parameter's value.

VlanId, REG_DWORD

NDIS_MAC_OPTION_RESERVED
Reserved for NDIS internal use.

Note  A miniport driver that sets the NDIS_MAC_OPTION_8021Q_VLAN flag must also set the NDIS_MAC_OPTION_8021P_PRIORITY flag. In other words, a miniport driver that supports 802.1Q must also support 802.1p.

Requirements

Header

Ntddndis.h (include Ndis.h)

See also

MiniportInitializeEx

NdisReadNetworkAddress

NET_BUFFER