다음을 통해 공유


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
PhysicalDevice NULL .
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