Função FsRtlAddLargeMcbEntry (ntifs.h)

A rotina FsRtlAddLargeMcbEntry adiciona um novo mapeamento a um MCB (bloco de controle de mapa) existente.

Sintaxe

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

Parâmetros

Mcb

Ponteiro para uma estrutura do MCB inicializada.

Vbn

Iniciando o VBN (número de bloco virtual) da nova execução de mapeamento a ser adicionada ao MCB.

Lbn

LBN (número de bloco lógico) para o qual LargeVbn deve ser mapeado.

SectorCount

Número de setores na nova execução de mapeamento.

Retornar valor

FsRtlAddLargeMcbEntry retornará TRUE se o novo mapeamento tiver sido adicionado com êxito ao MCB, caso contrário, FALSE .

Comentários

FsRtlAddLargeMcbEntry adiciona um novo mapeamento a um MCB (bloco de controle de mapa) existente. Os sistemas de arquivos usam estruturas MCB para mapear números de bloco virtual (VBN) para um arquivo para os LBN (números de bloco lógico) correspondentes no disco.

Nota Os 32 bits superiores do LBN são ignorados, mas devem ser definidos como zero. Somente os 32 bits inferiores são usados.
 
Se uma nova execução de mapeamento a ser adicionada se sobrepor a uma execução de mapeamento existente, FsRtlAddLargeMcbEntry as mescla em uma única execução de mapeamento.

Se ocorrer uma falha de alocação de pool, FsRtlAddLargeMcbEntry gerará uma exceção STATUS_INSUFFICIENT_RESOURCES. Para obter controle se essa falha de alocação de pool ocorrer, o driver deverá encapsular a chamada para FsRtlAddLargeMcbEntry em uma instrução try-except ou try-finally .

Para inicializar um MCB, chame FsRtlInitializeLargeMcb. Para não inicializar um MCB, chame FsRtlUninitializeLargeMcb.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Confira também

FsRtlGetNextLargeMcbEntry

FsRtlInitializeLargeMcb

FsRtlLookupLargeMcbEntry

FsRtlLookupLastLargeMcbEntry

FsRtlLookupLastLargeMcbEntryAndIndex

FsRtlNumberOfRunsInLargeMcb

FsRtlRemoveLargeMcbEntry

FsRtlSplitLargeMcb

FsRtlTruncateLargeMcb

FsRtlUninitializeLargeMcb