WdfFdoAddStaticChild 함수(wdffdo.h)
[KMDF에만 적용]
WdfFdoAddStaticChild 메서드는 정적 열거형으로 식별된 함수 드라이버의 자식 디바이스 목록에 지정된 디바이스를 추가합니다.
구문
NTSTATUS WdfFdoAddStaticChild(
[in] WDFDEVICE Fdo,
[in] WDFDEVICE Child
);
매개 변수
[in] Fdo
부모 디바이스를 나타내는 프레임워크 디바이스 개체에 대한 핸들입니다.
[in] Child
자식 디바이스를 나타내는 프레임워크 디바이스 개체에 대한 핸들입니다.
반환 값
작업이 성공하면 메서드는 STATUS_SUCCESS 반환합니다. 추가 반환 값은 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
Fdo 는 함수 드라이버의 디바이스 개체에 대한 핸들이 아닙니다. |
메서드는 다른 NTSTATUS 값을 반환할 수도 있습니다.
드라이버가 잘못된 개체 핸들을 제공하는 경우 시스템 버그 검사 발생합니다.
설명
정적 버스 열거형을 사용하는 드라이버는 WdfFdoAddStaticChild를 호출할 수 있습니다. 정적 자식 목록에 대한 자세한 내용은 버스에서 디바이스 열거를 참조하세요.
WdfFdoAddStaticChild가 NT_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 | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | AddPdoToStaticChildList(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |