次の方法で共有


Storport イベント ログ拡張機能

他の多くの種類のドライバーと同様に、Storport ミニポート ドライバーは、接続されている記憶域デバイスの状態を管理者に知らせるために、システム イベント ログにエントリを作成する必要があります。 これらのイベント ログ エントリは、多くの場合、デバイス関連のエラーに対応して作成されます。 イベントは、テレメトリ、デバッグ、および最適化のためにログに記録することもできます。

Windows カーネル自体は、イベント ログ エントリを作成するための柔軟なインターフェイスを提供しますが、Storport ミニポート モデルでは、ミニポート ドライバーがそのインターフェイスに直接アクセスすることはできません。 代わりに、Storport はカーネルのシステム イベント ログ機能のラッパーを提供し、ミニポート ドライバーはラッパーを使用してイベント ログ エントリを作成します。

具体的には、Storport には次のイベント ログ ルーチンが用意されています。

  • StorPortLogTelemetryEx を使用すると、ミニポートはミニポートによってカスタマイズされたデータ (Windows 10 バージョン 1903 以降) を使用してトレース ログ測定またはテレメトリ イベントをログに記録できます。
  • StorPortEtwChannelEvent2、StorPortEtwChannelEvent4StorPortEtwChannelEvent8すると、ミニポートは ETW イベントをストレージ トレース チャネル (Windows 10 バージョン 1809 以降) に発行できます。
  • StorPortLogSystemEvent を すると、ミニポートはイベント ログ エントリ (Windows 7 以降) を作成できます。

Storport は、"Microsoft-Windows-Storage-Storport" プロバイダー名の下でイベントをログに記録します。 エラーは Operational チャネルに、デバッグ/分析は診断 Diagnose (Analytic および Debug) チャネルに記録されます。 Event Viewer アプリケーションを使用する場合は、最初に Diagnose チャネルを有効にして表示する必要があります (有効にするには、[表示] -> [分析およびデバッグ ログの表示] を選択します)。

上記の関数は、Storport 拡張関数として実装され、既存の拡張関数インターフェイスを使用してミニポート ドライバーで使用できます。 拡張関数インターフェイスを使用すると、新しい関数への直接ダイナミック リンク参照を回避できます。 この直接参照を回避することで、新しい関数を使用するミニポート ドライバーは、関数をサポートしていないオペレーティング システムで正しく読み込まれます。サポートされていない場合、関数はSTOR_STATUS_NOT_IMPLEMENTEDを返します。 これにより、ベンダーは、サポートされている新しいイベント ログ機能を利用して、複数の OS リリースで実行される 1 つのミニポート ドライバーを作成できます。

Windows 7 より前のバージョンの Storport では、Storport のシステム イベント ログ インターフェイスである StorPortLogError、ミニポート ドライバーにカーネルのシステム イベント ログ機能のごく一部へのアクセス権が与え、ミニポート イベント ログ エントリの有用性に影響を与えました。

Windows イベントの一般的な情報については、Windows イベントを参照してください。