StorPortLogSystemEvent ルーチンは、ミニポート ドライバーに Windows カーネル イベント機能へのフル アクセスを提供し、ミニポート ドライバーが記憶域の問題のトラブルシューティングに本当に役立つイベント ログ エントリを作成できるようにします。 StorPortLogError を、既存のミニポート ドライバー イベント ログ関数の代わりに優れた代替手段が提供されます。
構文
ULONG StorPortLogSystemEvent(
[in] PVOID HwDeviceExtension,
[in, out] PSTOR_LOG_EVENT_DETAILS LogDetails,
[in, out] PULONG MaximumSize
);
パラメーター
[in] HwDeviceExtension
ハードウェア デバイス拡張機能へのポインター。 これは、ポート ドライバーが割り当て、ミニポート ドライバーの代わりに初期化する HBA ごとの記憶域です。 ミニポート ドライバーは通常、HBA の状態や HBA のマップされたアクセス範囲など、この拡張機能に HBA 固有の情報を格納します。 この領域は、ミニポート ドライバーが StorPortInitialize 呼び出した直後にミニポートで使用できます。 ポート ドライバーは、デバイスを削除すると、このメモリを解放します。
[in, out] LogDetails
システム イベント ログ エントリに表示する情報を含む STOR_LOG_EVENT_DETAILS 構造体。
[in, out] MaximumSize
ミニポートのダンプ データと文字列の最大結合サイズを受け取る変数。 関数が失敗し、STOR_STATUS_INVALID_BUFFER_SIZE値を返す場合にのみ返されます。 このパラメーターは省略可能です。
戻り値
リターン コード | 形容 |
---|---|
|
この関数は、アクティブなオペレーティング システムでは実装されません。 |
|
無効なパラメーターが渡されました。 |
|
呼び出しは IRQL > DISPATCH_LEVEL で行われました。 |
|
要求を完了するためのシステム リソースが不足していました。 |
|
STOR_LOG_EVENT_DETAILS構造体のサポートされていない (たとえば、より新しい) バージョンが指定されました。 これが返されると、LogDetails->InterfaceRevision は、サポートされている最新バージョンに設定されます。 |
|
関数に渡されたバッファーが大きすぎます。 この値が返されると、MaximumSize はミニポートのダンプ データと文字列の最大結合サイズに設定されます。 |
|
ログ操作が正常に完了しました。 |
備考
カスタム エラー コードを使用して最適な利点を得る方法については、Storport エラー ログ拡張機能の を参照してください。 StorPortLogSystemEvent ルーチンは、IRQL <= DISPATCH_LEVELで呼び出す必要があります。 このビルドでサポートされているバージョンよりも新しいバージョンのSTOR_LOG_EVENT_DETAILSを渡すと、この関数は InterfaceRevision フィールドをサポートされている最新バージョンに変更し、STOR_STATUS_UNSUPPORTED_VERSIONを返します。 STOR_LOG_EVENT_DETAILSの InterfaceRevision フィールドは 32 ビット値です。 ただし、検証には最も重要な 3 つのバイトのみが使用されます。 下位バイトは、特定のバージョンの互換性のあるマイナー バリエーションを区別するために予約されています。 たとえば、リビジョン 0x00000101構造体は、インターフェイスのリビジョン 0x00000100を実装する Storport と互換性がありますが、マイナーで重要でない機能が失われる可能性があります。 ダンプ データと、許容されるイベント ログエントリの最大サイズを超える文字列の合計サイズを指定した場合、MaximumSize が指す整数はミニポート ダンプ データと文字列の最大許容サイズに設定され、STOR_INVALID_BUFFER_SIZEが返されます。 この関数はパス、ターゲット、LUN アドレス指定子の ULONG 値を受け取りますが、Storport は内部的にこれらの指定子の 8 ビット値のみをサポートするため、値は UCHAR 値に切り捨てられます。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | storport.h (Storport.h を含む) |
DDI コンプライアンス規則 を する | StorPortIrql(storport) を する |
関連項目
StorPortLogError の