Compartilhar via


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 inicializada do MCB.

Vbn

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

Lbn

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

SectorCount

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

Valor de retorno

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

Observações

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 números de bloco lógico correspondentes (LBN) no disco.

Observação 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 mesclará-as 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
da Plataforma de Destino Universal
cabeçalho ntifs.h (inclua Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Consulte também

FsRtlGetNextLargeMcbEntry

FsRtlInitializeLargeMcb

FsRtlLookupLargeMcbEntry

FsRtlLookupLastLargeMcbEntry

FsRtlLookupLastLargeMcbEntryAndIndex

FsRtlNumberOfRunsInLargeMcb

FsRtlRemoveLargeMcbEntry

FsRtlSplitLargeMcb

FsRtlTruncateLargeMcb

FsRtlUninitializeLargeMcb