WdfFdoRetrieveNextStaticChild 함수(wdffdo.h)

[KMDF에만 적용]

WdfFdoRetrieveNextStaticChild 메서드는 자식 디바이스 목록에서 다음 프레임워크 디바이스 개체에 대한 핸들을 검색합니다.

구문

WDFDEVICE WdfFdoRetrieveNextStaticChild(
  [in]           WDFDEVICE Fdo,
  [in, optional] WDFDEVICE PreviousChild,
  [in]           ULONG     Flags
);

매개 변수

[in] Fdo

부모 디바이스를 나타내는 프레임워크 디바이스 개체에 대한 핸들입니다.

[in, optional] PreviousChild

WdfFdoRetrieveNextStaticChild에 대한 이전 호출에서 반환된 자식 디바이스를 나타내는 프레임워크 디바이스 개체에 대한 핸들입니다. WdfFdoRetrieveNextStaticChild에 대한 첫 번째 호출의 경우 이 값은 NULL이어야 합니다.

[in] Flags

메서드가 검색해야 하는 자식 디바이스의 유형을 식별하는 WDF_RETRIEVE_CHILD_FLAGS 형식의 열거자 값입니다. 이 매개 변수는 0일 수 없습니다.

반환 값

작업이 성공하면 메서드는 프레임워크 디바이스 개체에 대한 핸들을 반환합니다. 그렇지 않으면 NULL을 반환합니다.

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

설명

정적 버스 열거형을 사용하는 버스 드라이버는 WdfFdoRetrieveNextStaticChild를 호출할 수 있습니다.

자식 디바이스 목록에서 항목을 검색하려면 드라이버는 다음을 수행해야 합니다.

  1. WdfFdoLockStaticChildListForIteration을 호출하여 자식 목록을 잠급 수 있습니다.
  2. WdfFdoRetrieveNextStaticChild를 반복적으로 호출하여 메서드가 NULL을 반환할 때까지 목록의 항목을 한 번에 하나씩 가져옵니다.
  3. WdfFdoUnlockStaticChildListFromIteration을 호출하여 자식 목록의 잠금을 해제합니다.
정적 자식 목록에 대한 자세한 내용은 버스에서 디바이스 열거를 참조하세요.

예제

다음 코드 예제에서는 특정 값과 일치하는 일련 번호가 있는 자식 디바이스를 발견할 때까지 정적 자식 목록을 검색합니다. WdfFdoRetrieveNextStaticChild의 다른 예제 사용은 Toaster 샘플 버스 드라이버를 참조하세요.

PPDO_DEVICE_DATA  pdoData;
WDFDEVICE  hChild;
NTSTATUS  status = STATUS_INVALID_PARAMETER;

WdfFdoLockStaticChildListForIteration(Device);

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

요구 사항

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

추가 정보

WdfFdoLockStaticChildListForIteration

WdfFdoUnlockStaticChildListFromIteration