Alterar registros de diário
À medida que arquivos, diretórios e outros objetos do sistema de arquivos NTFS são adicionados, excluídos e modificados, o sistema de arquivos NTFS insere registros de diário de alteração em fluxos, um para cada volume no computador. Cada registro indica o tipo de alteração e o objeto alterado. O deslocamento do início do fluxo para um registro específico é chamado de USN (número de sequência de atualização) para o registro específico. Novos registros são acrescentados ao final do fluxo.
O sistema de arquivos NTFS pode excluir registros antigos para conservar espaço. Se os registros necessários tiverem sido excluídos, o serviço de indexação se recuperará reindexando o volume, como faz quando não existe nenhum diário de alteração.
O diário de alteração registra apenas o fato de uma alteração em um arquivo e o motivo da alteração (por exemplo, operações de gravação, truncamento, alongamento, exclusão e assim por diante). Ele não registra informações suficientes para permitir a reversão da alteração.
Além disso, várias alterações no mesmo arquivo podem resultar na adição de apenas um sinalizador de motivo ao registro atual. Se o mesmo tipo de alteração ocorrer mais de uma vez, o sistema de arquivos NTFS não gravará um novo registro para as alterações após a primeira. Por exemplo, várias operações de gravação sem operações de fechamento e reabertura intervindo resultam em apenas um registro de alteração com o sinalizador reason USN_REASON_DATA_OVERWRITE definido.
Para ilustrar como funciona o diário de alterações, suponha que um usuário acesse um arquivo na seguinte ordem:
- Grava no arquivo.
- Define o carimbo de data/hora do arquivo.
- Grava no arquivo.
- Trunca o arquivo.
- Grava no arquivo.
- Fecha o arquivo.
Nesse caso, o sistema de arquivos NTFS executa as seguintes ações no diário de alteração (em que | indica uma operação OR bit a bit).
Evento | Ação do sistema de arquivos NTFS |
---|---|
Operação de gravação inicial |
O sistema de arquivos NTFS grava um novo registro USN com o sinalizador de motivo USN_REASON_DATA_OVERWRITE definido. Para obter mais informações sobre possíveis sinalizadores de motivo, consulte a estrutura USN_RECORD . |
Configuração do carimbo de data/hora do arquivo |
O sistema de arquivos NTFS grava um novo registro USN com a configuração de sinalizador USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE. |
Segunda operação de gravação |
O sistema de arquivos NTFS não grava um novo registro USN. Como USN_REASON_DATA_OVERWRITE já está definido para o registro existente, nenhuma alteração é feita no registro. |
Truncamento de arquivo |
O sistema de arquivos NTFS grava um novo registro USN com a configuração de sinalizador USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION. |
Terceira operação de gravação |
O sistema de arquivos NTFS não grava um novo registro USN. Como USN_REASON_DATA_OVERWRITE já está definido para o registro existente, nenhuma alteração é feita no registro. |
Fechar operação |
Se o usuário que faz alterações for o único usuário do arquivo, o sistema de arquivos NTFS gravará um novo registro USN com a seguinte configuração de sinalizador: USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION | USN_REASON_CLOSE. |
O diário de alteração acumula uma série de registros entre a primeira abertura e o último fechamento de um arquivo. Cada registro tem um novo sinalizador de motivo definido, indicando que ocorreu um novo tipo de alteração. A sequência de registros fornece um histórico parcial do arquivo. O registro final, criado quando o arquivo é fechado, adiciona o sinalizador USN_REASON_CLOSE. Esse registro representa um resumo das alterações no arquivo, mas, ao contrário dos registros anteriores, não fornece nenhuma indicação da ordem das alterações.
O próximo usuário a acessar e alterar o arquivo gera um novo registro USN com um único sinalizador de motivo.