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

Os drivers de miniport implementam a função de retorno de chamada NdisPoll que o NDIS sondará para receber indicações 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 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 miniport registram o retorno de chamada NdisPoll durante a inicialização do adaptador de miniporta. 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 marcar 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 as NBLs.
  3. Adicione-os à fila NBL fornecida pela estrutura NDIS_POLL_RECEIVE_DATA (localizada na estrutura NDIS_POLL_DATA do parâmetro PollDataNdisPoll).
  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 as NBLs.
  3. Adicione-os à fila NBL fornecida pela estrutura NDIS_POLL_TRANSMIT_DATA (localizada na estrutura NDIS_POLL_DATA do parâmetro PollDataNdisPoll).
  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 motorista 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

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

Confira também

NdisSetPollNotification

NDIS_POLL_CHARACTERISTICS

NDIS_POLL_DATA

NDIS_POLL_RECEIVE_DATA

NdisRegisterPoll

NdisRequestPoll