次の方法で共有


FsRtlAddLargeMcbEntry 関数 (ntifs.h)

FsRtlAddLargeMcbEntry ルーチンは、既存のマップ制御ブロック (MCB) に新しいマッピングを追加します。

構文

BOOLEAN FsRtlAddLargeMcbEntry(
  PLARGE_MCB Mcb,
  LONGLONG   Vbn,
  LONGLONG   Lbn,
  LONGLONG   SectorCount
);

パラメーター

Mcb

初期化された MCB 構造体へのポインター。

Vbn

MCB に追加される新しいマッピング実行の開始仮想ブロック番号 (VBN)。

Lbn

LargeVbn マップする論理ブロック番号 (LBN)。

SectorCount

新しいマッピング実行のセクター数。

戻り値

FsRtlAddLargeMcbEntry 、新しいマッピングが MCB に正常に追加された場合は TRUE を返し、それ以外の場合は FALSE 返します。

備考

FsRtlAddLargeMcbEntry 、既存のマップ 制御ブロック (MCB) に新しいマッピングを追加します。 ファイル・システムは MCB 構造体を使用して、ファイルの仮想ブロック番号 (VBN) をディスク上の対応する論理ブロック番号 (LBN) にマップします。

LBN の上位 32 ビットは無視されますが、0 に設定する必要があります。 下位 32 ビットのみが使用されます。
 
追加する新しいマッピング実行が既存のマッピング実行と重複している場合、FsRtlAddLargeMcbEntry はそれらを 1 つのマッピング実行にマージします。

プールの割り当てエラーが発生した場合、fsRtlAddLargeMcbEntry STATUS_INSUFFICIENT_RESOURCES例外が発生します。 このプールの割り当てエラーが発生したかどうかを制御するには、ドライバーは、try-except または try-finally ステートメントで FsRtlAddLargeMcbEntry の呼び出し ラップする必要があります。

MCB を初期化するには、FsRtlInitializeLargeMcb呼び出します。 MCB を初期化解除するには、FsRtlUninitializeLargeMcb を呼び出します。

必要条件

要件 価値
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

関連項目

FsRtlGetNextLargeMcbEntry

FsRtlInitializeLargeMcb

FsRtlLookupLargeMcbEntry

FsRtlLookupLastLargeMcbEntry

FsRtlLookupLastLargeMcbEntryAndIndex

FsRtlNumberOfRunsInLargeMcb

FsRtlRemoveLargeMcbEntry

FsRtlSplitLargeMcb

FsRtlTruncateLargeMcb

FsRtlUninitializeLargeMcb