EVT_PACKET_QUEUE_START回调函数 (netpacketqueue.h)
EvtPacketQueueStart 回调函数是客户端驱动程序实现的可选回调,用于启动数据包队列的数据路径。
语法
EVT_PACKET_QUEUE_START EvtPacketQueueStart;
void EvtPacketQueueStart(
[_In_] NETPACKETQUEUE PacketQueue
)
{...}
参数
[_In_] PacketQueue
数据包队列的句柄。
返回值
没有
言论
这是一个可选的回调。 在 EVT_NET_ADAPTER_CREATE_TX(RX)QUEUE 回调中注册此回调函数。 使用 NET_PACKET_QUEUE_CONFIG_INIT初始化结构后,设置 NET_PACKET_QUEUE_CONFIG 结构的相应成员,然后调用 NetTx(Rx)QueueCreate。
在此回调中,客户端驱动程序通常会配置其硬件对数据包传输或接收所需的信息。 由于此回调不返回值,因此不应失败,因此客户端驱动程序应在创建队列期间执行资源分配等作。 因此,此回调应该是快速执行的轻型函数。
客户端驱动程序在 EvtPacketQueueStart 返回后,才会收到对 EVT_PACKET_QUEUE_ADVANCE、EVT_PACKET_QUEUE_CANCEL或 EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED 的调用。 此外,EvtPacketQueueStart 在与 EvtPacketQueueAdvance、EvtPacketQueueCancel、EvtPacketQueueSetNotificationEnabled相同的执行上下文或线程中调用,因此客户端驱动程序无需在单个队列实例的这些回调函数之间进行同步。
队列启动时,NetAdapterCx 保证为所有队列的环形缓冲区 BeginIndex == NextIndex == 0。 开始后,框架不会读取或写入 数据包环缓冲区的 NextIndex,因此客户端驱动程序可以根据需要使用它或选择根本不使用它。 BeginIndex 由框架读取,但不会在 EvtPacketQueueStart之外修改。
有关详细信息和显示 NetAdapterCx 数据路径轮询模型的关系图,请参阅 传输和接收队列。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
最低 KMDF 版本 | 1.27 |
最低 UMDF 版本 | 2.33 |
标头 | netpacketqueue.h (include netadaptercx.h) |
IRQL | PASSIVE_LEVEL |
另请参阅
EVT_NET_ADAPTER_CREATE_RXQUEUE
EVT_NET_ADAPTER_CREATE_TXQUEUE