次の方法で共有


StorPortLogSystemEvent 関数 (storport.h)

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値を返す場合にのみ返されます。 このパラメーターは省略可能です。

戻り値

リターン コード 形容
STOR_STATUS_NOT_IMPLEMENTED
この関数は、アクティブなオペレーティング システムでは実装されません。
STOR_STATUS_INVALID_PARAMETER
無効なパラメーターが渡されました。
STOR_STATUS_INVALID_IRQL
呼び出しは IRQL > DISPATCH_LEVEL で行われました。
STOR_STATUS_INSUFFICIENT_RESOURCES
要求を完了するためのシステム リソースが不足していました。
STOR_STATUS_UNSUPPORTED_VERSION:
STOR_LOG_EVENT_DETAILS構造体のサポートされていない (たとえば、より新しい) バージョンが指定されました。 これが返されると、LogDetails->InterfaceRevision は、サポートされている最新バージョンに設定されます。
STOR_STATUS_INVALID_BUFFER_SIZE
関数に渡されたバッファーが大きすぎます。 この値が返されると、MaximumSize はミニポートのダンプ データと文字列の最大結合サイズに設定されます。
STOR_STATUS_SUCCESS
ログ操作が正常に完了しました。

備考

カスタム エラー コードを使用して最適な利点を得る方法については、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