WdfDeviceInitFree 函数 (wdfdevice.h)

[仅适用于 KMDF]

WdfDeviceInitFree 方法解除分配WDFDEVICE_INIT结构。

语法

void WdfDeviceInitFree(
  [in] PWDFDEVICE_INIT DeviceInit
);

参数

[in] DeviceInit

指向 WDFDEVICE_INIT 结构的指针。

返回值

备注

如果驱动程序从调用 WdfPdoInitAllocateWdfControlDeviceInitAllocate 收到WDFDEVICE_INIT结构,并且驱动程序随后在调用 设备对象初始化方法WdfDeviceCreate 时遇到错误,则驱动程序必须调用 WdfDeviceInitFree

驱动程序在成功调用 WdfDeviceCreate 后不得调用 WdfDeviceInitFree

如果驱动程序收到 WDFDEVICE_INIT 结构作为其 EvtDriverDeviceAdd 回调函数的输入,则不需要调用 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)
Library 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