Contém informações que são usadas para marcar um arquivo ou diretório especificado e seu número de sequência de atualização (USN) altera o registro de diário com dados sobre alterações. Ele é usado pelo código de controle FSCTL_MARK_HANDLE.
Sintaxe
typedef struct _MARK_HANDLE_INFO {
union {
DWORD UsnSourceInfo;
DWORD CopyNumber;
} DUMMYUNIONNAME;
DWORD UsnSourceInfo;
HANDLE VolumeHandle;
DWORD HandleInfo;
} MARK_HANDLE_INFO, *PMARK_HANDLE_INFO;
Membros
DUMMYUNIONNAME
DUMMYUNIONNAME.UsnSourceInfo
DUMMYUNIONNAME.CopyNumber
UsnSourceInfo
O tipo de alterações que está sendo feita.
A operação não modifica o arquivo ou o diretório externamente do ponto de vista do aplicativo que o criou.
Quando um thread grava um novo registro USN, os sinalizadores de informações de origem no registro anterior só estarão presentes se o thread também definir esses sinalizadores. Portanto, a estrutura de informações de origem permite que os aplicativos filtrem registros USN definidos apenas por uma fonte conhecida, como um filtro antivírus.
Os valores a seguir são definidos.
Valor |
Significado |
-
USN_SOURCE_DATA_MANAGEMENT
- 0x00000001
|
A operação fornece informações sobre uma alteração no arquivo ou diretório feito pelo sistema operacional.
Um uso típico é quando o Armazenamento Remoto move dados do armazenamento externo para o local. O Armazenamento Remoto é o software de gerenciamento de armazenamento hierárquico. Esse movimento geralmente, no mínimo, adiciona o sinalizador USN_REASON_DATA_OVERWRITE a um registro USN. No entanto, os dados não foram alterados do ponto de vista do usuário. Observando USN_SOURCE_DATA_MANAGEMENT no SourceInfo membro da estrutura de USN_RECORD que contém o registro, você pode determinar que, embora uma operação de gravação seja executada no item, os dados não foram alterados.
|
-
USN_SOURCE_AUXILIARY_DATA
- 0x00000002
|
A operação adiciona um fluxo de dados privado a um arquivo ou diretório.
Um exemplo pode ser um detector de vírus adicionando informações de soma de verificação. À medida que o detector de vírus modifica o item, o sistema gera registros USN.
USN_SOURCE_AUXILIARY_DATA indica que as modificações não alteraram os dados do aplicativo.
|
-
USN_SOURCE_REPLICATION_MANAGEMENT
- 0x00000004
|
A operação cria ou atualiza o conteúdo de um arquivo replicado.
Por exemplo, o serviço de replicação de arquivo define esse sinalizador quando cria ou atualiza um arquivo em um diretório replicado.
|
-
USN_SOURCE_CLIENT_REPLICATION_MANAGEMENT
- 0x00000008
|
A replicação está sendo executada em sistemas cliente da nuvem ou dos servidores.
|
VolumeHandle
O identificador de volume para o volume em que o arquivo ou diretório reside. Para obter mais informações sobre como obter um identificador de volume, consulte a seção Comentários.
Esse identificador é necessário para verificar os privilégios dessa operação.
O chamador deve ter o privilégio SE_MANAGE_VOLUME_NAME. Para obter mais informações, consulteprivilégios de .
HandleInfo
O sinalizador que especifica informações adicionais sobre o arquivo ou diretório identificados pelo valor do identificador no membro VolumeHandle.
Valor |
Significado |
-
MARK_HANDLE_PROTECT_CLUSTERS
- 0x00000001
|
O arquivo é marcado como não pode ser desfragmentado até que o identificador seja fechado.
Depois que um identificador marcado MARK_HANDLE_PROTECT_CLUSTERS for fechado, não haverá garantia de que os clusters do arquivo não serão movidos.
|
-
MARK_HANDLE_TXF_SYSTEM_LOG
- 0x00000004
|
O arquivo é marcado como não pode ser desfragmentado até que o identificador seja fechado.
Windows Server 2003: Esse sinalizador não tem suporte até o Windows Server 2003 com SP1.
Windows XP: não há suporte para Esse sinalizador.
|
-
MARK_HANDLE_NOT_TXF_SYSTEM_LOG
- 0x00000008
|
O arquivo é marcado como não pode ser desfragmentado até que o identificador seja fechado.
Windows Server 2003: Esse sinalizador não tem suporte até o Windows Server 2003 com SP1.
Windows XP: não há suporte para Esse sinalizador.
|
-
MARK_HANDLE_REALTIME
- 0x00000020
|
O arquivo é marcado para comportamento de leitura em tempo real, independentemente do tipo de arquivo real. Os arquivos marcados com esse sinalizador devem ser abertos para de E/S sem cofre.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Esse sinalizador não tem suporte.
|
-
MARK_HANDLE_NOT_REALTIME
- 0x00000040
|
O arquivo marcado anteriormente para comportamento de leitura em tempo real usando o sinalizador MARK_HANDLE_REALTIME pode ser não marcado usando esse sinalizador, removendo o comportamento em tempo real. Os arquivos marcados com esse sinalizador devem ser abertos para de E/S sem cofre.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Esse sinalizador não tem suporte.
|
-
MARK_HANDLE_READ_COPY
- 0x00000080
|
Indica que o número de cópia especificado no CopyNumber membro deve ser usado para leituras. Os arquivos marcados com esse sinalizador devem ser abertos para de E/S sem cofre.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Esse sinalizador não terá suporte até o Windows 8 e o Windows Server 2012.
|
-
MARK_HANDLE_NOT_READ_COPY
- 0x00000100
|
O arquivo marcado anteriormente para comportamento de cópia de leitura usando o sinalizador MARK_HANDLE_READ_COPY pode ser não marcado usando esse sinalizador, removendo o comportamento de leitura-cópia. Os arquivos marcados com esse sinalizador devem ser abertos para de E/S sem cofre.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Esse sinalizador não terá suporte até o Windows 8 e o Windows Server 2012.
|
-
MARK_HANDLE_RETURN_PURGE_FAILURE
- 0x00000400
|
Ao intercalar memória mapeada/E/S armazenada em cache com E/S não armazenada em cache, o sistema tenta, quando uma io não armazenada em cache, limpar mapeamentos de memória para o intervalo da E/S não armazenada em cache. Se essas limpezas falharem, o sistema normalmente não retornará a falha ao chamador, o que pode levar ao estado corrompido (e é por isso que a documentação diz para não fazer isso). Esse sinalizador informa ao sistema para retornar falhas de limpeza para o identificador especificado para que o aplicativo possa lidar melhor com essa situação Esse sinalizador não tem suporte até o Windows 8 e o Windows Server 2012.
|
-
MARK_HANDLE_DISABLE_FILE_METADATA_OPTIMIZATION
- 0x00001000
|
Um arquivo altamente fragmentado no NTFS usa vários registros MFT para descrever todas as extensões de um arquivo. Essa lista de registros MFT filho (também conhecidos como registros FRS) é controlada por uma estrutura conhecida como uma lista de atributos. Uma lista de atributos é limitada a 128 K de tamanho. Quando o tamanho de uma lista de atributos atingir um determinado limite, o NTFS disparará uma compactação em segundo plano nas extensões para que o número mínimo de registros FRS filho seja usado.
Esse sinalizador desabilita esse recurso de compactação FRS para o arquivo especificado.
Esse sinalizador não tem suporte até o Windows 10.
|
-
MARK_HANDLE_ENABLE_USN_SOURCE_ON_PAGING_IO
- 0x00002000
|
Informa ao NTFS para definir o valor fornecido de UsnSourceInfo em gravações de paginação no UsN Journal. Tradicionalmente, isso não era feito em gravações de paginação, pois o sistema não sabia qual thread fazia as alterações determinadas. Essa é uma substituição. Isso só funcionará se o FileObject que o gerenciador de memória está usando tiver esse estado associado a ele.
Esse sinalizador não tem suporte até o Windows 10.
|
-
MARK_HANDLE_SKIP_COHERENCY_SYNC_DISALLOW_WRITES
- 0x00004000
|
Definir esse sinalizador informa ao sistema que as gravações não são permitidas neste arquivo. Se um aplicativo tentar abrir o arquivo para acesso de gravação, a operação falhará com STATUS_ACCESS_DENIED.
Se uma gravação for vista, a operação falhará com STATUS_MARKED_TO_DISALLOW_WRITES Esse sinalizador não tem suporte até o Windows 10.
|
Para recuperar um identificador para um volume, chame CreateFile com o parâmetro lpFileName definido como uma cadeia de caracteres no seguinte formulário:
"\\.\X:"
Na cadeia de caracteres anterior, X é a letra que identifica a unidade na qual o volume aparece.
Requisitos
Requisito |
Valor |
de cliente com suporte mínimo |
Windows XP [somente aplicativos da área de trabalho] |
servidor com suporte mínimo |
Windows Server 2003 [somente aplicativos da área de trabalho] |
cabeçalho |
winioctl.h (inclua Windows.h) |
Consulte também
FSCTL_MARK_HANDLE
USN_RECORD