Compartilhar via


estrutura WDF_TIMER_CONFIG (wdftimer.h)

[Aplica-se a KMDF e UMDF]

A estrutura WDF_TIMER_CONFIG contém informações de configuração para um objeto de temporizador de estrutura.

Sintaxe

typedef struct _WDF_TIMER_CONFIG {
  ULONG         Size;
  PFN_WDF_TIMER EvtTimerFunc;
  ULONG         Period;
  BOOLEAN       AutomaticSerialization;
  ULONG         TolerableDelay;
  BOOLEAN       UseHighResolutionTimer;
} WDF_TIMER_CONFIG, *PWDF_TIMER_CONFIG;

Membros

Size

O tamanho, em bytes, dessa estrutura.

EvtTimerFunc

Um ponteiro para uma função de retorno de chamada EvtTimerFunc fornecida pelo driver ou NULL.

Period

Um período de tempo, em milissegundos. A estrutura chama a função de retorno de chamada EvtTimerFunc do driver repetidamente, sempre que o número especificado de milissegundos decorre. Se esse valor for zero, a estrutura não chamará a função de retorno de chamada EvtTimerFunc do driver repetidamente. Em vez disso, ele chama a função de retorno de chamada uma vez, depois que o DueTime do método WdfTimerStart tiver decorrido. (O período de tempo deverá ser zero se WdfTimerCreate definir o nível de execução como WdfExecutionLevelPassive.) O período de tempo não pode ser um valor negativo.

AutomaticSerialization

Um valor booliano que, se TRUE, indica que a estrutura sincronizará a execução da função de retorno de chamada EvtTimerFunc do objeto de temporizador com funções de retorno de chamada de outros objetos que estão abaixo do objeto de dispositivo pai do temporizador. Para obter mais informações, consulte a seção Comentários a seguir. Se FALSE, a estrutura não sincronizará a execução da função de retorno de chamada EvtTimerFunc .

TolerableDelay

Especifica uma tolerância, em milissegundos, para o período de temporizador especificado por Period e para o intervalo de tempo inicial especificado pelo DueTime do método WdfTimerStart. Para um temporizador periódico, o intervalo de tempo entre duas expirações sucessivas do temporizador estará no intervalo de (Period - TolerableDelay) a (Period + TolerableDelay). O tempo de expiração inicial estará no intervalo de DueTime a (DueTime + TolerableDelay). O valor TolerableDelay não pode ser negativo.

O membro TolerableDelay está disponível na versão 1.9 e versões posteriores do KMDF.

Começando no Windows 8.1, em um driver usando no mínimo KMDF 1.13 ou UMDF 2.0, você pode definir esse membro como TolerableDelayUnlimited para especificar que o sistema não deve ser acordado como resultado da expiração desse temporizador.

Se UseHighResolutionTimer for WdfTrue, você deverá definir TolerableDelay como zero. Caso contrário, WdfTimerCreate retornará um código de falha.

Para obter mais informações sobre esse membro, consulte a seção Comentários a seguir.

UseHighResolutionTimer

Somente KMDF

Esse membro está disponível a partir do Windows 8.1 e do KMDF versão 1.13.

Um valor de tipo WDF_TRI_STATE. Se esse valor for WdfTrue, a estrutura usará um temporizador de alta resolução que tem uma precisão de um milissegundo. Se o valor for WdfFalse ou WdfDefault, a estrutura usará um temporizador padrão que tem uma precisão correspondente ao intervalo de escala do relógio do sistema, que é, por padrão, 15,6 milissegundos.

Aviso Se você definir UseHighResolutionTimer como WdfTrue, deverá chamar WdfTimerStart com o parâmetro DueTime definido como um valor negativo. Caso contrário, a chamada fará com que o sistema falhe.
 
Se UseHighResolutionTimer for WdfTrue, você deverá definir TolerableDelay como zero. Caso contrário, WdfTimerCreate retornará um código de falha.

Para obter mais informações sobre esse membro, consulte a seção Comentários a seguir.

Comentários

A estrutura WDF_TIMER_CONFIG é usada como entrada para o método WdfTimerCreate . Para inicializar uma estrutura de WDF_TIMER_CONFIG , o driver deve chamar WDF_TIMER_CONFIG_INIT ou WDF_TIMER_CONFIG_INIT_PERIODIC.

Definir o membro AutomaticSerialization de WDF_TIMER_CONFIG como TRUE não terá efeito se o escopo de sincronização do objeto pai estiver definido como WdfSynchronizationScopeNone.

Se o nível de execução do objeto de dispositivo pai for WdfExecutionLevelPassive, você poderá definir o membro AutomaticSerialization como TRUE somente se o objeto de temporizador representar um temporizador de nível passivo.

Se um driver usar o membro TolerableDelay , o sistema operacional poderá agrupar tempos de expiração próximos e processá-los todos de uma só vez. Se o sistema operacional puder lidar com as expirações de vários temporizadores ao mesmo tempo, ele poderá potencialmente manter o computador em um estado de baixa energia por períodos mais longos de tempo para aumentar a duração da bateria.

Se o membro TolerableDelay for TolerableDelayUnlimited, o sistema não retornará ao estado totalmente ativado (S0) para atender ao temporizador se ele estiver em um estado de baixa potência (Sx) quando o temporizador expirar. Um driver pode especificar TolerableDelayUnlimited para aumentar a duração da bateria quando o temporizador estiver relacionado a uma operação periódica não crítica.

Definir UseHighResolutionTimer como WdfTrue pode resultar em redução da duração da bateria.

Para obter mais informações sobre a AutomaticSerialization e a sincronização de funções de retorno de chamada do driver, consulte Técnicas de sincronização para drivers de Framework-Based.

Para obter mais informações sobre objetos de temporizador de estrutura, consulte Usando temporizadores.

Requisitos

Requisito Valor
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdftimer.h (inclua Wdf.h)

Confira também

EvtTimerFunc

WDF_TIMER_CONFIG_INIT

WDF_TIMER_CONFIG_INIT_PERIODIC

WdfTimerCreate

WdfTimerStart