다음을 통해 공유


대상 디바이스 변경 알림 등록

드라이버는 IoRegisterPlugPlayNotification을 호출하여 PnP 대상 디바이스 변경 이벤트에 대한 알림을 등록합니다.

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

  • EventCategoryTargetDeviceChange의 EventCategory를 지정합니다.

  • EventCategoryData 는 알림이 요청된 디바이스의 파일 개체를 가리킵니다.

    드라이버의 콜백 루틴에서 파일 개체에 액세스해야 하는 경우 드라이버는 IoRegisterPlugPlayNotification을 호출하기 전에 파일 개체에 대한 참조를 가져와야 합니다.

    드라이버의 콜백 루틴에서 파일 개체에 액세스할 필요가 없는 경우 드라이버는 개체를 참조할 필요가 없습니다.

    파일 개체가 닫힌 후 드라이버는 드라이버가 알림 등록을 제거할 때까지 디바이스에 대한 알림을 계속 받습니다. 이 디자인을 사용하면 드라이버가 GUID_TARGET_DEVICE_REMOVE_CANCELLED 이벤트에 대한 알림을 받을 수 있습니다.

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

    드라이버는 Context 매개 변수를 사용하여 파일 개체의 현재 상태(예: 닫힘/삭제됨)에 대한 정보를 유지할 수 있습니다.

    드라이버는 컨텍스트 를 사용하여 원래 디바이스를 여는 데 사용한 경로를 저장할 수도 있습니다. 드라이버는 취소된 제거 작업 후에 이 경로를 사용하여 디바이스를 다시 열 수 있습니다. 자세한 내용은 GUID_TARGET_DEVICE_REMOVE_CANCELLED 이벤트 처리를 참조하세요.

드라이버는 IoRegisterPlugPlayNotification에서 반환된 NotificationEntry를 사용하여 IoUnregisterPlugPlayNotification을 호출하여 알림 등록을 제거합니다. 드라이버가 알림을 등록할 때 파일 개체에 대한 참조를 꺼내고 해당 참조가 여전히 미해결 상태인 경우 드라이버는 등록을 제거한 후 참조를 해제해야 합니다.