Compartir a través de


NDIS_POLL función de devolución de llamada (poll.h)

Los controladores de miniporte implementan la función de devolución de llamada de NdisPoll que NDIS sondeará para recibir indicaciones y enviar finalizaciones.

Sintaxis

NDIS_POLL NdisPoll;

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

Parámetros

[_In_] Context

Puntero a la información de contexto proporcionada por el controlador al crear el objeto Poll.

[_Inout_] PollData

Puntero a una estructura NDIS_POLL_DATA que el controlador debe usar para realizar indicaciones de recepción y enviar finalizaciones. También contiene detalles sobre el número de NBL que se deben indicar.

Observaciones

Los controladores de miniporte registran el NdisPoll devolución de llamada durante la inicialización del adaptador de miniport. Los controladores especifican un punto de entrada para la función de NdisPoll en el parámetro PollHandler de la estructura de NDIS_POLL_CHARACTERISTICS antes de llamar a NdisRegisterPoll.

NDIS invocará primero la devolución de llamada de NdisPoll cuando el controlador llame a NdisRequestPoll. NDIS seguirá invocando NdisPoll mientras el controlador avanza en las indicaciones de recepción o las finalizaciones de transmisión.

La devolución de llamada NdisPoll se puede invocar tanto en PASSIVE_LEVEL como en irQL de DISPATCH_LEVEL. El controlador no debe hacer suposiciones sobre qué nivel será.

El controlador debe comprobar el recibir o transmitir parámetros de la estructura de NDIS_POLL_DATA para obtener el número máximo de NBL que puede indicar o completar.

Para las indicaciones de recepción, el controlador debe:

  1. Capturar hasta el número máximo de paquetes Rx que puede indicar.
  2. Inicialice las NCL.
  3. Agréguelos a la cola NBL proporcionada por la estructura NDIS_POLL_RECEIVE_DATA (ubicada en la estructura NDIS_POLL_DATA del parámetro NdisPollPollData).
  4. Salga de la devolución de llamada.

Para las finalizaciones de transmisión, el controlador debe:

  1. Capturar hasta el número máximo de paquetes Tx que puede completar.
  2. Complete las NBL.
  3. Agréguelos a la cola NBL proporcionada por la estructura de NDIS_POLL_TRANSMIT_DATA (ubicada en la estructura NDIS_POLL_DATA del parámetro NdisPollPollData ).
  4. Salga de la devolución de llamada.

El controlador no debe habilitar la interrupción del objeto Poll antes de salir de la función NdisPoll. NDIS seguirá sondeando al controlador hasta que evalúe que no se está realizando ningún progreso hacia delante. En este momento, NDIS dejará de sondear y pedirá al controlador que vuelva a habilitar la interrupción invocando la devolución de llamada NdisSetPollNotification.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 11
servidor mínimo admitido Windows Server 2022
encabezado de poll.h (include ndis.h)
irQL <= DISPATCH_LEVEL

Consulte también

NdisSetPollNotification

NDIS_POLL_CHARACTERISTICS

NDIS_POLL_DATA

NDIS_POLL_RECEIVE_DATA

NdisRegisterPoll

NdisRequestPoll