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