次の方法で共有


FsRtlSetupAdvancedHeaderEx マクロ (ntifs.h)

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

構文

void FsRtlSetupAdvancedHeaderEx(
   _advhdr,
   _fmutx,
   _fctxptr
);

パラメーター

_advhdr

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

_fmutx

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

_fctxptr

ファイル システム ランタイム ライブラリ (FSRTL) がファイル コンテキストを追跡するために使用するポインター フィールドへのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 特に次の点に違いがあります。

  • Windows Vista より前にリリースされた Microsoft Windows オペレーティング システムの場合、呼び出し元はこのパラメーターを NULL に設定する必要があります。

  • Windows Vista 以降の Windows オペレーティング システムの場合: FileContextSupportPointerNULL でない場合、 FileContextSupportPointer は、構造を作成したファイル システムのファイルごとの構造内の PVOID 変数へのポインターである必要があります。 ファイル システム ドライバーがファイル コンテキストをサポートしていないことを示すには、呼び出し元が FileContextSupportPointerNULL に設定する必要があります。

戻り値

なし

解説

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

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

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

要件

要件
サポートされている最小のクライアント Microsoft Windows 2000 Service Pack 4 (SP4) の更新プログラムのロールアップ。Windows XP
対象プラットフォーム デスクトップ
Header ntifs.h (Ntifs.h、Fltkernel.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

FSRTL_ADVANCED_FCB_HEADER

FSRTL_PER_STREAM_CONTEXT

FsRtlGetPerStreamContextPointer

FsRtlInitPerStreamContext

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlSupportsPerStreamContexts

FsRtlTeardownPerStreamContexts