다음을 통해 공유


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나노초 단위로 새 타이머 해상도를 반환합니다.

발언

타이머 해상도를 설정하기 위해 드라이버는 TRUE 전달하는 이 루틴을 SetResolution대한 매개 변수로 호출합니다. 다음 규칙이 적용됩니다.

  • 지정된 DesiredTime 값이 현재 설정보다 작은 경우에만 루틴이 클록 인터럽트 빈도를 변경합니다.

  • 드라이버가 현재 설정된 값보다 큰 DesiredTime 값을 요청하는 경우 루틴은 현재 설정만 반환합니다.

  • 드라이버가 시스템 클록에서 지원할 수 있는 것보다 작은 DesiredTime 값을 요청하는 경우 루틴은 시스템에서 지원할 수 있는 가장 작은 해상도를 사용하고 해당 값을 반환합니다.

이 루틴을 사용하여 클록 인터럽트 빈도를 변경하는 경우 드라이버는 일반적으로 언로드되기 전에 다음 호출을 수행하여 기본 인터럽트 빈도를 복원해야 합니다.

ExSetTimerResolution (0, FALSE);

여러 드라이버가 클록 인터럽트 빈도를 수정하려고 시도한 경우 이러한 모든 드라이버가 FALSESetResolution 값으로 이 루틴을 호출할 때까지 시스템에서 기본 빈도를 복원하지 않습니다.

클록 인터럽트 빈도 변경의 결과는 시스템 전체이며 시스템 성능에 심각한 부정적인 영향을 미칠 수 있습니다. 또한 클록 인터럽트 빈도가 높을수록 시스템의 배터리 수명이 단축됩니다.

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