次の方法で共有


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
対象プラットフォーム デスクトップ
Header wdm.h (Wdm.h を含む)

こちらもご覧ください

GUID_DEVICE_RESET_INTERFACE_STANDARD の操作

IRP_MN_QUERY_INTERFACE