DOT11_EXTSTA_RECV_CONTEXT结构 (windot11.h)

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

DOT11_EXTSTA_RECV_CONTEXT结构定义 802.11 工作站接收数据包的 Native 802.11 属性,并由在可扩展工作站 (ExtSTA) 或网络监视器 (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

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

uChCenterFrequency

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

usNumberOfMPDUsReceived

媒体访问控制 (MAC) 协议数据单元的数量 (MPDU) 数据包的 802.11 工作站接收和重新组装的片段。 usNumberOfMPDUsReceived 的值必须从一个值到DOT11_MAX_NUM_OF_FRAGMENTS的值。

lRSSI

接收的信号强度指示 (RSSI) 值,表示上次收到的 802.11 数据包的 MPDU 片段。 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 宏访问 Native 802.11 OOB 数据,并使用以下参数:

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

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

要求

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

另请参阅

NdisMIndicateReceiveNetBufferLists

NET_BUFFER_LIST

NET_BUFFER

NET_BUFFER_LIST_INFO

OID_DOT11_DATA_RATE_MAPPING_TABLE

NDIS_OBJECT_HEADER