Freigeben über


EVT_PACKET_QUEUE_START Rückruffunktion (netpacketqueue.h)

Die EvtPacketQueueStart Rückruffunktion ist ein optionaler Rückruf, der vom Clienttreiber implementiert wird, um den Datenpfad für eine Paketwarteschlange zu starten.

Syntax

EVT_PACKET_QUEUE_START EvtPacketQueueStart;

void EvtPacketQueueStart(
  [_In_] NETPACKETQUEUE PacketQueue
)
{...}

Parameter

[_In_] PacketQueue

Ein Handle für eine Paketwarteschlange.

Rückgabewert

Nichts

Bemerkungen

Dies ist ein optionaler Rückruf. Registrieren Sie diese Rückruffunktion in Ihrer EVT_NET_ADAPTER_CREATE_TX(RX)QUEUE Rückruf. Legen Sie das entsprechende Element einer NET_PACKET_QUEUE_CONFIG-Struktur fest, nachdem Sie die Struktur mit NET_PACKET_QUEUE_CONFIG_INITinitialisiert haben, und rufen Sie dann NetTx(Rx)QueueCreateauf.

In diesem Rückruf konfiguriert ein Clienttreiber in der Regel Informationen, die seine Hardware für die Paketübertragung oder den Empfang benötigt. Da dieser Rückruf keinen Wert zurückgibt und daher nicht fehlschlagen sollte, sollten Clienttreiber Aktionen wie die Ressourcenzuordnung während der Warteschlangenerstellung ausführen. Daher sollte dieser Rückruf eine leichtgewichtige Funktion sein, die schnell ausgeführt wird.

Clienttreiber empfangen erst nach EvtPacketQueueStart Anrufe an EVT_PACKET_QUEUE_ADVANCE, EVT_PACKET_QUEUE_CANCELoder EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED. Darüber hinaus wird EvtPacketQueueStart- im gleichen Ausführungskontext oder Thread aufgerufen, wie EvtPacketQueueAdvance, EvtPacketQueueCancelund EvtPacketQueueSetNotificationEnabled, sodass Clienttreiber nicht zwischen diesen Rückruffunktionen für eine einzelne Warteschlangeninstanz synchronisiert werden müssen.

Wenn eine Warteschlange gestartet wird, garantiert NetAdapterCx, dass BeginIndex == NextIndex == 0 für alle Ringpuffer dieser Warteschlange. Nach dem Start liest oder schreibt das Framework keine NextIndex- für Paketringpuffer, sodass Clienttreiber sie entweder nach Bedarf verwenden oder nicht verwenden möchten. BeginIndex- wird vom Framework gelesen, aber nicht außerhalb von EvtPacketQueueStartgeändert.

Weitere Informationen und ein Diagramm mit dem NetAdapterCx-Datenpfadabfragungsmodell finden Sie unter Übermittlungs- und Empfangswarteschlangen.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Minimale KMDF-Version 1.27
Mindest-UMDF-Version 2.33
Header- netpacketqueue.h (include netadaptercx.h)
IRQL- PASSIVE_LEVEL

Siehe auch

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