次の方法で共有


PSHED プラグインの概要

プラットフォーム ベンダーは、プラットフォーム固有の機能を利用する PSHED プラグインを提供することにより、既定の PSHED 機能を補完できます。 PSHED プラグインは、PSHED によって呼び出されるコールバック インターフェイスを実装する特殊な目的の Windows デバイス ドライバーです。 PSHED プラグインの目的は、マイクロソフトが提供する PSHED の既定の動作を拡張またはオーバーライドすることです。

PSHED プラグインは、システムの起動時に特定のハードウェア識別子が列挙されるとき、プラグ アンド プレイ (PnP) マネージャーによって読み込まれる Windows Driver Model (WDM) デバイス ドライバーとして実装されます。 プラットフォーム ベンダーは、PSHED プラグインの読み込みを開始するハードウェア識別子を指定します。 このハードウェア識別子は、ACPI 名前空間内に存在することも、別のデバイス名前空間に含めることもできます。

PSHED プラグインは、ユーザー モード アプリケーションまたは上位レベルのドライバーによって開始される I/O 要求を処理しません。 そのため、PSHED プラグインは、ドライバー ディスパッチ ルーチン (DRIVER_DISPATCH を参照) を実装して、IRP_MJ_PNP および IRP_MJ_POWER IRP を処理する場合のみ必要です。 PSHED プラグインは、デバイス インターフェイスを登録したり、デバイス オブジェクトのシンボリック リンクを作成したりする必要はありません。

PSHED プラグインは、ハードウェア エラーの処理に関連する次の機能領域の 1 つ以上に参加します。

これらの機能領域ごとに、PSHED プラグインは、PSHED によって呼び出されるコールバック関数を実装します。 PSHED プラグインは、それが参加する機能領域を指定し、PSHED に自身を登録するときに関連付けられたコールバック関数へのポインターを提供します。 複数の PSHED プラグインを同時に PSHED に登録することができます。 ただし、複数の登録済み PSHED プラグインが特定の機能領域に参加することを指定している場合、それ自体を登録する最後の PSHED プラグインだけが実際にその機能領域に参加します。

PSHED プラグインは、プラットフォーム ベンダーがハードウェア プラットフォームのハードウェア エラー報告および回復機能へのソフトウェア インターフェイスとして実装することを目的としています。 PSHED プラグインは、プラットフォーム ベンダーによって定義されているプライベート インターフェイスまたはメカニズムを使って、プラットフォーム ファームウェアとやり取りすることができます。 これにより、プラットフォーム ベンダーは、ハードウェア エラー処理に既存のファームウェアを引き続き使用することができます。 マイクロソフトでは、より多くのハードウェア エラー報告と回復機能がいずれ標準化されると期待しています。 その時点で、一般的なエラー処理とレポートのための PSHED プラグインの必要性が低下するため、PSHED プラグインは、標準のハードウェア エラー処理機能を超える追加の価値を提供するベンダー固有の機能をサポートするためにのみ必要になります。