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
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 :
- Récupérez jusqu’au nombre maximal de paquets Rx qu’il peut indiquer.
- Initialisez les LISTES NBL.
- Ajoutez-les à la file d’attente NBL fournie par la structure
(située dans la structureNDIS_POLL_RECEIVE_DATA du paramètreNDIS_POLL_DATA NdisPoll PollData ). - Quittez le rappel.
Pour les achèvements de transmission, le pilote doit :
- Récupérez jusqu’au nombre maximal de paquets Tx qu’il peut terminer.
- Terminez les LISTES NBL.
- 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).
- 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 |