다음을 통해 공유


DPC 소개

ISR이 있는 모든 드라이버에는 일반적으로 인터럽트 기반 I/O 작업의 처리를 완료하기 위한 DpcForIsr 또는 CustomDpc 루틴이 하나 이상 있습니다. 일반적인 최저 수준 드라이버의 DpcForIsr 또는 CustomDpc 루틴은 다음을 수행합니다.

  • ISR이 처리를 시작한 I/O 작업 처리를 완료합니다.

  • 드라이버에서 처리를 시작할 수 있도록 다음 IRP를 큐에서 제거합니다.

  • 가능한 경우 현재 IRP를 완료합니다.

여러 데이터 전송이 필요하거나 복구 가능한 오류가 감지되어 현재 IRP를 완료할 수 없는 경우가 있습니다. 이러한 경우 DpcForIsr 또는 CustomDpc 루틴은 일반적으로 다른 전송 또는 마지막 작업의 재시도를 위해 디바이스를 다시 프로그래밍합니다.

DpcForIsr 또는 CustomDpc 루틴은 IRQL DISPATCH_LEVEL 임의 DPC 컨텍스트에서 호출됩니다. DISPATCH_LEVEL 실행하면 DpcForIsr 또는 CustomDpc 루틴에서 호출할 수 있는 지원 루틴 집합이 제한됩니다. 자세한 내용은 하드웨어 우선 순위 관리를 참조하세요.

DPC 개체 및 DPC는 타이머와 함께 사용할 수도 있습니다. 자세한 내용은 타이머 개체 및 DPC를 참조하세요.