디바이스 인터페이스 변경 알림 등록
드라이버는 IoRegisterPlugPlayNotification을 호출하여 디바이스 인터페이스 도착 및 제거 이벤트에 대한 알림을 등록합니다.
다음 정보는 디바이스 인터페이스 변경 알림에 대해 이 루틴을 호출하는 데 적용됩니다.
EventCategoryDeviceInterfaceChange의 EventCategory를 지정합니다.
EventCategoryData 는 디바이스 인터페이스 클래스의 GUID를 가리킵니다.
인터페이스 클래스의 GUID는 일반적으로 인터페이스에 대한 구조체, 상수 등을 사용하는 헤더 파일에 정의됩니다.
PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES EventCategoryFlags를 지정합니다 .
이 플래그는 PnP 관리자에게 지정된 클래스의 향후 디바이스 인터페이스 도착 및 출발에 대해 CallbackRoutine 을 등록하고 이미 활성 상태인 모든 관련 디바이스 인터페이스에 대해 즉시 CallbackRoutine 을 호출하도록 지시합니다.
드라이버는 IoGetDeviceInterfaces 를 호출하여 특정 클래스의 기존 인터페이스 목록을 가져온 다음 이 플래그 없이 콜백 루틴을 등록할 수 있지만 플래그를 사용하는 것이 더 쉬우며 잠재적인 타이밍 문제를 방지합니다.
적절한 경우 PnP 관리자가 콜백 루틴에 전달할 드라이버 정의 컨텍스트를 지정합니다.
디바이스 인터페이스 도착 알림에 대한 응답으로 디바이스에 대한 핸들을 여는 드라이버는 디바이스의 EventCategoryTargetDeviceChange 이벤트에 등록해야 합니다. ( PnP 대상 디바이스 변경 알림 사용을 참조하세요.)
드라이버는 IoRegisterPlugPlayNotification에서 반환된 NotificationEntry를 사용하여 IoUnregisterPlugPlayNotification을 호출하여 알림 등록을 취소합니다.