NDIS_POLL função de retorno de chamada (poll.h)

Os drivers de miniporto implementam a função de retorno de chamada NdisPoll que o NDIS sondará para obter indicações de recebimento e enviará conclusões.

Sintaxe

NDIS_POLL NdisPoll;

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

Parâmetros

[_In_] Context

Um ponteiro para as informações de contexto que o driver forneceu quando criou o objeto Poll.

[_Inout_] PollData

Um ponteiro para uma estrutura de NDIS_POLL_DATA que o driver deve usar para executar indicações de recebimento e enviar conclusões. Ele também contém detalhes sobre quantas NBLs precisam ser indicadas.

Comentários

Os drivers de miniporto registram o retorno de chamada NdisPoll durante a inicialização do adaptador de miniporto. Os drivers especificam um ponto de entrada para a função NdisPoll no parâmetro PollHandler da estrutura NDIS_POLL_CHARACTERISTICS antes de chamar NdisRegisterPoll.

O NDIS invocará primeiro o retorno de chamada NdisPoll quando o driver chamar NdisRequestPoll. O NDIS continuará invocando NdisPoll enquanto o driver está progredindo em indicações de recebimento ou em conclusões de transmissão.

O retorno de chamada NdisPoll pode ser invocado em PASSIVE_LEVEL e DISPATCH_LEVEL IRQL. O driver não deve fazer suposições sobre qual nível ele será.

O driver deve verificar os parâmetros de recebimento ou transmissão da estrutura NDIS_POLL_DATA para obter o número máximo de NBLs que pode indicar ou concluir.

Para receber indicações, o driver deve:

  1. Busque até o número máximo de pacotes Rx que ele pode indicar.
  2. Inicialize os NBLs.
  3. Adicione-os à fila NBL fornecida pela estrutura de NDIS_POLL_RECEIVE_DATA (localizada na estrutura NDIS_POLL_DATA do parâmetro NdisPollPollData ).
  4. Saia do retorno de chamada.

Para conclusões de transmissão, o driver deve:

  1. Busque até o número máximo de pacotes Tx que ele pode concluir.
  2. Conclua os NBLs.
  3. Adicione-os à fila NBL fornecida pela estrutura de NDIS_POLL_TRANSMIT_DATA (localizada na estrutura NDIS_POLL_DATA do parâmetro NdisPollPollData ).
  4. Saia do retorno de chamada.

O driver não deve habilitar a interrupção do objeto Poll antes de sair da função NdisPoll . O NDIS continuará sondando o driver até avaliar que nenhum progresso futuro está sendo feito. Neste ponto, o NDIS interromperá a sondagem e pedirá ao driver para reabilitar a interrupção invocando o retorno de chamada NdisSetPollNotification .

Requisitos

   
Cliente mínimo com suporte Windows 11
Servidor mínimo com suporte Windows Server 2022
Cabeçalho poll.h (include ndis.h)
IRQL <= DISPATCH_LEVEL

Confira também

NdisSetPollNotification

NDIS_POLL_CHARACTERISTICS

NDIS_POLL_DATA

NDIS_POLL_RECEIVE_DATA

NdisRegisterPoll

NdisRequestPoll