Condividi tramite


NDIS_POLL funzione di callback (poll.h)

I driver Miniport implementano la funzione di callback NdisPoll che NDIS eseguirà il polling per ricevere indicazioni e inviare completamenti.

Sintassi

NDIS_POLL NdisPoll;

void() NdisPoll(
  [_In_]    void *Context,
  [_Inout_] NDIS_POLL_DATA *PollData
)
{...}

Parametri

[_In_] Context

Puntatore alle informazioni di contesto fornite dal driver al momento della creazione dell'oggetto Poll.

[_Inout_] PollData

Puntatore a una struttura NDIS_POLL_DATA che il driver deve usare per ricevere indicazioni e inviare completamenti. Contiene anche informazioni dettagliate sul numero di NCL da indicare.

Osservazioni

I driver Miniport registrano il callback NdisPoll durante l'inizializzazione dell'adattatore miniport. I driver specificano un punto di ingresso per la funzione NdisPoll nel parametro PollHandler della struttura NDIS_POLL_CHARACTERISTICS prima di chiamare NdisRegisterPoll.

NDIS richiamerà prima il callback NdisPoll quando il driver chiama NdisRequestPoll. NDIS continuerà a richiamare NdisPoll mentre il driver sta effettuando progressi in avanti su ricevere indicazioni o trasmettere completamenti.

Il callback NdisPoll può essere richiamato sia in PASSIVE_LEVEL che in DISPATCH_LEVEL IRQL. Il driver non dovrebbe fare ipotesi su quale livello sarà.

Il driver deve controllare il ricevere o trasmettere i parametri della struttura di NDIS_POLL_DATA per ottenere il numero massimo di NRL che può indicare o completare.

Per ricevere indicazioni, il driver deve:

  1. Recuperare fino al numero massimo di pacchetti Rx che può indicare.
  2. Inizializzare gli elenchi di numeri di rete.
  3. Aggiungerli alla coda NBL fornita dalla struttura NDIS_POLL_RECEIVE_DATA ,che si trova nella struttura NDIS_POLL_DATA del parametro NdisPollPollData).
  4. Chiudere il callback.

Per i completamenti di trasmissione, il driver deve:

  1. Recupera fino al numero massimo di pacchetti Tx che può completare.
  2. Completare i criteri di rete.
  3. Aggiungerli alla coda NBL fornita dalla struttura NDIS_POLL_TRANSMIT_DATA ,che si trova nella struttura NDIS_POLL_DATA del parametro NdisPollPollData).
  4. Chiudere il callback.

Il driver non deve abilitare l'interrupt dell'oggetto Poll prima di uscire dalla funzione NdisPoll . NDIS continuerà a eseguire il polling del driver fino a quando non valuta che non venga effettuato alcun avanzamento in avanti. A questo punto NDIS interromperà il polling e chiederà al driver di riabilitare l'interrupt richiamando il callback NdisSetPollNot ification.

Fabbisogno

Requisito Valore
client minimo supportato Windows 11
server minimo supportato Windows Server 2022
intestazione poll.h (include ndis.h)
IRQL <= DISPATCH_LEVEL

Vedere anche

NdisSetPollNotification

NDIS_POLL_CHARACTERISTICS

NDIS_POLL_DATA

NDIS_POLL_RECEIVE_DATA

NdisRegisterPoll

NdisRequestPoll