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

Структура FILE_NOTIFY_FULL_INFORMATION возвращается в ответ на запрос IRP_MJ_DIRECTORY_CONTROL с IRP_MN_NOTIFY_CHANGE_DIRECTORY дополнительным кодом функции, если DIRECTORY_NOTIFY_INFORMATION_CLASS DirectoryNotifyFullInformation.

Синтаксис

typedef struct _FILE_NOTIFY_FULL_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;
  USHORT        FileNameLength;
  UCHAR         FileNameFlags;
  UCHAR         Reserved;
  WCHAR         FileName[1];
} FILE_NOTIFY_FULL_INFORMATION, *PFILE_NOTIFY_FULL_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.

FileNameFlags

Флаги, указывающие тип возвращаемого имени файла, если оно известно. Если ни тот из следующих флагов не задан, тип имени файла неизвестен. Если заданы оба следующих флага, имя файла выступает как длинное и короткое имя (имя NTFS и DOS) пары длинных и коротких имен.

Флаг Значение
FILE_NAME_NTFS (0x01) Имя файла — это длинное имя (NTFS-имя) пары длинных и коротких имен.
FILE_NAME_DOS (0x02) Имя файла — это короткое имя (DOS-имя) пары длинных и коротких имен.

Reserved

Зарезервировано для системного использования.

FileName[1]

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

Требования

Требование Значение
Минимальная версия клиента Windows 11 версии 22H2
Верхняя часть ntifs.h

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

DIRECTORY_NOTIFY_INFORMATION_CLASS

IRP_MJ_DIRECTORY_CONTROL

ZwNotifyChangeDirectoryFileEx