Compartir a través de


NDIS_TIMER_FUNCTION función de devolución de llamada (ndis.h)

NDIS llama a NdisTimerFunction función de devolución de llamada NDIS después de que un controlador establezca un temporizador único o periódico cuando se active un temporizador.

Nota Debe declarar la función mediante el tipo de NDIS_TIMER_FUNCTION. Para obtener más información, consulte la sección Ejemplos siguientes.
 

Sintaxis

NDIS_TIMER_FUNCTION NdisTimerFunction;

void NdisTimerFunction(
  [in] PVOID SystemSpecific1,
  [in] PVOID FunctionContext,
  [in] PVOID SystemSpecific2,
  [in] PVOID SystemSpecific3
)
{...}

Parámetros

[in] SystemSpecific1

Puntero a un valor específico del sistema que está reservado para el uso del sistema.

[in] FunctionContext

Puntero a un área de contexto proporcionada por el controlador que el controlador pasó a la función NdisSetTimerObject. Si el parámetro FunctionContext de NdisSetTimerObject era NULL, NDIS usa el valor predeterminado que el controlador especificó en el NDIS_TIMER_CHARACTERISTICS estructura. El controlador pasó la estructura a la función NdisAllocateTimerObject para inicializar el objeto de temporizador asociado.

[in] SystemSpecific2

Puntero a un valor específico del sistema que está reservado para el uso del sistema.

[in] SystemSpecific3

Puntero a un valor específico del sistema que está reservado para el uso del sistema.

Valor devuelto

Ninguno

Observaciones

Cualquier controlador NDIS puede tener una o varias funciones de devolución de llamada NdisTimerFunction. Cada uno de estos NdisTimerFunction devolución de llamada debe estar asociado a un objeto de temporizador asignado por el controlador y inicializado diferente.

El controlador inicializa un objeto de temporizador asignado por el controlador llamando a . función NdisAllocateTimerObject.

Una llamada posterior a la función NdisSetTimerObject hace que la NdisTimerFunction devolución de llamada asociada al objeto de temporizador se ejecute después de un intervalo especificado o periódicamente.

Para cancelar llamadas a NdisTimerFunction, llame a la función NdisCancelTimerObject. NDIS podría seguir llamando a NdisTimerFunction si el tiempo de espera ya ha expirado antes de la llamada a NdisCancelTimerObject.

Si un NdisTimerFunction devolución de llamada comparte recursos con otras funciones de controlador, el controlador debe sincronizar el acceso a esos recursos con un bloqueo de giro.

Ejemplos de

Para definir una función NdisTimerFunction, primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir un NdisTimerFunction función denominada "MyTimerCallback", use el tipo NDIS_TIMER_FUNCTION tal como se muestra en este ejemplo de código:

NDIS_TIMER_FUNCTION MyTimerCallback;

A continuación, implemente la función de la siguiente manera:

_Use_decl_annotations_
VOID
 MyTimerCallback(
    PVOID  SystemSpecific1,
    PVOID  FunctionContext,
    PVOID  SystemSpecific2,
    PVOID  SystemSpecific3
    )
  {...}

El tipo de función NDIS_TIMER_FUNCTION se define en el archivo de encabezado Ndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función NDIS_TIMER_FUNCTION en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.

Para obtener información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.

Requisitos

Requisito Valor
cliente mínimo admitido Se admite en NDIS 6.0 y versiones posteriores.
de la plataforma de destino de Windows
encabezado de ndis.h (incluya Ndis.h)
irQL DISPATCH_LEVEL

Consulte también

inicializar temporizadores NDIS

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetTimerObject

de temporizadores de mantenimiento de

configuración y borrado de temporizadores