NDIS_POLL fonction de rappel (poll.h)

Les pilotes Miniport implémentent la fonction de rappel NdisPoll que NDIS interrogera pour obtenir des indications de réception et envoyer des achèvements.

Syntaxe

NDIS_POLL NdisPoll;

void() NdisPoll(
  [_In_]    void *Context,
  [_Inout_] NDIS_POLL_DATA *PollData
)
{...}

Paramètres

[_In_] Context

Pointeur vers les informations de contexte fournies par le pilote lors de la création de l’objet Poll.

[_Inout_] PollData

Pointeur vers une structure de NDIS_POLL_DATA que le pilote doit utiliser pour recevoir des indications et envoyer des complétions. Il contient également des détails sur le nombre de NBL à indiquer.

Remarques

Les pilotes miniport inscrivent le rappel NdisPoll lors de l’initialisation de l’adaptateur miniport. Les pilotes spécifient un point d’entrée pour la fonction NdisPoll au niveau du paramètre PollHandler de la structure NDIS_POLL_CHARACTERISTICS avant d’appeler NdisRegisterPoll.

NDIS appelle d’abord le rappel NdisPoll lorsque le pilote appelle NdisRequestPoll. NDIS continue d’appeler NdisPoll pendant que le pilote progresse sur les indications de réception ou les achèvements de transmission.

Le rappel NdisPoll peut être appelé à la fois à PASSIVE_LEVEL et DISPATCH_LEVEL IRQL. Le pilote ne doit pas faire d’hypothèses sur son niveau.

Le pilote doit case activée les paramètres de réception ou de transmission de la structure NDIS_POLL_DATA pour obtenir le nombre maximal de NBL qu’il peut indiquer ou terminer.

Pour les indications de réception, le pilote doit :

  1. Récupérez jusqu’au nombre maximal de paquets Rx qu’il peut indiquer.
  2. Initialisez les NBL.
  3. Ajoutez-les à la file d’attente NBL fournie par la structure NDIS_POLL_RECEIVE_DATA (située dans la structure NDIS_POLL_DATA du paramètre NdisPollPollData ).
  4. Quittez le rappel.

Pour les achèvements de transmission, le pilote doit :

  1. Récupérez jusqu’au nombre maximal de paquets Tx qu’il peut terminer.
  2. Terminez les NBL.
  3. Ajoutez-les à la file d’attente NBL fournie par la structure NDIS_POLL_TRANSMIT_DATA (située dans la structure NDIS_POLL_DATA du paramètre NdisPollPollData ).
  4. Quittez le rappel.

Le pilote ne doit pas activer l’interruption de l’objet Poll avant de quitter la fonction NdisPoll . NDIS continue d’interroger le pilote jusqu’à ce qu’il évalue qu’aucune progression n’est effectuée. À ce stade, NDIS arrête l’interrogation et demande au pilote de réactiver l’interruption en appelant le rappel NdisSetPollNotification .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 11
Serveur minimal pris en charge Windows Server 2022
En-tête poll.h (include ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

NdisSetPollNotification

NDIS_POLL_CHARACTERISTICS

NDIS_POLL_DATA

NDIS_POLL_RECEIVE_DATA

NdisRegisterPoll

NdisRequestPoll