다음을 통해 공유


KeSetTimerEx 함수(wdm.h)

KeSetTimerEx 루틴은 타이머 개체를 신호 상태로 설정할 절대 또는 상대 간격을 설정하고, 필요에 따라 해당 간격이 만료될 때 실행할 CustomTimerDpc 루틴을 제공하고, 필요에 따라 타이머에 대한 되풀이 간격을 제공합니다.

구문

BOOLEAN KeSetTimerEx(
  [in, out]      PKTIMER       Timer,
  [in]           LARGE_INTEGER DueTime,
  [in]           LONG          Period,
  [in, optional] PKDPC         Dpc
);

매개 변수

[in, out] Timer

KeInitializeTimer 또는 KeInitializeTimerEx로 초기화된 타이머 개체에 대한 포인터입니다.

[in] DueTime

타이머가 만료되는 절대 또는 상대 시간을 지정합니다. DueTime 매개 변수의 값이 음수이면 만료 시간은 현재 시스템 시간을 기준으로 합니다. 그렇지 않으면 만료 시간이 절대입니다. 만료 시간은 시스템 시간 단위(100나노초 간격)로 표시됩니다. 절대 만료 시간은 시스템 시간의 변경 내용을 추적합니다. 상대 만료 시간은 시스템 시간 변경의 영향을 받지 않습니다.

[in] Period

타이머에 대한 선택적 되풀이 간격(밀리초)을 지정합니다. 0보다 크거나 같은 값이어야 합니다. 이 매개 변수의 값이 0이면 타이머는 자동으로 다시 큐에 대기하지 않는 비지속적 타이머입니다.

[in, optional] Dpc

KeInitializeDpc에 의해 초기화된 DPC 개체에 대한 포인터입니다. 이 매개 변수는 선택적 요소입니다.

반환 값

타이머 개체가 시스템 타이머 큐에 이미 있는 경우 KeSetTimerEx 는 TRUE를 반환 합니다.

설명

KeSetTimerEx 루틴은 다음을 수행합니다.

  • 만료 시간을 계산합니다.

  • 타이머를 신호가 없는 상태로 설정합니다.

  • 타이머가 지정된 경우 타이머의 되풀이 간격을 설정합니다.

  • 시스템 타이머 큐에 타이머 개체를 삽입합니다.

타이머 개체가 이미 타이머 큐에 있는 경우 새 만료 시간으로 설정되기 전에 암시적으로 취소됩니다. 이전에 지정한 DueTime이 만료되기 전에 KeSetTimerEx에 대한 호출은 이전 호출과 연결된 타이머와 Dpc 호출(있는 경우)을 모두 취소합니다.

만료 시간은 시스템 클록을 기준으로 측정되며, 타이머가 만료되는 시기를 운영 체제에서 감지할 수 있는 정확도는 시스템 클록의 세분성에 의해 제한됩니다. 자세한 내용은 타이머 정확도를 참조하세요.

Dpc 매개 변수를 지정하면 DPC 개체가 타이머 개체와 연결됩니다. 타이머가 만료되면 타이머 개체가 시스템 타이머 큐에서 제거되고 신호가 지정된 상태로 설정됩니다. DPC 개체가 설정되었을 때 타이머와 연결된 경우 DPC 개체는 타이머 간격이 만료된 후 조건이 허용하는 즉시 실행되도록 시스템 DPC 큐에 삽입됩니다.

DPC 루틴은 주기적 타이머의 할당을 취소할 수 없습니다. DPC 루틴은 비속어 타이머의 할당을 취소할 수 있습니다.

정기 타이머는 만료되는 즉시 자동으로 다시 시작됩니다. 따라서 다중 프로세서 컴퓨터에서 주기적 타이머에 대한 DPC를 두 프로세서에서 동시에 실행할 수 있습니다.

지정된 DPC 개체의 인스턴스화는 지정된 순간에만 큐에 대기할 수 있습니다. 잠재적인 경합 상태를 방지하기 위해 KeSetTimerEx 에 전달된 DPC는 KeInsertQueueDpc에 전달되어서는 안 됩니다.

드라이버는 언로드 루틴에서 활성 타이머를 취소해야 합니다. KeCancelTimer를 사용하여 타이머를 취소합니다.

타이머 개체에 대한 자세한 내용은 타이머 개체 및 DPC를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), IrqlKeDispatchLte(wdm)

추가 정보

KeCancelTimer

KeInitializeDpc

KeInitializeTimer

KeInitializeTimerEx

KeReadStateTimer

KeWaitForMultipleObjects

KeWaitForSingleObject