Compartilhar via


Função NdisCancelTimerObject (ndis.h)

A função NdisCancelTimerObject cancela um objeto de temporizador associado a uma chamada anterior à função NdisSetTimerObject.

Sintaxe

BOOLEAN NdisCancelTimerObject(
  [in] NDIS_HANDLE TimerObject
);

Parâmetros

[in] TimerObject

Um identificador para um objeto de temporizador que o NDIS fornece quando um driver chama o função de NdisAllocateTimerObject.

Valor de retorno

NdisCancelTimerObject retornará verdadeiro se o objeto de temporizador especificado estiver na fila do temporizador do sistema; caso contrário, ele retornará FALSE .

Observações

Uma chamada para NdisCancelTimerObject cancela a execução de uma função NetTimerCallback, desde que o último intervalo de tempo limite especificado ainda não tenha expirado.

Os drivers NDIS devem chamar NdisCancelTimerObject primeiro quando estiverem parando ou descarregando para garantir que uma função NetTimerCallback não tente acessar os recursos que o driver já liberou.

Se um valor diferente de zero tiver sido especificado no parâmetro MilissegundosPeriod da função NdisSetTimerObject, o temporizador será conhecido como temporizador periódico. Se um valor zero tiver sido especificado no parâmetro MilissegundosPeriod, o temporizador será conhecido como de temporizador de um tiro. Os seguintes pontos se aplicam ao cancelamento de ambos os tipos de temporizadores:

  • Se o chamador de NdisCancelTimerObject estiver cancelando um temporizador periódico, ele deverá estar em execução em IRQL = PASSIVE_LEVEL. Caso contrário, o chamador do NdisCancelTimerObject deverá estar em execução no IRQL <= DISPATCH_LEVEL.
  • Se o chamador de NdisCancelTimerObject estiver cancelando um temporizador periódico, NdisCancelTimerObject chamadas KeFlushQueuedDpcs para garantir que o temporizador não esteja em execução no momento. Portanto, o chamador não precisa ter um mecanismo de sincronização separado para garantir que o temporizador não esteja sendo executado em outro processador.

    Se o chamador de NdisCancelTimerObject estiver cancelando um temporizador de uma captura, o chamador precisará ter um mecanismo de sincronização separado para garantir que o temporizador não esteja em execução em outro processador. Por exemplo, o chamador pode chamar NDIS_WAIT_FOR_MUTEX para aguardar o thread do temporizador sinalizar um objeto mutex quando o thread estiver prestes a ser concluído.

    Para obter mais informações, consulte Sincronização e Notificação em Drivers de Rede.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte no NDIS 6.0 e posterior.
da Plataforma de Destino Universal
cabeçalho ndis.h (inclua Ndis.h)
biblioteca Ndis.lib
IRQL Consulte a seção Comentários
regras de conformidade de DDI Irql_Timer_Function(ndis), PeriodicTimer(ndis)

Consulte também

NdisAllocateTimerObject

NdisSetTimerObject

NetTimerCallback