KeQueryDpcWatchdogInformation 함수(wdm.h)
KeQueryDpcWatchdogInformation 루틴은 현재 프로세서에 대한 DPC(지연 프로시저 호출) watchdog 타이머 값을 반환합니다.
구문
NTSTATUS KeQueryDpcWatchdogInformation(
[out] PKDPC_WATCHDOG_INFORMATION WatchdogInformation
);
매개 변수
[out] WatchdogInformation
호출자가 제공한 KDPC_WATCHDOG_INFORMATION 구조체에 대한 포인터입니다. 루틴은 현재 DPC watchdog 타이머 값을 이 구조체에 씁니다.
반환 값
KeQueryDpcWatchdogInformation 은 NTSTATUS 값을 반환합니다. 가능한 반환 값에는 다음 상태 코드가 포함됩니다.
반환 코드 | 설명 |
---|---|
|
DPC가 현재 프로세서에서 실행되는 동안 KeQueryDpcWatchdogInformation이 호출되었습니다. |
|
KeQueryDpcWatchdogInformation이 호출되었을 때 현재 프로세서가 DPC를 실행하지 않았습니다. |
설명
KeQueryDpcWatchdogInformation 루틴은 DPC 루틴 또는 IRQL= DISPATCH_LEVEL 호출하여 DPC 제한 시간이 발생하기 전에 남은 시간을 확인할 수 있습니다. 운영 체제는 DPC Watchdog 타이머를 구현하여 단일 DPC 루틴이 너무 오래 실행되는 경우 또는 대기 중인 일련의 DPC 루틴이 너무 오랫동안 연속으로 실행되는 경우를 감지합니다. DPC 시간 제한 오류를 사용하도록 설정하고 DPC 루틴이 단일 루틴의 시간 제한을 초과하거나 일련의 DPC 루틴이 집계 시간 제한을 초과하는 경우 DPC_WATCHDOG_VIOLATION(0x133) 버그 검사 발생합니다.
DPC가 실행 중이거나 현재 프로세서에서 IRQL= DISPATCH_LEVEL 이상에서 호출되는 동안 KeQueryDpcWatchdogInformation을 호출해야 합니다. 그렇지 않으면 호출이 실패하고 STATUS_UNSUCCESSFUL 반환합니다.
DPC 루틴은 짧은 기간 동안만 실행되어야 하며 작업자 스레드에 가능한 한 많은 처리를 위임해야 합니다. 시스템 응답성이 저하되지 않도록 하기 위해 일반적인 DPC 루틴은 호출할 때마다 100 마이크로초 이하로 실행되어야 합니다. 자세한 내용은 DPC 루틴 작성 지침을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |