Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
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