windot11.h) (DOT11_EXTSTA_RECV_CONTEXT 结构

重要本机 802.11 无线 LAN 接口在 Windows 10 及更高版本中已弃用。 请改用 WLAN 设备驱动程序接口 (WDI) 。 有关 WDI 的详细信息,请参阅 WLAN 通用 Windows 驱动程序模型

DOT11_EXTSTA_RECV_CONTEXT结构定义 802.11 工作站接收的数据包的本机 802.11 属性,并由在 Extensible Station (ExtSTA) 或 Network Monitor (NetMon) 模式下运行的微型端口驱动程序指示。 有关这些操作模式的详细信息,请参阅 本机 802.11 操作模式

语法

typedef struct DOT11_EXTSTA_RECV_CONTEXT {
  NDIS_OBJECT_HEADER Header;
  ULONG              uReceiveFlags;
  ULONG              uPhyId;
  ULONG              uChCenterFrequency;
  USHORT             usNumberOfMPDUsReceived;
  LONG               lRSSI;
  UCHAR              ucDataRate;
  ULONG              uSizeMediaSpecificInfo;
  PVOID              pvMediaSpecificInfo;
  ULONGLONG          ullTimestamp;
} DOT11_EXTSTA_RECV_CONTEXT, *PDOT11_EXTSTA_RECV_CONTEXT;

成员

Header

DOT11_EXTSTA_RECV_CONTEXT结构的类型、修订和大小。 此成员的格式设置为 NDIS_OBJECT_HEADER 结构。

微型端口驱动程序必须将 Header 的成员设置为以下值:

类型

此成员必须设置为 NDIS_OBJECT_TYPE_DEFAULT。

修订

此成员必须设置为 DOT11_EXTSTA_RECV_CONTEXT_REVISION_1。

大小

此成员必须设置为 sizeof(DOT11_EXTSTA_RECV_CONTEXT)

有关这些成员的详细信息,请参阅 NDIS_OBJECT_HEADER

uReceiveFlags

通过位掩码指定的已接收数据包数据的属性。

如果微型端口驱动程序在 ExtSTA 模式下运行,则驱动程序必须始终将 uReceiveFlags 设置为零。

如果在 NetMon 模式下运行,则以下标志值对微型端口驱动程序有效。

DOT11_RECV_FLAG_RAW_PACKET

如果设置了此位,则数据包包含 802.11 工作站最初接收的数据。 有关原始数据包的详细信息,请参阅 指示原始 802.11 数据包

DOT11_RECV_FLAG_RAW_PACKET_FCS_FAILURE

如果设置了此位,则会使用帧检查序列接收原始数据包数据, (FCS) 失败。

注意 在设置DOT11_RECV_FLAG_RAW_PACKET_FCS_FAILURE时,微型端口驱动程序必须设置DOT11_RECV_FLAG_RAW_PACKET。

DOT11_RECV_FLAG_RAW_PACKET_TIMESTAMP

如果设置了此位,则 NIC 在 ullTimestamp 成员中设置时间戳信息。

uPhyId

标识符 (ID) 802.11 工作站接收数据包的 PHY。

uChCenterFrequency

802.11 工作站接收数据包的频带的信道中心频率,单位为兆赫 (MHz) 。

usNumberOfMPDUsReceived

(MAC) 协议数据单元 (MPDU) 数据包的 802.11 工作站接收和重新组装的片段的数量。 usNumberOfMPDUsReceived 的值必须介于 1 到 DOT11_MAX_NUM_OF_FRAGMENTS 的值。

lRSSI

接收的信号强度指示 (802.11 数据包的最后一个接收 MPDU 片段的 RSSI) 值。 RSSI 值以分贝为单位,引用为 1.0 毫瓦 (dBm) 。

ucDataRate

802.11 工作站接收数据包的数据速率。 ucDataRate 的值是 802.11 工作站的数据速率映射表中数据速率的 ucDataRateIndex 成员的值。 有关数据速率映射表的详细信息,请参阅 OID_DOT11_DATA_RATE_MAPPING_TABLE

uSizeMediaSpecificInfo

pvMediaSpecificInfo 成员中媒体特定信息的大小(以字节为单位)。 uSizeMediaSpecificInfo 支持复制特定于媒体的信息并将其传递给 IHV 扩展。

注意 此成员当前保留供将来使用,必须包含零。

pvMediaSpecificInfo

指向包含媒体特定信息的缓冲区的指针。 如果微型端口驱动程序将特定于媒体的 OOB 数据传递给特定于 IHV 的 802.3 协议驱动程序,微型端口驱动程序可以设置此成员。

本机 802.11 框架将此指针复制到 NDIS 接收指示中 802.3 NET_BUFFER_LIST 结构的 NetBufferListInfo 成员处的 MediaSpecificInformation 条目。

注意 IHV 扩展当前无法接收 MediaSpecificInformation

ullTimestamp

802.11 计时同步函数 (TSF) 计时器值(以微秒为单位),用于指定接收数据包的时间。 提供此成员是为了支持 指示原始 802.11 数据包

如果 NIC 不支持 ullTimestamp,则它不得在 uReceiveFlags 成员中设置DOT11_RECV_FLAG_RAW_PACKET_TIMESTAMP标志。

注解

执行 Native 802.11 接收操作时,微型端口驱动程序必须将每个收到的 802.11 数据包格式化为 NET_BUFFER_LIST 结构,并将数据包数据格式化为 NET_BUFFER 结构并链接到NET_BUFFER_LIST结构。 每个NET_BUFFER_LIST结构都必须包含带外 (OOB) 数据。 OOB 数据指定接收的数据包的属性,这些属性特定于无线 LAN (WLAN) 媒体。

微型端口驱动程序使用以下参数通过 NET_BUFFER_LIST_INFO 宏访问本机 802.11 OOB 数据:

  • _NBL 参数,它将指针传递给用于接收的 802.11 数据包的 NET_BUFFER_LIST 结构。
  • _ id 参数,该参数传递的标识符 (ID) MediaSpecificInformation 的值。
如果微型端口驱动程序在 uReceiveFlags 成员中设置了DOT11_RECV_FLAG_RAW_PACKET,则在准备DOT11_EXTSTA_RECV_CONTEXT结构时,驱动程序必须遵循以下准则:
  • usNumberOfMPDUsReceived 的值设置为 1。
  • lRSSI 的值设置为原始数据包本身的 RSSI 值。
  • ucDataRate 的值设置为原始数据包本身的 ucDataRateIndex 值。
  • ucRSSI 的值设置为原始数据包本身的规范化 RSSI 值。
有关原始数据包的详细信息,请参阅 指示原始 802.11 数据包

有关 Native 802.11 接收操作的详细信息,请参阅 Native 802.11 接收操作

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的 Windows 操作系统中可用。
标头 windot11.h (包括 Ndis.h)

另请参阅

NdisMIndicateReceiveNetBufferLists

NET_BUFFER_LIST

NET_BUFFER

NET_BUFFER_LIST_INFO

OID_DOT11_DATA_RATE_MAPPING_TABLE

NDIS_OBJECT_HEADER