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

FILE_NOTIFY_INFORMATION описывает изменения в каталоге. Он возвращается в ответ на запрос IRP_MJ_DIRECTORY_CONTROL с IRP_MN_NOTIFY_CHANGE_DIRECTORY дополнительным кодом функции, если DIRECTORY_NOTIFY_INFORMATION_CLASS DirectoryNotifyInformation.

Синтаксис

typedef struct _FILE_NOTIFY_INFORMATION {
  ULONG NextEntryOffset;
  ULONG Action;
  ULONG FileNameLength;
  WCHAR FileName[1];
} FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_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) Файл был переименован, и это новое имя.
FILE_ACTION_ADDED_STREAM (0x00000006) В файл добавлен именованный поток.
FILE_ACTION_REMOVED_STREAM (0x00000007) Именованный поток был удален из файла.
FILE_ACTION_MODIFIED_STREAM (0x00000008) Изменен именованный поток. Изменение может быть изменением данных или атрибутов именованного потока.
FILE_ACTION_REMOVED_BY_DELETE (0x00000009) Идентификатор объекта был удален, так как был удален файл, на который ссылается идентификатор объекта. Это уведомление отправляется только в том случае, если отслеживаемый каталог является специальным каталогом "$Extend$ObjId:$O:$INDEX_ALLOCATION".
FILE_ACTION_ID_NOT_TUNNELLED (0x0000000A) Попытка туннелировать сведения об идентификаторе объекта в создаваемый или переименовываемый файл завершилась сбоем, так как идентификатор объекта используется другим файлом на том же томе. Это уведомление отправляется только в том случае, если отслеживаемый каталог является специальным каталогом "$Extend$ObjId:$O:$INDEX_ALLOCATION".
FILE_ACTION_TUNNELLED_ID_COLLISION (0x0000000B) Попытка туннелировать сведения об идентификаторе объекта в файл, который переименовываются, завершилась сбоем, так как файл уже имеет идентификатор объекта. Это уведомление отправляется только в том случае, если отслеживаемый каталог является специальным каталогом "$Extend$ObjId:$O:$INDEX_ALLOCATION".

FileNameLength

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

FileName[1]

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

Если для файла указано короткое и длинное имя, возвращается только одно из этих имен, но оно не указано.

Требования

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

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

DIRECTORY_NOTIFY_INFORMATION_CLASS

IRP_MJ_DIRECTORY_CONTROL

ZwNotifyChangeDirectoryFileEx