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:

  1. Rufen Sie die maximale Anzahl von Rx-Paketen ab, die angegeben werden können.
  2. Initialisieren Sie die NBLs.
  3. 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 ).
  4. Beenden Sie den Rückruf.

Für übertragungsfertige Vervollständigungen sollte der Treiber:

  1. Rufen Sie bis zur maximalen Anzahl von Tx-Paketen ab, die abgeschlossen werden können.
  2. Vervollständigen Sie die NBLs.
  3. 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 ).
  4. 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

NdisSetPollNotification

NDIS_POLL_CHARACTERISTICS

NDIS_POLL_DATA

NDIS_POLL_RECEIVE_DATA

NdisRegisterPoll

NdisRequestPoll