Storport イベント ログ拡張機能
他の多くの種類のドライバーと同様に、Storport ミニポート ドライバーは、接続されている記憶域デバイスの状態を管理者に知らせるために、システム イベント ログにエントリを作成する必要があります。 これらのイベント ログ エントリは、多くの場合、デバイス関連のエラーに対応して作成されます。 イベントは、テレメトリ、デバッグ、および最適化のためにログに記録することもできます。
Windows カーネル自体は、イベント ログ エントリを作成するための柔軟なインターフェイスを提供しますが、Storport ミニポート モデルでは、ミニポート ドライバーがそのインターフェイスに直接アクセスすることはできません。 代わりに、Storport はカーネルのシステム イベント ログ機能のラッパーを提供し、ミニポート ドライバーはラッパーを使用してイベント ログ エントリを作成します。
具体的には、Storport には次のイベント ログ ルーチンが用意されています。
- StorPortLogTelemetryEx を使用すると、ミニポートはミニポートによってカスタマイズされたデータ (Windows 10 バージョン 1903 以降) を使用してトレース ログ測定またはテレメトリ イベントをログに記録できます。
- StorPortEtwChannelEvent2、
、StorPortEtwChannelEvent4 をStorPortEtwChannelEvent8 すると、ミニポートは 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 イベントを参照してください。