次の方法で共有


FsRtlSetupAdvancedHeaderEx2 マクロ (ntifs.h)

FsRtlSetupAdvancedHeaderEx2 マクロは、ストリームおよびファイル コンテキストで使用する FSRTL_ADVANCED_FCB_HEADER 構造体を初期化するためにファイル システムによって使用されます。

構文

void FsRtlSetupAdvancedHeaderEx2(
   _advhdr,
   _fmutx,
   _fctxptr,
   _aepushlock
);

パラメーター

_advhdr

初期化する FSRTL_ADVANCED_FCB_HEADER 構造体へのポインター。

_fmutx

特定の FSRTL_ADVANCED_FCB_HEADER メンバーへのアクセスを同期するために使用される、初期化された高速ミューテックスへのポインター。 高速ミューテックスは、非ページ プールから割り当てる必要があります。 このパラメーターは省略可能であり、NULLできます。 呼び出し元は、既に存在する高速ミューテックス オブジェクトを使用する場合は、このパラメーターを NULLするように設定する必要があります。 FastMutex NULL場合、呼び出し元は、ストリーム コンテキスト オブジェクトに含まれる FSRTL_ADVANCED_FCB_HEADER 構造体の FastMutex メンバーを明示的に設定して、既存の高速ミューテックスを指す必要があります。 (これは、fsRtlSetupAdvancedHeaderEx2呼び出す前または後に行うことができます)。

_fctxptr

ファイル コンテキストを追跡するためにファイル システム ランタイム ライブラリ (FSRTL) によって使用されるポインター フィールドへのポインター。 このパラメーターは省略可能であり、NULLできます。 fileContextSupportPointer が NULLされていない場合、FileContextSupportPointer は、その構造を作成したファイル システムのファイルごとの構造内の PVOID 変数へのポインターである必要があります。 ファイル システム ドライバーでファイル コンテキストがサポートされていないことを示すには、呼び出し元が FileContextSupportPointer NULL設定する必要があります。

_aepushlock

高度なヘッダーAePushLock フィールドを初期化するために使用される不透明な構造体へのポインター。 この関数の呼び出し元は、最初に FsRtlAllocateAePushLock呼び出し、その後 FsRtlFreeAePushLock呼び出してメモリを解放することで、このフィールドのメモリを割り当てて初期化します。 自動展開プッシュ ロックの詳細については、FSRTL_ADVANCED_FCB_HEADER を参照してください。

戻り値

何一つ

備考

ファイル システムでは、FsRtlSetupAdvancedHeaderEx2 マクロを使用して、ストリームおよびファイル コンテキストで使用する FSRTL_ADVANCED_FCB_HEADER 構造体を初期化します。

高度な FCB ヘッダー構造が不要になった場合、ファイル システムは FsRtlTeardownPerStreamContexts 呼び出して、関連付けられているすべてのストリームおよびファイル コンテキスト構造を解放する必要があります。

詳細については、「レガシ ファイル システム フィルター ドライバーの 追跡 Per-Stream コンテキスト」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 20H2
ヘッダー ntifs.h

関連項目

FSRTL_ADVANCED_FCB_HEADER

FSRTL_PER_STREAM_CONTEXT

FsRtlAllocateAePushLock

FsRtlFreeAePushLock

FsRtlInitPerStreamContext

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlSupportsPerStreamContexts

FsRtlTeardownPerStreamContexts