WdfPdoMarkMissing 함수(wdfpdo.h)

[KMDF에만 적용]

WdfPdoMarkMissing 메서드는 디바이스에 더 이상 액세스할 수 없다는 것을 프레임워크에 알릴 수 있습니다.

구문

NTSTATUS WdfPdoMarkMissing(
  [in] WDFDEVICE Device
);

매개 변수

[in] Device

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

반환 값

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

반환 코드 설명
STATUS_INVALID_PARAMETER
디바이스 핸들은 PDO를 나타내지 않습니다.
STATUS_NO_SUCH_DEVICE
디바이스 개체를 찾을 수 없습니다.
 

메서드는 다른 NTSTATUS 값을 반환할 수도 있습니다.

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

설명

WdfPdoMarkMissing에 대한 자세한 내용은 정적 열거형을 참조하세요.

예제

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

WDFDEVICE  hChild = NULL;
NTSTATUS  status = STATUS_INVALID_PARAMETER;
BOOLEAN  found = FALSE;
PPDO_DEVICE_DATA  pdoData;

WdfFdoLockStaticChildListForIteration(Device);

while ((hChild = WdfFdoRetrieveNextStaticChild(
                                               Device, 
                                               hChild,
                                               WdfRetrieveAddedChildren
                                               )) != NULL) {
    pdoData = PdoGetData(hChild);  // Device object context space
    if (SerialNo == pdoData->SerialNo) {
        status = WdfPdoMarkMissing(hChild);
        if(!NT_SUCCESS(status)) {
            KdPrint(("WdfPdoMarkMissing failed 0x%x\n", status));
            break;
        }
        found = TRUE;
        break;
    }
}
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