Partager via


fonction de rappel EVT_PACKET_QUEUE_START (netpacketqueue.h)

La fonction de rappel EvtPacketQueueStart est un rappel facultatif implémenté par le pilote client pour démarrer le chemin des données d’une file d’attente de paquets.

Syntaxe

EVT_PACKET_QUEUE_START EvtPacketQueueStart;

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

Paramètres

[_In_] PacketQueue

Handle dans une file d’attente de paquets.

Valeur de retour

None

Remarques

Il s’agit d’un rappel facultatif. Inscrivez cette fonction de rappel dans votre rappel EVT_NET_ADAPTER_CREATE_TX(RX)QUEUE . Définissez le membre approprié d’une structure NET_PACKET_QUEUE_CONFIG après avoir initialisé la structure avec NET_PACKET_QUEUE_CONFIG_INIT, puis appelez NetTx(Rx)QueueCreate.

Dans ce rappel, un pilote client configure généralement les informations dont son matériel a besoin pour la transmission ou la réception de paquets. Étant donné que ce rappel ne retourne pas de valeur et ne doit donc pas échouer, les pilotes clients doivent effectuer des actions telles que l’allocation de ressources lors de la création de la file d’attente. Par conséquent, ce rappel doit être une fonction légère qui s’exécute rapidement.

Les pilotes clients ne recevront pas d’appels à EVT_PACKET_QUEUE_ADVANCE, EVT_PACKET_QUEUE_CANCEL ou EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED tant qu’après le retour d’EvtPacketQueueStart . En outre, EvtPacketQueueStart est appelé dans le même contexte d’exécution, ou thread, que EvtPacketQueueAdvance, EvtPacketQueueCancel et EvtPacketQueueSetNotificationEnabled, de sorte que les pilotes clients n’ont pas besoin de synchroniser entre ces fonctions de rappel pour une file d’attente individuelle instance.

Lorsqu’une file d’attente démarre, NetAdapterCx garantit que BeginIndex == NextIndex == 0 pour toutes les mémoires tampons en anneau de cette file d’attente. Après le démarrage, l’infrastructure ne lit ni n’écrit NextIndex pour les mémoires tampons d’anneau de paquets, de sorte que les pilotes clients peuvent l’utiliser en fonction des besoins ou choisir de ne pas l’utiliser du tout. BeginIndex est lu par l’infrastructure, mais n’est pas modifié en dehors d’EvtPacketQueueStart.

Pour plus d’informations et un diagramme montrant le modèle d’interrogation du chemin de données NetAdapterCx, consultez Transmettre et recevoir des files d’attente.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1,27 %
Version UMDF minimale 2,33
En-tête netpacketqueue.h (incluez netadaptercx.h)
IRQL PASSIVE_LEVEL

Voir aussi

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