Partager via


NDIS_POLL fonction de rappel (poll.h)

Les pilotes miniport implémentent la fonction de rappel NdisPoll que NDIS interroge 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 NDIS_POLL_DATA que le pilote doit utiliser pour effectuer des indications de réception et envoyer des achèvements. Il contient également des détails sur le nombre de nbls à 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 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 quel niveau il sera.

Le pilote doit vérifier le recevoir ou transmettre paramètres de la structure NDIS_POLL_DATA pour obtenir le nombre maximal de NL qu’il peut indiquer ou terminer.

Pour recevoir des indications, le pilote doit :

  1. Récupérez jusqu’au nombre maximal de paquets Rx qu’il peut indiquer.
  2. Initialisez les LISTES 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 LISTES 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 maintient l’interrogation du pilote jusqu’à ce qu’il évalue qu’aucune progression vers l’avant 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 rappel.

Exigences

Exigence Valeur
client minimum pris en charge Windows 11
serveur minimum pris en charge Windows Server 2022
d’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