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 位将被忽略,但必须将其设置为零。 仅使用较低的 32 位。
 
如果要添加的新映射运行与现有映射运行重叠,FsRtlAddLargeMcbEntry 将它们合并到单个映射运行中。

如果池分配失败,FsRtlAddLargeMcbEntry 引发STATUS_INSUFFICIENT_RESOURCES异常。 若要控制此池分配失败是否发生,驱动程序应在 try-except 或 try-finally 语句 中包装调用 FsRtlAddLargeMcbEntry

若要初始化 MCB,请调用 FsRtlInitializeLargeMcb。 若要取消初始化 MCB,请调用 FsRtlUninitializeLargeMcb

要求

要求 价值
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另请参阅

FsRtlGetNextLargeMcbEntry

FsRtlInitializeLargeMcb

FsRtlLookupLargeMcbEntry

FsRtlLookupLastLargeMcbEntry

FsRtlLookupLastLargeMcbEntryAndIndex

FsRtlNumberOfRunsInLargeMcb

FsRtlRemoveLargeMcbEntry

FsRtlSplitLargeMcb

FsRtlTruncateLargeMcb

FsRtlUninitializeLargeMcb