Guidelines for Indicating Received 802.11 Packets

Important  The Native 802.11 Wireless LAN interface is deprecated in Windows 10 and later. Please use the WLAN Device Driver Interface (WDI) instead. For more information about WDI, see WLAN Universal Windows driver model.

 

In general, the Native 802.11 miniport driver indicates received packets similar to the process described in Receiving Network Data. This section describes the additional requirements for indicating received 802.11 packets by a Native 802.11 miniport driver.

Before calling NdisMIndicateReceiveNetBufferLists to indicate received 802.11 packet data, the miniport driver must do the following:

  • Allocate a NET_BUFFER_LIST structure for the received 802.11 packet. Each NET_BUFFER_LIST structure must include out-of-band (OOB) data. For more information about the OOB data, see Media-Specific OOB Data for Received 802.11 Packets.

  • Allocate one or more NET_BUFFER structures for the packet data fragments. Each NET_BUFFER structure specifies a buffer allocated by the miniport driver. All NET_BUFFER structures that comprise the received packet data must be linked together, with the first NET_BUFFER structure added to the NET_BUFFER_LIST structure.

    For management service data unit (MSDU) packets, the first NET_BUFFER structure must specify a buffer that contains the 802.11 media access control (MAC), IEEE LLC/SNP, and EtherType data.

    For management media protocol data unit (MMPDU) frames, the miniport driver must allocate and link only one NET_BUFFER structure to the NET_BUFFER_LIST structure.

The type of 802.11 packet that the miniport driver indicates is dependent upon the current packet filter. Although the 802.11 station can receive certain types of 802.11 packets, such as MMPDU packets, the miniport driver must indicate the packet only if the corresponding packet filter is enabled. For more information about 802.11 packet filters, see OID_GEN_CURRENT_PACKET_FILTER.

Depending upon the current packet filter, the miniport driver indicates the following types of 802.11 packets:

  • Media access control (MAC) service data unit (MSDU) packets, which the 802.11 station has decrypted and reassembled from one or more MAC protocol data unit (MPDU) fragments. In this case, the NET_BUFFER_LIST contains only one NET_BUFFER, because the MSDU packets were reassembled.

  • MAC management protocol data unit (MMPDU) packets, which the 802.11 station has decrypted and reassembled from one or more MPDU fragments. In this case, the NET_BUFFER_LIST contains only one NET_BUFFER, because the MPDU packets were reassembled.

  • 802.11 Control frames.

  • Individual MPDU fragments if raw packet indications are enabled. For more information about raw packet indications, see Indicating Raw 802.11 Packets.

Note  An 802.11 station operating in Extensible Station Mode indicates undecrypted MSDU packets when safe mode is enabled. In this case, the MSDU may consist of multiple MPDU fragments, each of which is contained in a NET_BUFFER in the MSDU's NET_BUFFER_LIST.