Freigeben über


EVT_PACKET_QUEUE_START Rückruffunktion (netpacketqueue.h)

Die Rückruffunktion EvtPacketQueueStart 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

Keine

Bemerkungen

Dies ist ein optionaler Rückruf. Registrieren Sie diese Rückruffunktion in Ihrem 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_INIT initialisiert haben, und rufen Sie dann NetTx(Rx)QueueCreate auf.

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 leichte Funktion sein, die schnell ausgeführt wird.

Clienttreiber erhalten erst nach der Rückgabe von EvtPacketQueueStart Aufrufe von EVT_PACKET_QUEUE_ADVANCE, EVT_PACKET_QUEUE_CANCEL oder EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED. Darüber hinaus wird EvtPacketQueueStart im gleichen Ausführungskontext oder Thread wie EvtPacketQueueAdvance, EvtPacketQueueCancel und EvtPacketQueueSetNotificationEnabled aufgerufen, sodass Clienttreiber nicht zwischen diesen Rückruffunktionen für eine einzelne Warteschlange instance synchronisieren müssen.

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

Weitere Informationen und ein Diagramm mit dem NetAdapterCx-Datenpfadabfragemodell finden Sie unter Übertragungs- und Empfangswarteschlangen.

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1,27
UMDF-Mindestversion 2.33
Kopfzeile netpacketqueue.h (include netadaptercx.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

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