Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Структура 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 |