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)
Wdf01000.sys(请参阅框架库版本控制。
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 DoubleDeviceInitFree(kmdf)DriverCreate(kmdf)InitFreeDeviceCallbackInitFreeDeviceCreate(kmdf)InitFreeDeviceCreateType2(kmdf)InitFreeDeviceCreateType4(kmdf)InitFreeNull (kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoInitFreeDeviceCallback(kmdf)PdoInitFreeDeviceCreate(kmdf)PdoInitFreeDeviceCreateType2(kmdf)PdoInitFreeDeviceCreateType4(kmdf)

另请参阅

WdfDeviceCreate