[KMDF에만 적용]
WdfFdoAddStaticChild 메서드는 정적 열거형으로 식별된 함수 드라이버의 자식 디바이스 목록에 지정된 디바이스를 추가합니다.
구문론
NTSTATUS WdfFdoAddStaticChild(
[in] WDFDEVICE Fdo,
[in] WDFDEVICE Child
);
매개 변수
[in] Fdo
부모 디바이스를 나타내는 프레임워크 디바이스 개체에 대한 핸들입니다.
[in] Child
자식 디바이스를 나타내는 프레임워크 디바이스 개체에 대한 핸들입니다.
반환 값
작업이 성공하면 메서드는 STATUS_SUCCESS 반환합니다. 추가 반환 값은 다음과 같습니다.
| 반환 코드 | 설명 |
|---|---|
|
Fdo 함수 드라이버의 디바이스 개체에 대한 핸들이 아닙니다. |
이 메서드는 다른NTSTATUS 값을 반환할 수도 있습니다.
드라이버가 잘못된 개체 핸들을 제공하는 경우 시스템 버그 검사가 발생합니다.
비고
정적 버스 열거형을 사용하는 드라이버는 WdfFdoAddStaticChild호출할 수 있습니다. 정적 자식 목록에 대한 자세한 내용은 버스 디바이스 열거참조하세요.
WdfFdoAddStaticChildNT_SUCCESSFALSE평가되는 NTSTATUS 값을 반환하는 경우 드라이버는 WdfObjectDelete 호출하여 자식 디바이스를 나타내는 프레임워크 디바이스 개체를 삭제해야 합니다. WdfFdoAddStaticChild STATUS_SUCCESS 반환한 후에는 드라이버가 프레임워크 디바이스 개체를 삭제해서는 안됩니다.
예시
다음 코드 예제에서는 새 자식 디바이스를 나타내는 프레임워크 디바이스 개체를 만들고 자식 디바이스를 부모 디바이스의 자식 목록에 추가합니다. 전체 코드 예제는 KbFiltr 샘플 드라이버를 참조하세요.
NTSTATUS status;
PWDFDEVICE_INIT pDeviceInit = NULL;
WDFDEVICE hChild = NULL;
WDF_OBJECT_ATTRIBUTES pdoAttributes;
pDeviceInit = WdfPdoInitAllocate(Device);
if (pDeviceInit == NULL) {
status = STATUS_INSUFFICIENT_RESOURCES;
goto Cleanup;
}
...
status = WdfDeviceCreate(
&pDeviceInit,
&pdoAttributes,
&hChild
);
if (!NT_SUCCESS(status)) {
WdfDeviceInitFree(pDeviceInit);
pDeviceInit = NULL;
goto Cleanup;
}
...
status = WdfFdoAddStaticChild(
Device,
hChild
);
if (!NT_SUCCESS(status)) {
goto Cleanup;
}
요구 사항
| 요구 사항 | 가치 |
|---|---|
| 대상 플랫폼 | 보편적 |
| 최소 KMDF 버전 | 1.0 |
| 헤더 | wdffdo.h(Wdf.h 포함) |
| 라이브러리 | Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조) |
| IRQL | <= 디스패치_레벨 |
| DDI 규정 준수 규칙 | AddPdoToStaticChildList(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |