다음을 통해 공유


WdfDeviceAddRemovalRelationsPhysicalDevice 함수(wdfdevice.h)

[KMDF에만 적용]

WdfDeviceAddRemovalRelationsPhysicalDevice 메서드는 지정된 다른 디바이스를 제거할 때 지정된 디바이스를 제거해야 했음을 나타냅니다.

구문

NTSTATUS WdfDeviceAddRemovalRelationsPhysicalDevice(
  [in] WDFDEVICE      Device,
  [in] PDEVICE_OBJECT PhysicalDevice
);

매개 변수

[in] Device

프레임워크 디바이스 개체에 대한 핸들입니다.

[in] PhysicalDevice

PDO(물리적 디바이스 개체)를 나타내는 호출자가 제공한 DEVICE_OBJECT 구조체에 대한 포인터입니다.

반환 값

작업이 성공하면 WdfDeviceAddRemovalRelationsPhysicalDevice 는 STATUS_SUCCESS 반환합니다. 추가 반환 값은 다음과 같습니다.

반환 코드 설명
STATUS_INVALID_PARAMETER
PhysicalDeviceNULL입니다.
STATUS_INSUFFICIENT_RESOURCES
메모리 할당에 실패했습니다.
 

메서드는 다른 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)

추가 정보

WdfDeviceClearRemovalRelationsDevices

WdfDeviceRemoveRemovalRelationsPhysicalDevice