windot11.h) (DOT11_EXTSTA_RECV_CONTEXT 结构
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_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 条目。
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 的值。
- 将 usNumberOfMPDUsReceived 的值设置为 1。
- 将 lRSSI 的值设置为原始数据包本身的 RSSI 值。
- 将 ucDataRate 的值设置为原始数据包本身的 ucDataRateIndex 值。
- 将 ucRSSI 的值设置为原始数据包本身的规范化 RSSI 值。
有关 Native 802.11 接收操作的详细信息,请参阅 Native 802.11 接收操作。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Vista 和更高版本的 Windows 操作系统中可用。 |
标头 | windot11.h (包括 Ndis.h) |