Freigeben über


FsRtlAddLargeMcbEntry-Funktion (ntifs.h)

Die FsRtlAddLargeMcbEntry Routine fügt einem vorhandenen Kartensteuerelementblock (MCB) eine neue Zuordnung hinzu.

Syntax

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

Parameter

Mcb

Zeiger auf eine initialisierte MCB-Struktur.

Vbn

Starten der virtuellen Blocknummer (VBN) der neuen Zuordnungsausführung, die dem MCB hinzugefügt werden soll.

Lbn

Logische Blocknummer (LBN), der LargeVbn- zugeordnet werden soll.

SectorCount

Die Anzahl der Sektoren in der neuen Zuordnung wird ausgeführt.

Rückgabewert

FsRtlAddLargeMcbEntry gibt TRUE zurück, wenn die neue Zuordnung erfolgreich zum MCB hinzugefügt wurde, FALSE andernfalls.

Bemerkungen

FsRtlAddLargeMcbEntry eine neue Zuordnung zu einem vorhandenen Kartensteuerelementblock (MCB) hinzufügt. Dateisysteme verwenden MCB-Strukturen, um virtuelle Blocknummern (VIRTUAL Block Numbers, VBN) für eine Datei den entsprechenden logischen Blocknummern (LBN) auf dem Datenträger zuzuordnen.

Hinweis Die oberen 32 Bits des LBN werden ignoriert, müssen jedoch auf Null festgelegt werden. Nur die unteren 32 Bit werden verwendet.
 
Wenn eine neue Zuordnungsausführung, die hinzugefügt werden soll, überlappt eine vorhandene Zuordnungsausführung, FsRtlAddLargeMcbEntry diese in einer einzigen Zuordnungsausführung zusammenführt.

Wenn ein Poolzuordnungsfehler auftritt, löst FsRtlAddLargeMcbEntry eine STATUS_INSUFFICIENT_RESOURCES Ausnahme aus. Um die Kontrolle zu erlangen, wenn dieser Poolzuweisungsfehler auftritt, sollte der Treiber den Aufruf von FsRtlAddLargeMcbEntry in einem try-except oder try-finally Anweisung umschließen.

Rufen Sie zum Initialisieren eines MCB FsRtlInitializeLargeMcbauf. Um eine MCB zu entinitialisieren, rufen Sie FsRtlUninitializeLargeMcbauf.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= APC_LEVEL

Siehe auch

FsRtlGetNextLargeMcbEntry

FsRtlInitializeLargeMcb

FsRtlLookupLargeMcbEntry

FsRtlLookupLastLargeMcbEntry

FsRtlLookupLastLargeMcbEntryAndIndex

FsRtlNumberOfRunsInLargeMcb

FsRtlRemoveLargeMcbEntry

FsRtlSplitLargeMcb

FsRtlTruncateLargeMcb

FsRtlUninitializeLargeMcb