WdfDeviceSetFailed 関数 (wdfdevice.h)
[KMDF と UMDF に適用]
WdfDeviceSetFailed メソッドは、ドライバーが指定したデバイスに関連付けられているハードウェアまたはソフトウェア エラーを検出したことをフレームワークに通知します。
構文
void WdfDeviceSetFailed(
[in] WDFDEVICE Device,
[in] WDF_DEVICE_FAILED_ACTION FailedAction
);
パラメーター
[in] Device
フレームワーク デバイス オブジェクトへのハンドル。
[in] FailedAction
フレームワークが指定したデバイスのドライバーの再読み込みを試みる必要があるかどうかを示す、 WDF_DEVICE_FAILED_ACTION型の列挙子。
戻り値
なし
解説
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
回復不可能なハードウェアまたはソフトウェア エラーが発生した場合、ドライバーは WdfDeviceSetFailed を呼び出して、システムがデバイスのドライバーをアンロードできるようにする必要があります。
UMDF バージョン 2.15 以降、UMDF ドライバーは、WdfDeviceFailedAttemptRestart に FailedAction が設定された WdfDeviceSetFailed を呼び出して、基になるバス ドライバーに再列挙を要求できます。 バス ドライバーは 、GUID_REENUMERATE_SELF_INTERFACE_STANDARD インターフェイスをサポートする必要があります。
または、UMDF ドライバーで FailedAction を WdfDeviceFailedNoRestart に設定することもできます。
WdfDeviceSetFailed の詳細については、「デバイスエラーの報告」を参照してください。
例
次のコード例は、エラーが発生したことをフレームワークに通知します。 指定したデバイスのドライバーが他のデバイスをサポートしていない場合、フレームワークはドライバーをアンロードし、再読み込みを試みます。
WdfDeviceSetFailed(
device,
WdfDeviceFailedAttemptRestart
);
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfdevice.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |