NDIS_POLL Rückruffunktion (poll.h)
Miniport-Treiber implementieren die NdisPoll Rückruffunktion, die NDIS abruft, um Anzeigeanzeigen zu erhalten und Fertigstellungen zu senden.
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 zum Ausführen von Empfangsanzeigen und Zum Senden von Fertigstellungen verwenden soll. Es enthält auch Details dazu, wie viele NBLs angegeben werden müssen.
Bemerkungen
Miniporttreiber registrieren den NdisPoll Rückruf während der Miniportadapterinitialisierung. Treiber geben einen Einstiegspunkt für die NdisPoll--Funktion am PollHandler Parameter der NDIS_POLL_CHARACTERISTICS Struktur an, bevor NdisRegisterPollaufgerufen wird.
NDIS ruft zuerst den NdisPoll- Rückruf auf, wenn der Treiber NdisRequestPollaufruft. NDIS wird NdisPoll- aufrufen, während der Fahrer fortschritte bei der Empfangsanzeige oder beim Übertragen von Abschlussen voranschreitet.
Der NdisPoll- Rückruf kann sowohl bei PASSIVE_LEVEL als auch bei DISPATCH_LEVEL IRQL aufgerufen werden. Der Treiber sollte keine Annahmen darüber treffen, welche Ebene es sein wird.
Der Treiber muss überprüfen, empfangen oder Parameter der NDIS_POLL_DATA Struktur übertragen, um die maximale Anzahl von NBLs abzurufen, die angegeben oder vollständig sein kann.
Für Empfangsanzeigen sollte der Fahrer:
- Rufen Sie bis zur maximalen 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 der NdisPollPollData Parameter).
- Beenden Sie den Rückruf.
Zur Übertragung sollte der Treiber Folgendes ausführen:
- Rufen Sie bis zur maximalen Anzahl von Tx-Paketen ab, die sie abschließen kann.
- Schließen Sie die NBLs ab.
- 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 der NdisPollPollData Parameter).
- 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 weiterhin ab, bis er bewertet, dass kein Fortschritt erzielt wird. An diesem Punkt beendet NDIS die Abfrage und fordert den Treiber auf, den Interrupt erneut zu aktivieren, indem er den NdisSetPollNotification Rückruf aufruft.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 11 |
mindestens unterstützte Server- | Windows Server 2022 |
Header- | poll.h (include ndis.h) |
IRQL- | <= DISPATCH_LEVEL |