PnP 사용자 지정 알림 사용

드라이버는 대상 디바이스 변경 알림 메커니즘을 사용하여 디바이스의 사용자 지정 이벤트에 대한 알림을 받을 수 있습니다.

사용자 지정 이벤트를 정의하는 프로그래머가 다음을 수행해야 합니다.

  1. 사용자 지정 이벤트에 대한 새 GUID를 정의합니다.

    Uuidgen 또는 Guidgen(Microsoft Windows SDK 포함)을 사용하여 GUID를 생성합니다. 적절한 헤더 파일 및 설명서에 GUID를 게시합니다.

  2. 사용자 지정 이벤트를 트리거하는 코드를 작성합니다.

    커널 모드에서 드라이버는 사용자 지정 GUID 및 디바이스의 PDO에 대한 포인터를 사용하여 IoReportTargetDeviceChange 를 호출합니다. 사용자 지정 이벤트는 커널 모드에서만 트리거할 수 있습니다.

드라이버 작성기는 다음과 같은 프로시저와 함께 사용자 지정 알림을 사용합니다.

  1. 드라이버(또는 애플리케이션)는 사용자 지정 이벤트의 알림을 등록합니다.

    커널 모드에서 드라이버는 IoRegisterPlugPlayNotification 을 호출하고 디바이스에서 EventCategoryTargetDeviceChange 를 등록합니다.

    사용자 모드에서 애플리케이션은 RegisterDeviceNotification을 사용하여 등록합니다. 자세한 내용은 Windows SDK를 참조하세요.

  2. 커널 모드 구성 요소는 사용자 지정 이벤트를 트리거합니다.

  3. PnP 관리자는 디바이스에 등록된 알림 루틴을 호출합니다.

    PnP 관리자는 등록된 사용자 모드 콜백 루틴을 호출한 다음 커널 모드 콜백 루틴을 호출합니다.

  4. 사용자 모드 알림이 완료되면 커널 모드 드라이버 알림 콜백 루틴이 사용자 지정 이벤트에 응답합니다.

    알림 콜백 루틴에 대한 일반적인 지침은 PnP 알림 콜백 루틴 작성 지침을 참조하세요. 이러한 지침 외에도 사용자 지정 알림 콜백 루틴은 콜백 루틴 스레드 내에서 디바이스에 대한 핸들을 열지 않아야 합니다.