EVT_PACKET_QUEUE_START fonction de rappel (netpacketqueue.h)
La fonction de rappel EvtPacketQueueStart est un rappel facultatif implémenté par le pilote client pour démarrer le chemin de 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 vers une file d’attente de paquets.
Valeur de retour
Aucun
Remarques
Il s’agit d’un rappel facultatif. Inscrivez cette fonction de rappel dans votre EVT_NET_ADAPTER_CREATE_TX(RX)QUEUE rappel. 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_CANCELou EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED jusqu’à ce que EvtPacketQueueStart retourne. En outre, EvtPacketQueueStart est appelé dans le même contexte d’exécution, ou thread, comme EvtPacketQueueAdvance, EvtPacketQueueCancel, et EvtPacketQueueSetNotificationEnabled, de sorte que les pilotes clients n’ont pas besoin de synchroniser entre ces fonctions de rappel pour une instance de file d’attente individuelle.
Quand 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 pas ou n’écrit pas NextIndex pour les mémoires tampons d’anneau de paquets, afin que les pilotes clients puissent 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 de 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.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
version minimale de KMDF | 1.27 |
version minimale de UMDF | 2.33 |
d’en-tête | netpacketqueue.h (include netadaptercx.h) |
IRQL | PASSIVE_LEVEL |
Voir aussi
EVT_NET_ADAPTER_CREATE_RXQUEUE
EVT_NET_ADAPTER_CREATE_TXQUEUE