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 a 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.
Observaciones
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 a NdisCancelTimerObject primero cuando se detengan o descarguen para asegurarse de que una función de 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 MilisecondsPerio d del parámetro NdisSetTimerObject, el temporizador se conoce como temporizador periódico. Si se especificó un valor cero en el parámetro MilisecondsPeriod, el temporizador se conoce como un temporizador de 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 autor de la llamada 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, vea sincronización y notificación en controladores de red.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Se admite en NDIS 6.0 y versiones posteriores. |
de la plataforma de destino de | Universal |
encabezado de | ndis.h (incluya Ndis.h) |
biblioteca de | Ndis.lib |
irQL | Consulte la sección Comentarios. |
reglas de cumplimiento de DDI | Irql_Timer_Function(ndis), PeriodicTimer(ndis) |