次の方法で共有


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 値に切り捨てられます。

要件

要件
対象プラットフォーム ユニバーサル
Header storport.h (Storport.h を含む)
DDI コンプライアンス規則 StorPortIrql(storport)

こちらもご覧ください

StorPortLogError