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を使用して構造体を初期化した後、netTx(Rx)QueueCreate を呼び出した後、NET_PACKET_QUEUE_CONFIG構造体の適切なメンバーを設定します。
このコールバックでは、クライアント ドライバーは通常、そのハードウェアがパケットの送信または受信に必要な情報を構成します。 このコールバックでは値が返されないため、失敗しないようにするため、クライアント ドライバーは、キューの作成時にリソースの割り当てなどのアクションを実行する必要があります。 したがって、このコールバックは、迅速に実行される軽量関数である必要があります。
クライアント ドライバーは、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 |
Header | netpacketqueue.h (netadaptercx.h を含む) |
IRQL | PASSIVE_LEVEL |
こちらもご覧ください
EVT_NET_ADAPTER_CREATE_RXQUEUE
EVT_NET_ADAPTER_CREATE_TXQUEUE
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示