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