次の方法で共有


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 ドライバーは、WdfDeviceFailedAttemptRestartFailedAction が設定された WdfDeviceSetFailed を呼び出して、基になるバス ドライバーに再列挙を要求できます。 バス ドライバーは 、GUID_REENUMERATE_SELF_INTERFACE_STANDARD インターフェイスをサポートする必要があります。

または、UMDF ドライバーで FailedActionWdfDeviceFailedNoRestart に設定することもできます。

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)