WdfFdoAddStaticChild 함수(wdffdo.h)

[KMDF에만 적용]

WdfFdoAddStaticChild 메서드는 정적 열거형으로 식별된 함수 드라이버의 자식 디바이스 목록에 지정된 디바이스를 추가합니다.

구문

NTSTATUS WdfFdoAddStaticChild(
  [in] WDFDEVICE Fdo,
  [in] WDFDEVICE Child
);

매개 변수

[in] Fdo

부모 디바이스를 나타내는 프레임워크 디바이스 개체에 대한 핸들입니다.

[in] Child

자식 디바이스를 나타내는 프레임워크 디바이스 개체에 대한 핸들입니다.

반환 값

작업이 성공하면 메서드는 STATUS_SUCCESS 반환합니다. 추가 반환 값은 다음과 같습니다.

반환 코드 설명
STATUS_INVALID_PARAMETER
Fdo 는 함수 드라이버의 디바이스 개체에 대한 핸들이 아닙니다.
 

이 메서드는 다른 NTSTATUS 값을 반환할 수도 있습니다.

드라이버가 잘못된 개체 핸들을 제공하는 경우 시스템 버그 검사가 발생합니다.

설명

정적 버스 열거형을 사용하는 드라이버는 WdfFdoAddStaticChild를 호출할 수 있습니다. 정적 자식 목록에 대한 자세한 내용은 버스에서 디바이스 열거를 참조하세요.

WdfFdoAddStaticChildNT_SUCCESS FALSE로 평가되는 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)

참고 항목

WdfChildListAddOrUpdateChildDescriptionAsPresent

WdfDeviceCreate

WdfPdoInitAllocate