다음을 통해 공유


디바이스 인터페이스 변경 알림 등록

드라이버는 IoRegisterPlugPlayNotification을 호출하여 디바이스 인터페이스 도착 및 제거 이벤트에 대한 알림을 등록합니다.

다음 정보는 디바이스 인터페이스 변경 알림에 대해 이 루틴을 호출하는 데 적용됩니다.

  • EventCategoryDeviceInterfaceChangeEventCategory를 지정합니다.

  • EventCategoryData 는 디바이스 인터페이스 클래스의 GUID를 가리킵니다.

    인터페이스 클래스의 GUID는 일반적으로 인터페이스에 대한 구조체, 상수 등을 사용하는 헤더 파일에 정의됩니다.

  • PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES EventCategoryFlags를 지정합니다 .

    이 플래그는 PnP 관리자에게 지정된 클래스의 향후 디바이스 인터페이스 도착 및 출발에 대해 CallbackRoutine 을 등록하고 이미 활성 상태인 모든 관련 디바이스 인터페이스에 대해 즉시 CallbackRoutine 을 호출하도록 지시합니다.

    드라이버는 IoGetDeviceInterfaces 를 호출하여 특정 클래스의 기존 인터페이스 목록을 가져온 다음 이 플래그 없이 콜백 루틴을 등록할 수 있지만 플래그를 사용하는 것이 더 쉬우며 잠재적인 타이밍 문제를 방지합니다.

  • 적절한 경우 PnP 관리자가 콜백 루틴에 전달할 드라이버 정의 컨텍스트를 지정합니다.

디바이스 인터페이스 도착 알림에 대한 응답으로 디바이스에 대한 핸들을 여는 드라이버는 디바이스의 EventCategoryTargetDeviceChange 이벤트에 등록해야 합니다. ( PnP 대상 디바이스 변경 알림 사용을 참조하세요.)

드라이버는 IoRegisterPlugPlayNotification에서 반환된 NotificationEntry를 사용하여 IoUnregisterPlugPlayNotification을 호출하여 알림 등록을 취소합니다.