WdfPdoRequestEject 함수(wdfpdo.h)

[KMDF에만 적용]

WdfPdoRequestEject 메서드는 지정된 디바이스가 도킹 스테이션에서 배출될 예정임을 프레임워크에 알릴 수 있습니다.

구문

void WdfPdoRequestEject(
  [in] WDFDEVICE Device
);

매개 변수

[in] Device

디바이스의 PDO(물리적 디바이스 개체)를 나타내는 프레임워크 디바이스 개체에 대한 핸들입니다.

반환 값

없음

설명

드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.

버스 드라이버는 WdfPdoRequestEject 또는 WdfChildListRequestChildEject 를 호출하여 드라이버가 디바이스의 도킹 스테이션에서 열거된 자식 디바이스 중 하나를 꺼내려는 시도를 감지했다고 보고할 수 있습니다. 예를 들어 드라이버는 사용자가 배출 단추를 누름을 감지할 수 있습니다.

디바이스의 PDO에 대한 프레임워크 디바이스 개체를 사용할 수 있는 경우 드라이버는 WdfPdoRequestEject를 호출할 수 있습니다. 드라이버가 동적 버스 열거형을 사용하고 디바이스의 ID 설명을 사용할 수 있는 경우 드라이버는 WdfChildListRequestChildEject를 호출할 수 있습니다.

WdfPdoRequestEjectWdfChildListRequestChildEject에 대한 자세한 내용은 Ejectable 디바이스 지원을 참조하세요.

예제

다음 코드 예제에서는 자식 디바이스 목록을 검색하여 지정된 일련 번호와 일치하는 디바이스를 찾습니다. 예제에서 올바른 자식이 발견되면 WdfPdoRequestEject 를 호출하여 자식이 배출되고 있음을 나타냅니다. 이 예제는 Toaster 샘플 버스 드라이버에서 가져와 간소화되었습니다.

WDFDEVICE  hChild = NULL;
NTSTATUS  status = STATUS_INVALID_PARAMETER;
PPDO_DEVICE_DATA  pdoData;

WdfFdoLockStaticChildListForIteration(Device);

while ((hChild = WdfFdoRetrieveNextStaticChild(
                                               Device, 
                                               hChild,
                                               WdfRetrieveAddedChildren
                                               )) != NULL) {
    //
    // Obtain device object context space, and check the
    // stored serial number.
    //
    pdoData = PdoGetData(hChild);
    if (SerialNo == pdoData->SerialNo) {
        status = STATUS_SUCCESS;
        WdfPdoRequestEject(hChild);
    }
}
WdfFdoUnlockStaticChildListFromIteration(Device);

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
머리글 wdfpdo.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

추가 정보

WdfFdoLockStaticChildListForIteration

WdfFdoRetrieveNextStaticChild

WdfFdoUnlockStaticChildListFromIteration