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