次の方法で共有


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

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

戻り値

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

注釈

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

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

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

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

要件

要件
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

FsRtlGetNextLargeMcbEntry

FsRtlInitializeLargeMcb

FsRtlLookupLargeMcbEntry

FsRtlLookupLastLargeMcbEntry

FsRtlLookupLastLargeMcbEntryAndIndex

FsRtlNumberOfRunsInLargeMcb

FsRtlRemoveLargeMcbEntry

FsRtlSplitLargeMcb

FsRtlTruncateLargeMcb

FsRtlUninitializeLargeMcb