용어와 정의
영문 또는 원어: DPC
영문 정식명칭: Deferred Procedure Call
한글명: 지연 프로시저 호출
DPC는 Windows 커널에서 인터럽트 처리 이후의 일부 작업을 나중에 수행하도록 예약하는 방식입니다. 긴 작업을 인터럽트 처리 루틴에 모두 넣지 않도록 역할을 나눕니다.
정확한 의미와 원리
일반적인 DPC는 DISPATCH_LEVEL에서 실행되며 짧은 시간 안에 처리를 마쳐야 합니다. 한 처리가 너무 오래 실행되거나 시스템이 높은 IRQL에 오랫동안 머물면 다른 실행 흐름의 진행에 영향을 줄 수 있습니다.
쉽게 이해하는 사용 예시
DPC_WATCHDOG_VIOLATION을 분석할 때는 한 DPC의 시간 초과인지 높은 IRQL에서 누적 체류한 시간 문제인지 먼저 나눕니다. 이 구분에 따라 덤프의 호출 스택과 추가 실행 추적을 읽는 방법이 달라집니다.
종류와 관련 개념의 차이
ISR은 하드웨어 인터럽트에 즉시 대응하는 루틴이고 DPC는 미뤄 둔 후속 작업을 담당합니다. DPC watchdog은 시간 초과를 감시하는 장치이며 DPC 자체의 이름이나 프로그램 버전은 아닙니다.
적용 조건과 오해하기 쉬운 점
DPC 관련 지연과 0x00000133 시스템 정지는 동일한 측정 결과가 아닙니다. 드라이버 경로와 부하 조건이 확인되기 전에 특정 SSD, 그래픽카드 또는 네트워크 장치가 원인이라고 단정하지 않습니다.