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