WdfChildListRetrievePdo 함수(wdfchildlist.h)
[KMDF에만 적용]
WdfChildListRetrievePdo 메서드는 자식 목록의 지정된 자식 설명과 연결된 프레임워크 디바이스 개체에 대한 핸들을 반환합니다.
구문
WDFDEVICE WdfChildListRetrievePdo(
[in] WDFCHILDLIST ChildList,
[in, out] PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
);
매개 변수
[in] ChildList
자식 목록 개체에 대한 핸들입니다.
[in, out] RetrieveInfo
드라이버가 검색할 자식의 식별 설명과 함께 초기화하는 드라이버 할당 WDF_CHILD_RETRIEVE_INFO 구조체에 대한 포인터입니다.
반환 값
WdfChildListRetrievePdo 는 지정된 자식 디바이스가 자식 목록에 있고, 자식 디바이스에 대한 프레임워크 디바이스 개체가 있고, 프레임워크가 PnP 관리자에게 디바이스의 존재를 보고한 경우 프레임워크 디바이스 개체에 대한 핸들을 반환합니다. 그렇지 않으면 메서드는 NULL을 반환합니다. 프레임워크는 WDF_CHILD_RETRIEVE_INFO 구조체의 Status 멤버에 추가 상태 정보를 반환합니다.
드라이버가 잘못된 개체 핸들을 제공하는 경우 시스템 버그 검사 발생합니다.
설명
WdfChildListRetrievePdo를 호출하기 전에 드라이버는 id 설명을 WDF_CHILD_RETRIEVE_INFO 구조에 배치해야 합니다.
WdfChildListRetrievePdo 메서드는 지정된 자식 목록을 트래버스하여 드라이버가 WDF_CHILD_RETRIEVE_INFO 구조에서 제공한 것과 일치하는 식별 설명이 있는 자식을 찾습니다. 프레임워크가 일치하는 항목을 찾은 경우 자식에 주소 설명이 있는 경우 프레임워크는 구조체의 주소 설명을 채웁니다.
다른 스레드에서 PDO의 갑작스런 PnP 제거로부터 호출자를 보호하려면 WdfChildListBeginIteration 및 WdfChildListEndIteration 을 사용하여 이 호출을 래핑해야 합니다.
자식 목록에 대한 자세한 내용은 동적 열거형을 참조하세요.
예제
다음 코드 예제에서는 자식 목록을 검색하여 ID 설명에 지정된 일련 번호가 포함된 자식 디바이스를 찾고 자식 디바이스를 나타내는 디바이스 개체에 대한 핸들을 가져옵니다.
WDF_CHILD_LIST_ITERATOR iterator;
PDO_IDENTIFICATION_DESCRIPTION description;
WDF_CHILD_RETRIEVE_INFO info;
WDFDEVICE hChild;
WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT(
&description.Header,
sizeof(description)
);
description.SerialNo = DeviceSerialNumber;
WDF_CHILD_RETRIEVE_INFO_INIT(
&info,
&description.Header
);
WDF_CHILD_LIST_ITERATOR_INIT(&iterator, WdfRetrieveAllChildren);
WdfChildListBeginIteration(childList, &iterator);
hChild = WdfChildListRetrievePdo(
childList,
&info
);
... access hChild ...
WdfChildListEndIteration(childList, &iterator);
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
최소 KMDF 버전 | 1.0 |
머리글 | wdfchildlist.h(Wdf.h 포함) |
라이브러리 | Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조) |
IRQL | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |