estrutura FILE_NOTIFY_INFORMATION (ntifs.h)

FILE_NOTIFY_INFORMATION descreve as alterações em um diretório. Ele é retornado em resposta a uma solicitação de IRP_MJ_DIRECTORY_CONTROL com um IRP_MN_NOTIFY_CHANGE_DIRECTORY código de função secundária quando DIRECTORY_NOTIFY_INFORMATION_CLASS é DirectoryNotifyInformation.

Sintaxe

typedef struct _FILE_NOTIFY_INFORMATION {
  ULONG NextEntryOffset;
  ULONG Action;
  ULONG FileNameLength;
  WCHAR FileName[1];
} FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_INFORMATION;

Membros

NextEntryOffset

O número de bytes que devem ser ignorados para chegar ao próximo registro. Um valor zero indica que este é o último registro.

Action

O tipo de alteração que ocorreu. Esse membro pode ser um dos valores a seguir.

Valor Significado
FILE_ACTION_ADDED (0x00000001) O arquivo foi adicionado ao diretório.
FILE_ACTION_REMOVED (0x00000002) O arquivo foi removido do diretório.
FILE_ACTION_MODIFIED (0x00000003) O arquivo foi modificado. Isso pode ser uma alteração no carimbo de data/hora ou atributos.
FILE_ACTION_RENAMED_OLD_NAME (0x00000004) O arquivo foi renomeado e esse é o nome antigo.
FILE_ACTION_RENAMED_NEW_NAME (0x00000005) O arquivo foi renomeado e esse é o novo nome.
FILE_ACTION_ADDED_STREAM (0x00000006) Um fluxo nomeado foi adicionado ao arquivo.
FILE_ACTION_REMOVED_STREAM (0x00000007) Um fluxo nomeado foi removido do arquivo.
FILE_ACTION_MODIFIED_STREAM (0x00000008) Um fluxo nomeado foi modificado. A modificação pode ser uma alteração nos dados ou atributos do fluxo nomeado.
FILE_ACTION_REMOVED_BY_DELETE (0x00000009) Uma ID de objeto foi removida porque o arquivo ao qual a ID do objeto se referia foi excluído. Essa notificação só é enviada quando o diretório que está sendo monitorado é o diretório especial "$Extend$ObjId:$O:$INDEX_ALLOCATION".
FILE_ACTION_ID_NOT_TUNNELLED (0x0000000A) Falha na tentativa de túnel de informações de ID de objeto para um arquivo que está sendo criado ou renomeado porque a ID do objeto está em uso por outro arquivo no mesmo volume. Essa notificação só é enviada quando o diretório que está sendo monitorado é o diretório especial "$Extend$ObjId:$O:$INDEX_ALLOCATION".
FILE_ACTION_TUNNELLED_ID_COLLISION (0x0000000B) Falha na tentativa de túnel de informações de ID de objeto para um arquivo que está sendo renomeado porque o arquivo já tem uma ID de objeto. Essa notificação só é enviada quando o diretório que está sendo monitorado é o diretório especial "$Extend$ObjId:$O:$INDEX_ALLOCATION".

FileNameLength

O tamanho da parte do nome do arquivo do registro, em bytes. Esse valor não inclui o caractere nulo de terminação.

FileName[1]

Um campo de comprimento variável que contém o nome do arquivo relativo ao identificador de diretório. O nome do arquivo está no formato de caractere Unicode e não é encerrado em nulo.

Se houver um nome curto e longo para o arquivo, apenas um desses nomes será retornado, mas não será especificado qual deles.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Cabeçalho ntifs.h

Confira também

DIRECTORY_NOTIFY_INFORMATION_CLASS

IRP_MJ_DIRECTORY_CONTROL

ZwNotifyChangeDirectoryFileEx