KeSetTimer 함수(wdm.h)
KeSetTimer 루틴은 타이머 개체를 신호 상태로 설정할 절대 또는 상대 간격을 설정하고, 필요에 따라 해당 간격이 만료될 때 실행할 CustomTimerDpc 루틴을 제공합니다.
구문
BOOLEAN KeSetTimer(
[in, out] PKTIMER Timer,
[in] LARGE_INTEGER DueTime,
[in, optional] PKDPC Dpc
);
매개 변수
[in, out] Timer
KeInitializeTimer 또는 KeInitializeTimerEx로 초기화된 타이머 개체에 대한 포인터입니다.
[in] DueTime
타이머가 만료되는 절대 또는 상대 시간을 지정합니다. DueTime 매개 변수의 값이 음수이면 만료 시간은 현재 시스템 시간을 기준으로 합니다. 그렇지 않으면 만료 시간이 절대입니다. 만료 시간은 시스템 시간 단위(100나노초 간격)로 표시됩니다. 절대 만료 시간은 시스템 시간의 변경 내용을 추적합니다. 상대 만료 시간은 시스템 시간 변경의 영향을 받지 않습니다.
[in, optional] Dpc
KeInitializeDpc에 의해 초기화된 DPC 개체에 대한 포인터입니다. 이 매개 변수는 선택적 요소입니다.
반환 값
타이머 개체가 시스템 타이머 큐에 이미 있는 경우 KeSetTimer 은 TRUE를 반환 합니다.
설명
KeSetTimer 루틴은 다음을 수행합니다.
만료 시간을 계산합니다.
타이머를 신호가 없는 상태로 설정합니다.
시스템 타이머 큐에 타이머 개체를 삽입합니다.
타이머 개체가 이미 타이머 큐에 있는 경우 새 만료 시간으로 설정되기 전에 암시적으로 취소됩니다. 이전에 지정한 DueTime이 만료되기 전에 KeSetTimer에 대한 호출은 이전 호출과 연결된 타이머 및 Dpc 호출(있는 경우)을 모두 취소합니다.
Dpc 매개 변수를 지정하면 DPC 개체가 타이머 개체와 연결됩니다. 타이머가 만료되면 타이머 개체가 시스템 타이머 큐에서 제거되고 상태가 신호로 설정됩니다. DPC 개체가 설정되었을 때 타이머와 연결된 경우 DPC 개체는 타이머 간격이 만료된 후 조건이 허용하는 즉시 실행되도록 시스템 DPC 큐에 삽입됩니다.
만료 시간은 시스템 클록을 기준으로 측정되며, 타이머가 만료되는 시기를 운영 체제에서 감지할 수 있는 정확도는 시스템 클록의 세분성에 의해 제한됩니다. 자세한 내용은 타이머 정확도를 참조하세요.
지정된 DPC 개체의 인스턴스화는 지정된 순간에만 큐에 대기할 수 있습니다. 잠재적인 경합 상태를 방지하기 위해 KeSetTimer 에 전달된 DPC는 KeInsertQueueDpc에 전달되어서는 안 됩니다.
드라이버는 언로드 루틴에서 활성 타이머를 취소해야 합니다. KeCancelTimer를 사용하여 타이머를 취소합니다.
KeSetTimer의 호출자는 타이머에 대해 하나의 만료 시간을 지정할 수 있습니다. 되풀이 타이머를 설정하려면 KeSetTimerEx를 사용합니다.
타이머 개체에 대한 자세한 내용은 타이머 개체 및 DPC를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), IrqlKeDispatchLte(wdm) |