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 。
如果驱动程序收到 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) |