IoInvalidateDeviceRelations 함수(wdm.h)
IoInvalidateDeviceRelations 루틴은 PnP 관리자에게 디바이스의 관계(예: 버스 관계, 배출 관계, 제거 관계 및 대상 디바이스 관계)가 변경되었다는 것을 알릴 수 있습니다.
구문
void IoInvalidateDeviceRelations(
[in] PDEVICE_OBJECT DeviceObject,
[in] DEVICE_RELATION_TYPE Type
);
매개 변수
[in] DeviceObject
디바이스의 PDO에 대한 포인터입니다.
[in] Type
변경된 관계 유형을 설명하는 DEVICE_RELATION_TYPE 열거형 값을 지정합니다. 가능한 값으로 는 BusRelations, EjectionRelations, RemovalRelations 및 TargetDeviceRelation이 있습니다. Windows 7부터 PowerRelations 값도 지원됩니다.
반환 값
없음
설명
BusRelations와 같은 일부 관계 형식의 경우 이 루틴을 사용하면 PnP 관리자 또는 전원 관리자가 디바이스에 대한 드라이버에 IRP_MN_QUERY_DEVICE_RELATIONS 요청을 전송하여 업데이트된 관계 정보를 수집합니다. EjectionRelations와 같은 다른 관계 형식의 경우 PnP 관리자는 새 관계 정보를 즉시 수집할 필요가 없습니다. PnP 관리자는 디바이스를 꺼내려고 준비할 때만 드라이버에서 꺼내기 관계를 쿼리합니다.
버스 드라이버가 IoInvalidateDeviceRelations 를 호출하여 디바이스가 사라졌다는 것을 PnP 관리자에게 알리면 버스 드라이버는 IRP_MN_REMOVE_DEVICE 요청을 받을 때까지 해당 디바이스에 대한 PnP IRP를 계속 처리해야 합니다. 이 IRP에 대한 응답으로 버스 드라이버는 STATUS_NO_SUCH_DEVICE 반환합니다. 버스 드라이버가 IRP_MN_REMOVE_DEVICE 요청을 성공적으로 완료할 때까지 버스 드라이버는 디바이스 확장에 액세스하여 디바이스에 대한 플래그를 검사 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport) |