Compartilhar via


estrutura MULTI_SECTOR_HEADER

[Essa estrutura é válida apenas para a versão 3 dos volumes NTFS; ela pode ser alterada em versões futuras.]

Representa o cabeçalho multisector.

Sintaxe

typedef struct _MULTI_SECTOR_HEADER {
  UCHAR  Signature[4];
  USHORT UpdateSequenceArrayOffset;
  USHORT UpdateSequenceArraySize;
} MULTI_SECTOR_HEADER, *PMULTI_SECTOR_HEADER;

Membros

Signature

A assinatura. Esse valor é uma conveniência para o usuário.

UpdateSequenceArrayOffset

O deslocamento para a matriz de sequência de atualização, desde o início dessa estrutura. A matriz de sequência de atualização deve terminar antes do último valor USHORT no primeiro setor.

UpdateSequenceArraySize

O tamanho da matriz de sequência de atualização, em bytes.

Comentários

Observe que não há nenhum arquivo de cabeçalho associado para essa estrutura.

Essa definição de estrutura é válida apenas para a versão principal 3 e a versão secundária 0 ou 1, conforme relatado por FSCTL_GET_NTFS_VOLUME_DATA.

O cabeçalho multisetor e a matriz de sequência de atualização fornecem a detecção de transferências multisetores incompletas para dispositivos que têm um tamanho de setor físico maior ou igual ao passo de número de sequência (512) ou que não transferem setores fora de ordem. Se existir um dispositivo que tenha um tamanho de setor menor que o número de sequência e, às vezes, transferir setores fora de ordem, a matriz de sequência de atualização não fornecerá a detecção absoluta de transferências incompletas. O passo do número de sequência é definido como um número pequeno o suficiente para fornecer proteção absoluta para todos os discos rígidos conhecidos. Ele não está definido como menor ou pode haver sobrecarga excessiva de tempo de execução ou espaço.

A matriz de sequência de atualização consiste em uma matriz de valores nUSHORT , em que n é o tamanho da estrutura que está sendo protegida dividida pelo passo do número de sequência. A primeira palavra contém o número de sequência de atualização, que é um contador cíclico do número de vezes que a estrutura que contém foi gravada no disco. Em seguida, estão os valores n salvos do USHORT que foram substituídos pelo número de sequência de atualização na última vez em que a estrutura contida foi gravada no disco.

Cada vez que a estrutura protegida está prestes a ser gravada no disco, a última palavra em cada número de sequência é salva em sua respectiva posição na matriz de números de sequência e, em seguida, é substituída pelo próximo número de sequência de atualização. Após a gravação ou sempre que a estrutura é lida, a palavra salva da matriz de números de sequência é restaurada para sua posição real na estrutura. Antes de restaurar as palavras salvas em leituras, todos os números de sequência no final de cada passo são comparados com o número de sequência real no início da matriz. Se qualquer uma dessas comparações não for igual, uma transferência multissetorial com falha será detectada.

O tamanho da matriz é determinado pelo tamanho da estrutura que o contém. A matriz de sequência de atualização deve ser incluída no final do cabeçalho da estrutura que está protegendo devido ao tamanho da variável. O usuário deve garantir que o espaço correto esteja reservado para a estrutura que contém: (tamanho da estrutura / 512 + 1) * sizeof(USHORT).

Confira também

Tabela de arquivos mestre