ExSetTimerResolution 함수(wdm.h)
ExSetTimerResolution 루틴은 시스템 클록이 중단되는 빈도를 수정합니다. 이 루틴은 주의해야 합니다(다음 설명 섹션 참조).
구문
ULONG ExSetTimerResolution(
[in] ULONG DesiredTime,
[in] BOOLEAN SetResolution
);
매개 변수
[in] DesiredTime
각 타이머 인터럽트 간에 경과해야 하는 시간을 100나노초 단위로 지정합니다. 최소값은 약 10,000(1밀리초)이지만 플랫폼에 따라 약간 다를 수 있습니다. SetResolution이 FALSE이면 이 매개 변수는 무시됩니다.
[in] SetResolution
TRUE이면 클록 인터럽트 빈도를 DesiredTime에서 지정한 값으로 설정하라는 요청입니다. FALSE인 경우 호출은 클록 인터럽트 빈도를 플랫폼별 시스템의 기본값으로 복원하는 요청입니다.
반환 값
ExSetTimerResolution 은 100나노초 단위로 새 타이머 해상도를 반환합니다.
설명
타이머 해상도를 설정하기 위해 드라이버는 SETResolution에 대한 매개 변수로 TRUE를 전달하는 이 루틴을 호출합니다. 다음 규칙이 적용됩니다.
루틴은 지정된 DesiredTime 값이 현재 설정보다 작은 경우에만 클록 인터럽트 빈도를 변경합니다.
드라이버가 현재 설정된 값보다 큰 DesiredTime 값을 요청하는 경우 루틴은 현재 설정만 반환합니다.
드라이버가 시스템 클록이 지원할 수 있는 것보다 작은 DesiredTime 값을 요청하는 경우 루틴은 시스템에서 지원할 수 있는 가장 작은 해상도를 사용하고 해당 값을 반환합니다.
이 루틴을 사용하여 클록 인터럽트 빈도를 변경하는 경우 드라이버는 일반적으로 언로드되기 전에 다음 호출을 수행하여 기본 인터럽트 빈도를 복원해야 합니다.
ExSetTimerResolution (0, FALSE);
여러 드라이버가 클록 인터럽트 빈도를 수정하려고 시도한 경우 이러한 모든 드라이버가 SetResolution 값 이 FALSE인 이 루틴을 호출할 때까지 시스템은 기본 빈도를 복원하지 않습니다.
클록 인터럽트 빈도 변경의 결과는 시스템 전체이며 시스템 성능에 심각한 부정적인 영향을 미칠 수 있습니다. 또한 클록 인터럽트 주파수가 높을수록 시스템의 배터리 수명이 단축됩니다.
IRP_MJ_POWER 요청을 처리하는 동안 전원 관리자는 ExSetTimerResolution이 완료하기 위해 획득해야 하는 리소스에 대한 잠금을 보유합니다. 따라서 드라이버가 전원 요청을 처리하는 동안 ExSetTimerResolution 을 직접 또는 간접적으로 호출한 다음 ExSetTimerResolution 호출이 반환될 때까지 기다린 후 드라이버가 전원 요청을 완료하기 전에 교착 상태가 발생합니다. 전원 IRP를 처리하는 동안 ExSetTimerResolution 을 안전하게 호출하는 방법에 대한 자세한 내용은 Power IRP를 처리하는 동안 ExSetTimerResolution 호출을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | IRQL <= APC_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), IrqlExApcLte2(wdm) |