Función NdisCancelTimerObject (ndis.h)
La función NdisCancelTimerObject cancela un objeto de temporizador asociado a una llamada anterior a la función NdisSetTimerObject .
Sintaxis
BOOLEAN NdisCancelTimerObject(
[in] NDIS_HANDLE TimerObject
);
Parámetros
[in] TimerObject
Identificador de un objeto de temporizador que proporciona NDIS cuando un controlador llama al Función NdisAllocateTimerObject .
Valor devuelto
NdisCancelTimerObject devuelve TRUE si el objeto de temporizador especificado está en la cola del temporizador del sistema; de lo contrario, devuelve FALSE.
Comentarios
Una llamada a NdisCancelTimerObject cancela la ejecución de una función NetTimerCallback , siempre que el último intervalo de tiempo de espera especificado aún no haya expirado.
Los controladores NDIS deben llamar primero a NdisCancelTimerObject cuando se detengan o descarguen para asegurarse de que una función NetTimerCallback no intenta acceder a los recursos que el controlador ya ha liberado.
Si se especificó un valor distinto de cero en el parámetro MillisecondsPeriod de la función NdisSetTimerObject , el temporizador se conoce como temporizador periódico. Si se especificó un valor cero en el parámetro MillisecondsPeriod , el temporizador se conoce como temporizador de un solo disparo. Los siguientes puntos se aplican a la cancelación de ambos tipos de temporizadores:
- Si el autor de la llamada de NdisCancelTimerObject cancela un temporizador periódico, debe ejecutarse en IRQL = PASSIVE_LEVEL. De lo contrario, el autor de la llamada de NdisCancelTimerObject debe ejecutarse en IRQL <= DISPATCH_LEVEL.
-
Si el autor de la llamada de NdisCancelTimerObject cancela un temporizador periódico, NdisCancelTimerObject llama a KeFlushQueuedDpcs para asegurarse de que el temporizador no se está ejecutando actualmente. Por lo tanto, no es necesario que el autor de la llamada tenga un mecanismo de sincronización independiente para asegurarse de que el temporizador no se está ejecutando actualmente en otro procesador.
Si el autor de la llamada de NdisCancelTimerObject cancela un temporizador de un solo disparo, se requiere que el autor de la llamada tenga un mecanismo de sincronización independiente para asegurarse de que el temporizador no se está ejecutando actualmente en otro procesador. Por ejemplo, el llamador podría llamar a NDIS_WAIT_FOR_MUTEX para esperar a que el subproceso del temporizador señale un objeto de exclusión mutua cuando el subproceso está a punto de completarse.
Para obtener más información, consulte Sincronización y notificación en controladores de red.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Se admite en NDIS 6.0 y versiones posteriores. |
Plataforma de destino | Universal |
Encabezado | ndis.h (incluya Ndis.h) |
Library | Ndis.lib |
IRQL | Consulte la sección Comentarios. |
Reglas de cumplimiento de DDI | Irql_Timer_Function(ndis), PeriodicTimer(ndis) |