次の方法で共有


DEVICE_RESET_HANDLER コールバック関数 (wdm.h)

DeviceReset ルーチンは、誤動作しているデバイスのリセットと回復に使用されます。

構文

DEVICE_RESET_HANDLER DeviceResetHandler;

NTSTATUS DeviceResetHandler(
  [in]           PVOID InterfaceContext,
  [in]           DEVICE_RESET_TYPE ResetType,
  [in]           ULONG Flags,
  [in, optional] PVOID ResetParameters
)
{...}

パラメーター

[in] InterfaceContext

インターフェイス固有のコンテキスト情報へのポインター。 呼び出し元は、インターフェイスの DEVICE_RESET_INTERFACE_STANDARD 構造体の Context メンバーとして渡される値を渡します。

[in] ResetType

要求されるリセットの種類。 このパラメーターを、次のいずれかの DEVICE_RESET_TYPE 列挙値に設定します。

  • FunctionLevelDeviceReset します。 特定のデバイスに制限されている関数レベルのリセットを要求するには、この値を指定します。

  • PlatformLevelDeviceReset します。 プラットフォーム レベルのリセットを要求するには、この値を指定します。これは、特定のデバイスと、同じ電源レールまたはリセットラインを介して接続されている他のすべてのデバイスに影響します。

関数レベルおよびプラットフォーム レベルのリセットをデバイス スタックに実装する方法の詳細については、「GUID_DEVICE_RESET_INTERFACE_STANDARD の操作」を参照してください。

[in] Flags

0 に設定します。 現在、このルーチンにはフラグは定義されていません。

[in, optional] ResetParameters

呼び出し元が関数レベルのデバイスのリセットを要求している場合、この省略可能なパラメーターは、リセットが完了したときに呼び出されるコールバック ルーチンを指定する FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS 構造体を指すことができます。

戻り値

このルーチンは、要求された操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合は、適切な NTSTATUS エラー コードが返されます。

備考

関数ドライバーは、デバイスが正しく機能していないことを検出した場合は、最初に関数レベルのリセットを試みる必要があります。 関数レベルのリセットで問題が解決しない場合、ドライバーはより侵入的なプラットフォーム レベルのリセットを試みることができますが、プラットフォーム レベルのリセットは最終的なオプションとしてのみ使用する必要があります。

関数レベルのリセットまたはプラットフォーム レベルのリセットは、PASSIVE_LEVELで実行する必要があります。

関数レベルおよびプラットフォーム レベルのリセットの詳細については、「GUID_DEVICE_RESET_INTERFACE_STANDARD の操作」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 10
ターゲット プラットフォーム デスクトップ
ヘッダー wdm.h (Wdm.h を含む)

関連項目

GUID_DEVICE_RESET_INTERFACE_STANDARDの操作

IRP_MN_QUERY_INTERFACE