[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호출할 수 있습니다.
자식 디바이스 목록에서 항목을 검색하려면 드라이버는 다음을 수행해야 합니다.
- WdfFdoLockStaticChildListForIteration 호출하여 자식 목록을 잠급 수 있습니다.
- WdfFdoRetrieveNextStaticChild 반복적으로 호출하여 메서드가 NULL반환할 때까지 목록에 있는 항목을 한 번에 하나씩 가져옵니다.
- 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 | <= 디스패치_레벨 |
DDI 규정 준수 규칙 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf) |