структура FILE_NOTIFY_EXTENDED_INFORMATION (ntifs.h)

FILE_NOTIFY_EXTENDED_INFORMATION предоставляет сведения об изменении каталога в ответ на запрос IRP_MJ_DIRECTORY_CONTROL с IRP_MN_NOTIFY_CHANGE_DIRECTORY дополнительным кодом функции, если DIRECTORY_NOTIFY_INFORMATION_CLASS — DirectoryNotifyExtendedInformation.

Синтаксис

typedef struct _FILE_NOTIFY_EXTENDED_INFORMATION {
  ULONG         NextEntryOffset;
  ULONG         Action;
  LARGE_INTEGER CreationTime;
  LARGE_INTEGER LastModificationTime;
  LARGE_INTEGER LastChangeTime;
  LARGE_INTEGER LastAccessTime;
  LARGE_INTEGER AllocatedLength;
  LARGE_INTEGER FileSize;
  ULONG         FileAttributes;
  union {
    ULONG ReparsePointTag;
    ULONG EaSize;
  } DUMMYUNIONNAME;
  LARGE_INTEGER FileId;
  LARGE_INTEGER ParentFileId;
  ULONG         FileNameLength;
  WCHAR         FileName[1];
} FILE_NOTIFY_EXTENDED_INFORMATION, *PFILE_NOTIFY_EXTENDED_INFORMATION;

Члены

NextEntryOffset

Число байтов, которое необходимо пропустить, чтобы перейти к следующей записи. Нулевое значение указывает, что это последняя запись.

Action

Тип произошедшего изменения. Этот элемент может иметь одно из следующих значений.

Значение Значение
FILE_ACTION_ADDED (0x00000001) Файл был добавлен в каталог .
FILE_ACTION_REMOVED (0x00000002) Файл был удален из каталога.
FILE_ACTION_MODIFIED (0x00000003) Каталог был изменен. Это может быть изменение метки времени или атрибутов.
FILE_ACTION_RENAMED_OLD_NAME (0x00000004) Каталог был переименован, и это старое имя.
FILE_ACTION_RENAMED_NEW_NAME (0x00000005) Каталог был переименован, и это новое имя.

CreationTime

Дата и время создания каталога или файла и их добавления в файловую систему.

LastModificationTime

Дата и время последнего изменения содержимого каталога или файла в файловой системе.

LastChangeTime

Дата и время последнего изменения метаданных или содержимого каталога или файла в файловой системе.

LastAccessTime

Дата и время последнего доступа к каталогу или файлу в файловой системе.

AllocatedLength

Выделенный размер файла в байтах.

FileSize

Новый размер каталога или файла в байтах или старый размер, если размер не изменился.

FileAttributes

Атрибуты файла, которые могут быть любым допустимым сочетанием следующих:

  • FILE_ATTRIBUTE_READONLY
  • FILE_ATTRIBUTE_HIDDEN
  • FILE_ATTRIBUTE_SYSTEM
  • FILE_ATTRIBUTE_DIRECTORY
  • FILE_ATTRIBUTE_ARCHIVE
  • FILE_ATTRIBUTE_NORMAL
  • FILE_ATTRIBUTE_TEMPORARY
  • FILE_ATTRIBUTE_COMPRESSED

DUMMYUNIONNAME

DUMMYUNIONNAME.ReparsePointTag

Тег идентификатора точки повторного переразумения для каталога или файла.

DUMMYUNIONNAME.EaSize

Объединенная длина расширенных атрибутов (EA) для файла в байтах.

FileId

Идентификатор каталога или файла. Этот номер создается и присваивается файлу файловой системой.

ParentFileId

Идентификатор родительского каталога файла.

FileNameLength

Размер части записи с именем файла в байтах. Это значение не включает завершающий символ NULL.

FileName[1]

Поле переменной длины, содержащее имя файла относительно дескриптора каталога. Имя файла имеет символьный формат Юникода и не заканчивается null.

Требования

Требование Значение
Заголовок ntifs.h

См. также раздел

DIRECTORY_NOTIFY_INFORMATION_CLASS

IRP_MJ_DIRECTORY_CONTROL

ZwNotifyChangeDirectoryFileEx