As a query, the OID_GEN_MAC_OPTIONS OID specifies a bitmask that defines optional properties of the underlying driver or a NIC.
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:
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.
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.
A miniport driver that indicates receive operations with the NdisMIndicateReceiveNetBufferLists function should set this flag.
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.
Note This flag has been deprecated for use by NDIS 5.0 and later miniport drivers. NDIS 5.0 and later ignores this flag.
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 sets this flag when a miniport driver calls the NdisReadNetworkAddress function.
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.
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.
|Ntddndis.h (include Ndis.h)|