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;
}
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.0 |
標頭 | wdfdevice.h (包含 Wdf.h) |
程式庫 | Wdf01000.sys (請參閱 Framework Library Versioning.) |
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) |