PnP 알림 콜백 루틴 작성 지침
PnP 관리자는 IRQL = PASSIVE_LEVEL 알림 콜백 루틴을 호출합니다.
PnP 하위 시스템의 원활한 작동을 보장하려면 PnP 알림 콜백 루틴이 다음 지침을 따라야 합니다.
알림 콜백 루틴은 차단해서는 안됩니다.
알림 콜백 루틴은 PnP 이벤트를 생성하는 동기 루틴 또는 디바이스 설치 또는 제거 대기를 차단하는 루틴을 호출하거나 호출하지 않아야 합니다.
알림 콜백 중에 이러한 루틴을 호출하면 시스템 교착 상태가 발생할 수 있습니다.
예를 들어 드라이버는 알림 콜백 루틴에서 IoReportTargetDeviceChange 를 호출해서는 안됩니다. 대신 IoReportTargetDeviceChangeAsynchronous를 호출합니다 .
알림 콜백 루틴은 명시적으로 실패하지 않는 모든 이벤트에 대해 성공을 반환해야 합니다.
드라이버가 이벤트 범주에 대한 알림을 등록하면 PnP 관리자는 해당 범주의 모든 이벤트(현재 및 미래)를 드라이버에 알린다. 드라이버가 처리하지 않는 이벤트에 대한 오류 상태 반환하는 경우 드라이버는 실수로 새 쿼리 이벤트에 실패할 위험이 있습니다.
예를 들어 드라이버가 쿼리 알림에 실패하여 제안된 이벤트를 거부하면 드라이버가 오류 상태 올바르게 반환합니다.
알림 콜백 루틴은 페이징 코드여야 합니다.