FsRtlAddLargeMcbEntry-Funktion (ntifs.h)

Die FsRtlAddLargeMcbEntry-Routine fügt einem vorhandenen Map Control Block (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

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

Lbn

Logische Blocknummer (Logical Block Number, LBN), der LargeVbn zugeordnet werden soll.

SectorCount

Anzahl der Sektoren in der neuen Zuordnungsausführung.

Rückgabewert

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

Hinweise

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

Hinweis Die oberen 32 Bits des LBN werden ignoriert, müssen aber auf 0 festgelegt werden. Es werden nur die unteren 32 Bits verwendet.
 
Wenn eine neue hinzuzufügende Zuordnungsausführung eine vorhandene Zuordnungsausführung überlappt, führt FsRtlAddLargeMcbEntry sie in einer einzelnen Zuordnungsausführung zusammen.

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

Um einen MCB zu initialisieren, rufen Sie FsRtlInitializeLargeMcb auf. Zum Aufheben der Initialisierung eines MCB rufen Sie FsRtlUninitializeLargeMcb auf.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Weitere Informationen

FsRtlGetNextLargeMcbEntry

FsRtlInitializeLargeMcb

FsRtlLookupLargeMcbEntry

FsRtlLookupLastLargeMcbEntry

FsRtlLookupLastLargeMcbEntryAndIndex

FsRtlNumberOfRunsInLargeMcb

FsRtlRemoveLargeMcbEntry

FsRtlSplitLargeMcb

FsRtlTruncateLargeMcb

FsRtlUninitializeLargeMcb