公司动态
windows网络适配器驱动开发-开发 WiFiCx 客户端驱动程序(七)
NetAdapter 数据路径更改设置多个 Tx 队列默认情况下NetAdapterCx 将为用于 NetAdapter 的所有数据包创建一个 Tx 队列。如果驱动程序需要为质量服务QoS支持多个 Tx 队列或为不同的对等方设置不同的队列则可以通过设置相应的 DEMUX 属性来实现。 如果添加 demux 属性Tx 队列计数是最大对等数与最大 TID 数的乘积再加上1用于广播或多播。QOS 的多个队列在使用 NETADAPTER_INIT * 对象创建 NETADAPTER 之前客户端驱动程序应向其添加 WMMINFO demux... WIFI_ADAPTER_TX_DEMUX wmmInfoDemux; WIFI_ADAPTER_TX_WMMINFO_DEMUX_INIT(wmmInfoDemux); WifiAdapterInitAddTxDemux(adapterInit, wmmInfoDemux);这会导致翻译器按需创建多达 8 个 Tx 队列具体取决于 NBL WlanTagHeaderWMMInfo 值。客户端驱动程序从 EvtPacketQueueStart 查询框架用于此队列的优先级auto const priority WifiTxQueueGetDemuxWmmInfo(queue);在EvtStart和EvtStop之间放置到此队列的所有数据包都将具有给定的优先级。对等互连的多个队列在使用 NETADAPTER_INIT * 对象创建 NETADAPTER 之前客户端驱动程序应向其添加PEER_ADDRESS demux... WIFI_ADAPTER_TX_DEMUX peerInfoDemux; WIFI_ADAPTER_TX_PEER_ADDRESS_DEMUX_INIT(peerInfoDemux, maxNumOfPeers); WifiAdapterInitAddTxDemux(adapterInit, peerInfoDemux);客户端驱动程序从 EvtPacketQueueStart 查询框架用于此队列的对等地址auto const peerAddress WifiTxQueueGetDemuxPeerAddress(queue);在 EvtStart 和 EvtStop 之间的此队列中放置的所有数据包都具有给定的优先级。框架仅为驱动程序通过以下 API 添加的对等地址打开队列。WifiAdapterAddPeer告知 WiFiCx 对等方已连接到给定地址。 WiFiCx 将通过将队列关联到对等地址利用此地址进行对等多路分解。 驱动程序可以添加的最大对等数不能超过添加 Tx 非复数信息时提供的范围值。WifiAdapterRemovePeer告诉 WiFiCx 对等方已断开连接。 框架停止关联的队列。