структура 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