共用方式為


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_ADVANCEEVT_PACKET_QUEUE_CANCELEVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED 的呼叫。 此外,EvtPacketQueueStart 會在相同的執行內容或線程中呼叫,如 EvtPacketQueueAdvanceEvtPacketQueueCancelEvtPacketQueueSetNotificationEnabled,因此客戶端驅動程式不需要在個別佇列實例的這些回呼函式之間進行同步處理。

當佇列啟動時,NetAdapterCx 會保證 BeginIndex == NextIndex == 0 此佇列的所有通道緩衝區。 開始之後,架構不會讀取或寫入封包通道緩衝區 NextIndex,因此客戶端驅動程式可以視需要使用它,或選擇完全不使用它。 BeginIndex 是由架構讀取,但不會在 EvtPacketQueueStart之外修改。

如需詳細資訊和顯示 NetAdapterCx 資料路徑輪詢模型的圖表,請參閱 傳輸和接收佇列

要求

要求 價值
目標平臺 普遍
最低 KMDF 版本 1.27
最低 UMDF 版本 2.33
標頭 netpacketqueue.h (包括 netadaptercx.h)
IRQL PASSIVE_LEVEL

另請參閱

EVT_NET_ADAPTER_CREATE_RXQUEUE

EVT_NET_ADAPTER_CREATE_TXQUEUE

NetRxQueueCreate

NetTxQueueCreate

EVT_PACKET_QUEUE_ADVANCE

EVT_PACKET_QUEUE_CANCEL

EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED

EVT_PACKET_QUEUE_STOP