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