次の方法で共有


FsRtlRemoveLargeMcbEntry 関数 (ntifs.h)

FsRtlRemoveLargeMcbEntry ルーチンは、マップ制御ブロック (MCB) から 1 つ以上のマッピングを削除します。

構文

void FsRtlRemoveLargeMcbEntry(
  PLARGE_MCB Mcb,
  LONGLONG   Vbn,
  LONGLONG   SectorCount
);

パラメーター

Mcb

MCB 構造体へのポインター。

Vbn

MCB からマッピングを削除する範囲の開始仮想ブロック番号 (VBN)。

SectorCount

マッピングを削除する範囲内のセクター数 (VBN)。

戻り値

なし

解説

FsRtlRemoveLargeMcbEntry は、*LargeVbn で始まり、末尾が (*LargeVbnLargeSectorCount - 1) の VBN の範囲内にある MCB 内の LBN への VBN + のすべてのマッピングを削除します。

メモ LBN の上位 32 ビットは無視されます。 下位 32 ビットのみが使用されます。
 
マッピング間の穴 (ギャップ) は無視されます。

削除する VBN の範囲に MCB のマップされた最も高い VBN が含まれている場合は、それに応じて MCB の PairCount メンバーが調整されます。

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

要件

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

こちらもご覧ください

FsRtlAddLargeMcbEntry

FsRtlGetNextLargeMcbEntry

FsRtlInitializeLargeMcb

FsRtlLookupLargeMcbEntry

FsRtlLookupLastLargeMcbEntry

FsRtlLookupLastLargeMcbEntryAndIndex

FsRtlNumberOfRunsInLargeMcb

FsRtlSplitLargeMcb

FsRtlTruncateLargeMcb

FsRtlUninitializeLargeMcb