NDIS_POLL Rückruffunktion (poll.h)
Miniport-Treiber implementieren die NdisPoll-Rückruffunktion , die NDIS nach Empfangsanzeigen abruft und Vervollständigungen sendet.
Syntax
NDIS_POLL NdisPoll;
void() NdisPoll(
[_In_] void *Context,
[_Inout_] NDIS_POLL_DATA *PollData
)
{...}
Parameter
[_In_] Context
Ein Zeiger auf die Kontextinformationen, die der Treiber beim Erstellen des Poll-Objekts bereitgestellt hat.
[_Inout_] PollData
Ein Zeiger auf eine NDIS_POLL_DATA Struktur, die der Treiber verwenden sollte, um Empfangsanzeigen auszuführen und Vervollständigungen zu senden. Außerdem enthält sie Details dazu, wie viele NBLs angegeben werden müssen.
Hinweise
Miniport-Treiber registrieren den NdisPoll-Rückruf während der Initialisierung des Miniportadapters. Treiber geben einen Einstiegspunkt für die NdisPoll-Funktion am PollHandler-Parameter der NDIS_POLL_CHARACTERISTICS-Struktur an, bevor NdisRegisterPoll aufgerufen wird.
NDIS ruft zuerst den NdisPoll-Rückruf auf, wenn der Treiber NdisRequestPoll aufruft. NDIS wird weiterhin NdisPoll aufrufen, während der Fahrer Fortschritte bei Empfangsanzeigen oder Übertragungsabschlüssen macht.
Der NdisPoll-Rückruf kann sowohl PASSIVE_LEVEL als auch DISPATCH_LEVEL IRQL aufgerufen werden. Der Treiber sollte keine Annahmen darüber treffen, auf welcher Ebene er sich befindet.
Der Treiber muss die Empfangs- oder Übertragungsparameter der NDIS_POLL_DATA Struktur überprüfen, um die maximale Anzahl von NBLs abzurufen, die er angeben oder abschließen kann.
Für Empfangsanzeigen sollte der Treiber:
- Rufen Sie die maximale Anzahl von Rx-Paketen ab, die angegeben werden können.
- Initialisieren Sie die NBLs.
- Fügen Sie sie der NBL-Warteschlange hinzu, die von der NDIS_POLL_RECEIVE_DATA-Struktur bereitgestellt wird (befindet sich in der NDIS_POLL_DATA-Struktur des NdisPollPollData-Parameters ).
- Beenden Sie den Rückruf.
Für übertragungsfertige Vervollständigungen sollte der Treiber:
- Rufen Sie bis zur maximalen Anzahl von Tx-Paketen ab, die abgeschlossen werden können.
- Vervollständigen Sie die NBLs.
- Fügen Sie sie der NBL-Warteschlange hinzu, die von der NDIS_POLL_TRANSMIT_DATA-Struktur bereitgestellt wird (befindet sich in der NDIS_POLL_DATA-Struktur des NdisPollPollData-Parameters ).
- Beenden Sie den Rückruf.
Der Treiber sollte den Interrupt des Poll-Objekts nicht aktivieren, bevor die NdisPoll-Funktion beendet wird. NDIS fragt den Treiber so lange ab, bis es erkennt, dass kein Fortschritt erzielt wird. An diesem Punkt beendet NDIS die Abfrage und fordert den Treiber auf, den Interrupt erneut zu aktivieren, indem der NdisSetPollNotification-Rückruf aufgerufen wird.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 11 |
Unterstützte Mindestversion (Server) | Windows Server 2022 |
Kopfzeile | poll.h (include ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für