estrutura FILE_DISPOSITION_INFORMATION_EX (ntddk.h)

A estrutura FILE_DISPOSITION_INFORMATION_EX é usada como um argumento para a rotina ZwSetInformationFile e indica como o sistema operacional deve excluir um arquivo.

Sintaxe

typedef struct _FILE_DISPOSITION_INFORMATION_EX {
  ULONG Flags;
} FILE_DISPOSITION_INFORMATION_EX, *PFILE_DISPOSITION_INFORMATION_EX;

Membros

Flags

Especifica quais ações o sistema deve executar com um arquivo específico durante a exclusão.

Nome do Sinalizador Valor Significado
FILE_DISPOSITION_DO_NOT_DELETE 0x00000000 Especifica que o sistema não deve excluir um arquivo.
FILE_DISPOSITION_DELETE 0x00000001 Especifica que o sistema deve excluir um arquivo.
FILE_DISPOSITION_POSIX_SEMANTICS 0x00000002 Especifica que o sistema deve executar uma exclusão no estilo POSIX. Confira mais informações em Comentários.
FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK 0x00000004 Especifica que o sistema deve forçar uma seção de imagem marcar.
FILE_DISPOSITION_ON_CLOSE 0x00000008 Especifica se o sistema define ou limpa o estado de fechamento.
FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE 0x00000010 Permite que arquivos somente leitura sejam excluídos. Para obter mais informações, consulte a seção Comentários abaixo.

Comentários

O chamador deve ter acesso DELETE a um determinado arquivo para chamar ZwSetInformationFile com FILE_DISPOSITION_DELETE.

Quando FILE_DISPOSITION_POSIX_SEMANTICS não está definido, um arquivo marcado para exclusão não é realmente excluído até que todos os identificadores abertos para o arquivo tenham sido fechados e a contagem de link para o arquivo seja zero. Quando FILE_DISPOSITION_POSIX_SEMANTICS é definido, o link é removido do namespace visível assim que o identificador de exclusão POSIX é fechado, mas os fluxos de dados do arquivo permanecem acessíveis por outros identificadores existentes até que o último identificador seja fechado. Ou seja, os aplicativos que já tinham o arquivo aberto ainda podem usar o identificador para ler/gravar, mesmo que o nome usado para abri-lo tenha sumido e a contagem de links do arquivo possa ter atingido zero.

Se o arquivo estiver sendo excluído a pedido do usuário, o uso da semântica POSIX permitirá que o sistema exclua o arquivo conforme solicitado, mas também permitirá que qualquer processo com um identificador aberto continue a acessar os dados do arquivo, desde que o identificador esteja aberto.

Um valor retornado de STATUS_CANNOT_DELETE indica que o arquivo é somente leitura ou há uma exibição mapeada existente para o arquivo.

Requisitos

Requisito Valor
Cabeçalho ntddk.h (inclua Ntddk.h, Ntifs.h)

Confira também

ZwClose

ZwSetInformationFile