Condividi tramite


Funzione FsRtlAddLargeMcbEntry (ntifs.h)

La routine fsRtlAddLargeMcbEntry aggiunge un nuovo mapping a un blocco di controllo mappa esistente.

Sintassi

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

Parametri

Mcb

Puntatore a una struttura MCB inizializzata.

Vbn

Avvio del numero di blocco virtuale (VBN) della nuova esecuzione di mapping da aggiungere al McB.

Lbn

Numero di blocco logico (LBN) a cui LargeVbn deve essere mappato.

SectorCount

Numero di settori nella nuova esecuzione del mapping.

Valore restituito

FsRtlAddLargeMcbEntry restituisce true se il nuovo mapping è stato aggiunto correttamente al mcb, false in caso contrario.

Osservazioni

FsRtlAddLargeMcbEntry aggiunge un nuovo mapping a un blocco di controllo mappa esistente. I file system usano strutture MCB per eseguire il mapping dei numeri di blocco virtuale (VBN) per un file ai numeri di blocco logici corrispondenti (LBN) su disco.

Nota I 32 bit superiori del codice LBN vengono ignorati, ma devono essere impostati su zero. Vengono usati solo i 32 bit inferiori.
 
Se una nuova esecuzione di mapping da aggiungere si sovrappone a un'esecuzione di mapping esistente, FsRtlAddLargeMcbEntry le unisce in una singola esecuzione di mapping.

Se si verifica un errore di allocazione del pool, FsRtlAddLargeMcbEntry genera un'eccezione STATUS_INSUFFICIENT_RESOURCES. Per ottenere il controllo se si verifica questo errore di allocazione del pool, il driver deve eseguire il wrapping della chiamata a FsRtlAddLargeMcbEntry in un try-except o istruzione try-finally.

Per inizializzare un MCB, chiamare FsRtlInitializeLargeMcb. Per inizializzare un MCB, chiamare FsRtlUninitializeLargeMcb.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione ntifs.h (include Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL <= APC_LEVEL

Vedere anche

FsRtlGetNextLargeMcbEntry

FsRtlInitializeLargeMcb

FsRtlLookupLargeMcbEntry

FsRtlLookupLastLargeMcbEntry

FsRtlLookupLastLargeMcbEntryAndIndex

FsRtlNumberOfRunsInLargeMcb

FsRtlRemoveLargeMcbEntry

FsRtlSplitLargeMcb

FsRtlTruncateLargeMcb

FsRtlUninitializeLargeMcb