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 の呼び出しの詳細については、「Framework デバイス オブジェクトの作成」を参照してください。
例
次のコード例では、 WdfPdoInitAssignRawDevice の呼び出しが失敗した場合に WdfDeviceInitFree を 呼び出します。
NTSTATUS status;
status = WdfPdoInitAssignRawDevice(
pDeviceInit,
&GUID_DEVCLASS_KEYBOARD
);
if (!NT_SUCCESS(status)) {
WdfDeviceInitFree(pDeviceInit);
pDeviceInit = NULL;
return STATUS;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
Header | wdfdevice.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
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) |