PnP가 아닌 드라이버의 언로드 루틴
PnP 디바이스 제거 요청을 처리하지 않는 이전 드라이버 및 상위 수준 파일 시스템 드라이버는 언로드 루틴에서 리소스를 해제하고, 디바이스 개체를 삭제하고, 디바이스 스택에서 분리해야 합니다.
아직 수행하지 않은 경우 레거시 디바이스 드라이버가 언로드 루틴에서 수행해야 하는 첫 번째 작업은 디바이스에서 인터럽트 해제입니다. 그렇지 않으면 언로드 루틴이 ISR이 인터럽트 처리에 필요한 디바이스 확장에서 리소스를 해제하는 동안 디바이스 인터럽트 처리를 위해 ISR을 호출할 수 있습니다. 이러한 상황에서 ISR이 성공적으로 실행되더라도 ISR이 큐에 대기하는 DpcForIsr 또는 CustomDpc 루틴과 IRQL >= DISPATCH_LEVEL 실행되는 다른 드라이버 루틴은 언로드 루틴이 다시 제어되기 전에 실행되므로 언로드 루틴이 다른 드라이버 루틴에서 참조하는 리소스를 삭제할 가능성이 높아집니다. 자세한 내용은 하드웨어 우선 순위 관리를 참조하세요.
인터럽트 비활성화 후 파일 시스템 및 레거시 드라이버는 리소스 및 개체를 해제해야 합니다. 자세한 내용은 다음 두 섹션을 참조하세요.