Partager via


Fonction FsRtlAddLargeMcbEntry (ntifs.h)

La routine FsRtlAddLargeMcbEntry ajoute un nouveau mappage à un bloc de contrôle de carte (MCB) existant.

Syntaxe

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

Paramètres

Mcb

Pointeur vers une structure MCB initialisée.

Vbn

Démarrage du numéro de bloc virtuel (VBN) de la nouvelle exécution de mappage à ajouter au MCB.

Lbn

Numéro de bloc logique (LBN) auquel LargeVbn doit être mappé.

SectorCount

Nombre de secteurs dans la nouvelle exécution de mappage.

Valeur retournée

FsRtlAddLargeMcbEntry retourne TRUE si le nouveau mappage a été correctement ajouté au MCB, false dans le cas contraire.

Remarques

FsRtlAddLargeMcbEntry ajoute un nouveau mappage à un bloc de contrôle de carte (MCB) existant. Les systèmes de fichiers utilisent des structures MCB pour mapper les numéros de blocs virtuels (VBN) d’un fichier aux numéros de blocs logiques (LBN) correspondants sur le disque.

Note Les 32 bits supérieurs du LBN sont ignorés, mais ils doivent être définis sur zéro. Seuls les 32 bits inférieurs sont utilisés.
 
Si une nouvelle exécution de mappage à ajouter chevauche une exécution de mappage existante, FsRtlAddLargeMcbEntry les fusionne en une seule exécution de mappage.

Si un échec d’allocation de pool se produit, FsRtlAddLargeMcbEntry déclenche une exception STATUS_INSUFFICIENT_RESOURCES. Pour contrôler si cet échec d’allocation de pool se produit, le pilote doit encapsuler l’appel à FsRtlAddLargeMcbEntry dans une instruction try-except ou try-finally .

Pour initialiser un MCB, appelez FsRtlInitializeLargeMcb. Pour annuler l’initialisation d’un MCB, appelez FsRtlUninitializeLargeMcb.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ntifs.h (include Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

FsRtlGetNextLargeMcbEntry

FsRtlInitializeLargeMcb

FsRtlLookupLargeMcbEntry

FsRtlLookupLastLargeMcbEntry

FsRtlLookupLastLargeMcbEntryAndIndex

FsRtlNumberOfRunsInLargeMcb

FsRtlRemoveLargeMcbEntry

FsRtlSplitLargeMcb

FsRtlTruncateLargeMcb

FsRtlUninitializeLargeMcb