다음을 통해 공유


WdfDeviceInitFree 함수(wdfdevice.h)

[KMDF에만 적용]

WdfDeviceInitFree 메서드는 WDFDEVICE_INIT 구조체의 할당을 취소합니다.

구문

void WdfDeviceInitFree(
  [in] PWDFDEVICE_INIT DeviceInit
);

매개 변수

[in] DeviceInit

WDFDEVICE_INIT 구조체에 대한 포인터입니다.

반환 값

없음

설명

드라이버가 WdfPdoInitAllocate 또는 WdfControlDeviceInitAllocate 호출에서 WDFDEVICE_INIT 구조를 수신하고, 이후에 드라이버가 디바이스 개체 초기화 메서드 또는 WdfDeviceCreate를 호출할 때 오류가 발생하는 경우 드라이버는 WdfDeviceInitFree를 호출해야 합니다.

드라이버가 WdfDeviceCreate를 성공적으로 호출한 후에 는 WdfDeviceInitFree 를 호출하지 않아야 합니다.

콜백 함수가 반환된 후 프레임워크가 구조를 삭제하기 때문에 드라이버가 EvtDriverDeviceAdd 콜백 함수에 대한 입력으로 WDFDEVICE_INIT 구조를 받은 경우 WdfDeviceInitFree를 호출할 필요가 없습니다.

WdfDeviceCreate 호출에 대한 자세한 내용은 프레임워크 디바이스 개체 만들기를 참조하세요.

예제

다음 코드 예제에서는 WdfPdoInitAssignRawDevice에 대한 호출이 실패하면 WdfDeviceInitFree를 호출합니다.

NTSTATUS  status;

status = WdfPdoInitAssignRawDevice(
                                   pDeviceInit,
                                   &GUID_DEVCLASS_KEYBOARD
                                   );
if (!NT_SUCCESS(status)) {
    WdfDeviceInitFree(pDeviceInit);
    pDeviceInit = NULL;
    return STATUS;
}

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
머리글 wdfdevice.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 DoubleDeviceInitFree(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeDeviceCreateType2(kmdf), InitFreeDeviceCreateType4(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf), PdoInitFreeDeviceCreateType2(kmdf), PdoInitFreeDeviceCreateType4(kmdf)

추가 정보

WdfDeviceCreate