Поделиться через


Функция FsRtlAddLargeMcbEntry (ntifs.h)

Подпрограмма FsRtlAddLargeMcbEntry добавляет новое сопоставление к существующему блоку управления картой (MCB).

Синтаксис

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

Параметры

Mcb

Указатель на инициализированную структуру MCB.

Vbn

Запуск номера виртуального блока (VBN) нового запуска сопоставления, добавляемого в MCB.

Lbn

Логический номер блока (LBN), с которым необходимо сопоставить LargeVbn.

SectorCount

Число секторов в новом запуске сопоставления.

Возвращаемое значение

FsRtlAddLargeMcbEntry возвращает TRUE, если новое сопоставление было успешно добавлено в MCB, FALSE в противном случае.

Замечания

FsRtlAddLargeMcbEntry добавляет новое сопоставление в существующий блок управления картой (MCB). Файловые системы используют структуры MCB для сопоставления номеров виртуальных блоков (VBN) для файла с соответствующими номерами логических блоков (LBN) на диске.

Примечание Верхние 32 бита LBN игнорируются, но они должны иметь значение нулю. Используются только более низкие 32 бита.
 
Если добавлен новый запуск сопоставления перекрывает существующий запуск сопоставления, FsRtlAddLargeMcbEntry объединяет их в один запуск сопоставления.

При сбое выделения пула FsRtlAddLargeMcbEnt ry вызывает исключение STATUS_INSUFFICIENT_RESOURCES. Чтобы получить контроль, если происходит сбой выделения пула, драйвер должен упаковать вызов FsRtlAddLargeMcbEntry в попробовать, кроме или инструкции try-finally.

Чтобы инициализировать 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