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 den entsprechenden Member 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.

Bei 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 Während der Erstellung der Warteschlange Aktionen wie die Ressourcenzuordnung ausführen. Daher sollte dieser Rückruf eine einfache Funktion sein, die schnell ausgeführt werden kann.

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 als EvtPacketQueueAdvance, EvtPacketQueueCancel und EvtPacketQueueSetNotificationEnabled aufgerufen, sodass Clienttreiber keine Synchronisierung zwischen diesen Rückruffunktionen für eine einzelne Warteschlange instance 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, sodass Clienttreiber es bei Bedarf verwenden oder nicht verwenden möchten. BeginIndex wird vom Framework gelesen, aber außerhalb von EvtPacketQueueStart nicht geändert.

Weitere Informationen und ein Diagramm, das das NetAdapterCx-Datenpfadabrufmodell zeigt, finden Sie unter Übertragen und Empfangen von Warteschlangen.

Anforderungen

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

Weitere Informationen

EVT_NET_ADAPTER_CREATE_RXQUEUE

EVT_NET_ADAPTER_CREATE_TXQUEUE

NetRxQueueErstellen

NetTxQueueErstellen

EVT_PACKET_QUEUE_ADVANCE

EVT_PACKET_QUEUE_CANCEL

EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED

EVT_PACKET_QUEUE_STOP