다음을 통해 공유


IoReportTargetDeviceChange 함수(wdm.h)

IoReportTargetDeviceChange 루틴은 PnP 관리자에게 디바이스에서 사용자 지정 이벤트가 발생했음을 알 수 있습니다.

통사론

NTSTATUS IoReportTargetDeviceChange(
  [in] PDEVICE_OBJECT PhysicalDeviceObject,
  [in] PVOID          NotificationStructure
);

매개 변수

[in] PhysicalDeviceObject

보고되는 디바이스의 PDO에 대한 포인터입니다.

[in] NotificationStructure

사용자 지정 이벤트를 설명하는 호출자 제공 TARGET_DEVICE_CUSTOM_NOTIFICATION 구조체에 대한 포인터입니다. PnP 관리자는 이벤트 알림을 위해 등록된 드라이버에 이 구조를 보냅니다.

NotificationStructure .FileObject NULL 합니다. NotificationStructure .이벤트 이벤트에 대한 사용자 지정 GUID를 포함해야 합니다. NotificationStructure 다른 필드는 사용자 지정 이벤트에 적절하게 채워야 합니다.

PnP 관리자는 NotificationStructure채웁니다. 등록자에게 알림을 보낼 때 FileObject필드를.

반환 값

IoReportTargetDeviceChange STATUS_SUCCESS 또는 적절한 오류 상태를 반환합니다. 가능한 오류 상태 값은 다음과 같습니다.

반환 코드 묘사
STATUS_INVALID_DEVICE_REQUEST
호출자가 시스템 PnP 이벤트(예: GUID_TARGET_DEVICE_QUERY_REMOVE)를 지정했습니다. 이 루틴은 사용자 지정 이벤트에만 사용됩니다.

발언

IoReportTargetDeviceChange PnP 관리자에게 디바이스에서 사용자 지정 이벤트가 발생했음을 알리면 PnP 관리자는 디바이스에서 알림을 위해 등록된 드라이버에 이벤트 알림을 보냅니다. 이 루틴을 사용하여 GUID_TARGET_DEVICE_REMOVE_COMPLETE 같은 시스템 PnP 이벤트를 보고하지 마세요.

사용자 지정 디바이스 이벤트를 정의하는 드라이버는 IoReportTargetDeviceChange 호출하여 PnP 관리자에게 사용자 지정 이벤트가 발생했음을 알릴 수 있습니다. 사용자 지정 알림은 볼륨 레이블 변경과 같은 이벤트에 사용할 수 있습니다.

드라이버는 교착 상태를 방지하기 위해 이 루틴 대신 IoReportTargetDeviceChangeAsynchronous 이 루틴의 비동기 형식을 호출해야 합니다.

특정 커널 모드 구성 요소는 이 동기 루틴을 호출할 수 있습니다. 예를 들어 파일 시스템은 IoReportTargetDeviceChange 호출하여 구성 요소가 배타적 액세스를 위해 볼륨을 열려고 할 때 "볼륨에서 벗어나기" 사용자 지정 이벤트를 보고할 수 있습니다. 파일 시스템 볼륨에 알림을 등록하는 클라이언트는 PnP 알림 콜백 루틴에서 단독 열기를 요청하지 않도록 주의해야 합니다.

사용자 지정 알림 구조에는 자체 GUID가 있는 드라이버 정의 이벤트가 포함됩니다. 드라이버 작성기는 microsoft Windows SDK에 포함된 Uuidgen.exe 또는 Guidgen.exe 사용하여 GUID를 생성할 수 있습니다.

IoReportTargetDeviceChange 호출자는 시스템 스레드의 컨텍스트에서 IRQL = PASSIVE_LEVEL 실행되어야 합니다. IRQL > PASSIVE_LEVEL 대상 디바이스 변경을 보고하려면 IoReportTargetDeviceChangeAsynchronous호출합니다.

IoReportTargetDeviceChange Windows 98/Me에서 지원되지 않습니다. STATUS_NOT_IMPLEMENTED 반환합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL(설명 섹션 참조)
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

참고 항목

IoReportTargetDeviceChangeAsynchronous

TARGET_DEVICE_CUSTOM_NOTIFICATION