WdfDeviceAddRemovalRelationsPhysicalDevice 함수(wdfdevice.h)
[KMDF에만 적용]
WdfDeviceAddRemovalRelationsPhysicalDevice 메서드는 지정된 다른 디바이스를 제거할 때 지정된 디바이스를 제거해야 했음을 나타냅니다.
구문
NTSTATUS WdfDeviceAddRemovalRelationsPhysicalDevice(
[in] WDFDEVICE Device,
[in] PDEVICE_OBJECT PhysicalDevice
);
매개 변수
[in] Device
프레임워크 디바이스 개체에 대한 핸들입니다.
[in] PhysicalDevice
PDO(물리적 디바이스 개체)를 나타내는 호출자가 제공한 DEVICE_OBJECT 구조체에 대한 포인터입니다.
반환 값
작업이 성공하면 WdfDeviceAddRemovalRelationsPhysicalDevice 는 STATUS_SUCCESS 반환합니다. 추가 반환 값은 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
PhysicalDevice 는 NULL입니다. |
|
메모리 할당에 실패했습니다. |
메서드는 다른 NTSTATUS 값을 반환할 수 있습니다.
드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.
설명
PhysicalDevice 매개 변수는 디바이스용 드라이버가 제거될 때 드라이버를 제거해야 하는 디바이스의 PDO를 가리킵니다. 일반적으로 두 디바이스는 호출 드라이버에 의해 제어됩니다. 플러그 앤 플레이 관리자가 부모 디바이스를 제거하면 디바이스의 자식 디바이스도 제거되므로 디바이스에 지정된 디바이스 개체의 자식 디바이스를 보고하지 마세요.
드라이버는 WdfDeviceAddRemovalRelationsPhysicalDevice 를 여러 번 호출하여 디바이스를 제거할 때 제거 해야 하는 디바이스 목록에 여러 디바이스를 추가할 수 있습니다. 지정된 디바이스가 제거되는 순서는 정의되지 않습니다.
예제
다음 코드 예제에서는 pPdo 가 식별하는 디바이스를 디바이스가 지정하는 디바이스가 제거될 때 제거해야 하는 디바이스 목록에 추가합니다.
status = WdfDeviceAddRemovalRelationsPhysicalDevice(
device,
pPdo
);
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
최소 KMDF 버전 | 1.0 |
머리글 | wdfdevice.h(Wdf.h 포함) |
라이브러리 | Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조) |
IRQL | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |