Compartilhar via


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

Os drivers de miniport implementam o NdisPoll função de retorno de chamada 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 fornecidas pelo driver ao criar 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.

Observações

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 avança em indicações de recebimento ou 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 o receber ou transmitir parâmetros da estrutura NDIS_POLL_DATA para obter o número máximo de NBLs que ele pode indicar ou concluir.

Para obter indicações de recebimento, 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 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
de cliente com suporte mínimo Windows 11
servidor com suporte mínimo Windows Server 2022
cabeçalho poll.h (inclua ndis.h)
IRQL <= DISPATCH_LEVEL

Consulte também

NdisSetPollNotification

NDIS_POLL_CHARACTERISTICS

NDIS_POLL_DATA

NDIS_POLL_RECEIVE_DATA

NdisRegisterPoll

NdisRequestPoll