다음을 통해 공유


WDF_TIMER_CONFIG 구조체(wdftimer.h)

[KMDF 및 UMDF에 적용]

WDF_TIMER_CONFIG 구조에는 프레임워크 타이머 개체에 대한 구성 정보가 포함됩니다.

구문

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;

멤버

Size

이 구조체의 크기(바이트)입니다.

EvtTimerFunc

드라이버 제공 EvtTimerFunc 콜백 함수 또는 NULL에 대한 포인터입니다.

Period

시간(밀리초)입니다. 프레임워크는 지정된 시간(밀리초)이 경과할 때마다 드라이버의 EvtTimerFunc 콜백 함수를 반복적으로 호출합니다. 이 값이 0이면 프레임워크는 드라이버의 EvtTimerFunc 콜백 함수를 반복적으로 호출하지 않습니다. 대신 WdfTimerStart 메서드의 DueTime 이 경과한 후 콜백 함수를 한 번 호출합니다. ( WdfTimerCreate 가 실행 수준을 WdfExecutionLevelPassive로 설정하는 경우 기간은 0이어야 합니다.) 기간은 음수 값일 수 없습니다.

AutomaticSerialization

TRUE인 경우 프레임워크가 타이머 개체의 EvtTimerFunc 콜백 함수 실행을 타이머의 부모 디바이스 개체 아래에 있는 다른 개체의 콜백 함수와 동기화한다는 것을 나타내는 부울 값입니다. 자세한 내용은 아래 설명 부분을 참조하십시오. FALSE이면 프레임워크가 EvtTimerFunc 콜백 함수의 실행을 동기화하지 않습니다.

TolerableDelay

Period에서 지정하는 타이머 기간 및 WdfTimerStart 메서드의 DueTime이 지정하는 초기 시간 간격에 대한 허용 오차(밀리초)를 지정합니다. 주기적인 타이머의 경우 두 개의 연속 타이머 만료 사이의 시간 간격은 (PeriodTolerableDelay)에서 (Period + - TolerableDelay) 사이의 범위에 있습니다. 초기 만료 시간은 DueTime 에서 (DueTime + TolerableDelay) 범위가 됩니다. TolerableDelay 값은 음수일 수 없습니다.

TolerableDelay 멤버는 KMDF 버전 1.9 이상에서 사용할 수 있습니다.

Windows 8.1 시작하여 최소 KMDF 1.13 또는 UMDF 2.0을 사용하는 드라이버에서 이 멤버를 TolerableDelayUnlimited로 설정하여 이 타이머의 만료로 인해 시스템이 절전 모드에서 해제되지 않도록 지정할 수 있습니다.

UseHighResolutionTimerWdfTrue인 경우 TolerableDelay를 0으로 설정해야 합니다. 그렇지 않으면 WdfTimerCreate 에서 오류 코드를 반환합니다.

이 멤버에 대한 자세한 내용은 다음 주의 섹션을 참조하세요.

UseHighResolutionTimer

KMDF만

이 멤버는 Windows 8.1 및 KMDF 버전 1.13부터 사용할 수 있습니다.

WDF_TRI_STATE 형식의 값입니다. 이 값이 WdfTrue이면 프레임워크는 정확도가 1밀리초인 고해상도 타이머를 사용합니다. 값이 WdfFalse 또는 WdfDefault인 경우 프레임워크는 기본적으로 15.6밀리초인 시스템 클록 틱 간격과 일치하는 정확도가 있는 표준 타이머를 사용합니다.

경고UseHighResolutionTimerWdfTrue로 설정하는 경우 DueTime 매개 변수가 음수 값으로 설정된 WdfTimerStart를 호출해야 합니다. 그렇지 않으면 호출로 인해 시스템이 충돌합니다.
 
UseHighResolutionTimerWdfTrue인 경우 TolerableDelay를 0으로 설정해야 합니다. 그렇지 않으면 WdfTimerCreate 에서 오류 코드를 반환합니다.

이 멤버에 대한 자세한 내용은 다음 주의 섹션을 참조하세요.

설명

WDF_TIMER_CONFIG 구조체는 WdfTimerCreate 메서드에 대한 입력으로 사용됩니다. WDF_TIMER_CONFIG 구조를 초기화하려면 드라이버가 WDF_TIMER_CONFIG_INIT 또는 WDF_TIMER_CONFIG_INIT_PERIODIC 호출해야 합니다.

부모 개체의 동기화scopeWdfSynchronizationScopeNone으로 설정된 경우 WDF_TIMER_CONFIG AutomaticSerialization 멤버를 TRUE로 설정해도 아무 효과가 없습니다.

부모 디바이스 개체의 실행 수준이 WdfExecutionLevelPassive인 경우 타이머 개체가 수동 수준 타이머를 나타내는 경우에만 AutomaticSerialization 멤버를 TRUE로 설정할 수 있습니다.

드라이버가 TolerableDelay 멤버를 사용하는 경우 운영 체제는 서로 가까운 만료 시간을 그룹화하고 한 번에 모두 처리할 수 있습니다. 운영 체제가 여러 타이머의 만료를 한 번에 처리할 수 있는 경우 배터리 수명을 늘리기 위해 컴퓨터를 더 오랜 시간 동안 저전력 상태로 유지할 수 있습니다.

TolerableDelay 멤버가 TolerableDelayUnlimited인 경우 시스템은 타이머가 만료될 때 저전력(Sx) 상태인 경우 타이머를 서비스하기 위해 완전히 켜진(S0) 상태로 돌아가지 않습니다. 드라이버는 타이머가 중요하지 않은 주기적 작업과 관련된 경우 배터리 수명을 늘리기 위해 TolerableDelayUnlimited 를 지정할 수 있습니다.

UseHighResolutionTimerWdfTrue로 설정하면 배터리 수명이 감소할 수 있습니다.

AutomaticSerialization 및 드라이버 콜백 함수 동기화에 대한 자세한 내용은 Framework-Based 드라이버용 동기화 기술을 참조하세요.

프레임워크 타이머 개체에 대한 자세한 내용은 타이머 사용을 참조하세요.

요구 사항

요구 사항
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
머리글 wdftimer.h(Wdf.h 포함)

추가 정보

EvtTimerFunc

WDF_TIMER_CONFIG_INIT

WDF_TIMER_CONFIG_INIT_PERIODIC

WdfTimerCreate

WdfTimerStart