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_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)

추가 정보

WdfChildListAddOrUpdateChildDescriptionAsPresent

WdfDeviceCreate

WdfPdoInitAllocate