ExSetTimerResolution 함수(wdm.h)

ExSetTimerResolution 루틴은 시스템 클록이 중단되는 빈도를 수정합니다. 이 루틴은 주의해야 합니다(다음 설명 섹션 참조).

구문

ULONG ExSetTimerResolution(
  [in] ULONG   DesiredTime,
  [in] BOOLEAN SetResolution
);

매개 변수

[in] DesiredTime

각 타이머 인터럽트 간에 경과해야 하는 시간을 100나노초 단위로 지정합니다. 최소값은 약 10,000(1밀리초)이지만 플랫폼에 따라 약간 다를 수 있습니다. SetResolutionFALSE이면 이 매개 변수는 무시됩니다.

[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)

추가 정보

KeSetTimerEx