WdfChildListCreate 함수(wdfchildlist.h)
[KMDF에만 적용]
WdfChildListCreate 메서드는 지정된 부모 디바이스에 대한 자식 목록을 만듭니다.
통사론
NTSTATUS WdfChildListCreate(
[in] WDFDEVICE Device,
[in] PWDF_CHILD_LIST_CONFIG Config,
[in, optional] PWDF_OBJECT_ATTRIBUTES ChildListAttributes,
[out] WDFCHILDLIST *ChildList
);
매개 변수
[in] Device
부모 디바이스를 나타내는 프레임워크 디바이스 개체에 대한 핸들입니다.
[in] Config
자식 목록에 대한 드라이버 제공 구성 정보를 포함하는 WDF_CHILD_LIST_CONFIG 구조체에 대한 포인터입니다.
[in, optional] ChildListAttributes
프레임워크 자식 목록 개체에 대한 드라이버 제공 개체 특성을 포함하는 WDF_OBJECT_ATTRIBUTES 구조체에 대한 포인터입니다. 구조체의 ParentObject 멤버는 NULL 합니다.
[out] ChildList
프레임워크 자식 목록 개체에 대한 핸들을 수신하는 호출자 할당 위치에 대한 포인터입니다.
반환 값
WdfChildListCreate STATUS_SUCCESS 반환하거나 작업이 성공하면 NT_SUCCESS(status)가 true 다른 상태 값을 반환합니다. 그렇지 않으면 이 메서드는 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 묘사 |
---|---|
|
입력 매개 변수가 잘못되었습니다. |
|
개체를 할당할 수 없습니다. |
이 메서드는 다른NTSTATUS 값을 반환할 수도 있습니다.
드라이버가 잘못된 개체 핸들을 제공하는 경우 시스템 버그 검사가 발생합니다.
발언
프레임워크는 기능적 디바이스 개체(FDO)를 나타내는 각 프레임워크 디바이스 개체에 대한 기본 자식 목록을 만듭니다. 기본 자식 목록을 사용하기 위해 드라이버는 WdfFdoGetDefaultChildList 호출합니다. 드라이버에 추가 자식 목록이 필요한 경우 WdfChildListCreate 호출하여 만들 수 있습니다.
각 자식 목록 개체의 부모는 디바이스의 프레임워크 디바이스 개체입니다. 드라이버는 이 부모를 변경할 수 없으며 ParentObject 멤버 또는 WDF_OBJECT_ATTRIBUTES 구조체는 NULL 합니다.
드라이버에서 WdfChildListCreate 만드는 자식 목록 개체를 수 없습니다. 프레임워크는 적절한 시간에 개체를 삭제합니다.
자식 목록에 대한 자세한 내용은 동적 열거형참조하세요.
예제
다음 코드 예제에서는 WDF_CHILD_LIST_CONFIG 구조를 초기화한 다음 WdfChildListCreate 호출합니다.
WDF_CHILD_LIST_CONFIG listConfig;
WDF_CHILD_LIST_CONFIG_INIT(
&listConfig,
sizeof(PDO_IDENTIFICATION_DESCRIPTION),
My_EvtDeviceListCreatePdo
);
listConfig.AddressDescriptionSize = sizeof(PDO_ADDRESS_DESCRIPTION);
listConfig.EvtChildListScanForChildren = My_EvtChildListScanForChildren;
listConfig.EvtChildListIdentificationDescriptionDuplicate = My_EvtChildListIdentificationDescriptionDuplicate;
listConfig.EvtChildListIdentificationDescriptionCompare = My_EvtChildListIdentificationDescriptionCompare;
listConfig.EvtChildListIdentificationDescriptionCleanup = My_EvtChildListIdentificationDescriptionCleanup;
status = WdfChildListCreate(
device,
&listConfig,
WDF_NO_OBJECT_ATTRIBUTES,
&ParentDeviceContext->ChildList
);
if (!NT_SUCCESS(status)) {
return status;
}
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 보편적 |
최소 KMDF 버전 | 1.0 |
헤더 | wdfchildlist.h(Wdf.h 포함) |
라이브러리 | Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조) |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |