10 февраля 2001
NtNotifyChangeDirectoryFile (ZwNotifyChangeDirectoryFile)
NTSYSAPI
NTSTATUS
NTAPI
NtNotifyChangeDirectoryFile(
IN HANDLE FileHandle,
IN HANDLE Event OPTIONAL,
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
OUT PVOID Buffer,
IN ULONG BufferSize,
IN ULONG CompletionFilter,
IN BOOLEAN WatchTree );
NtNotifyChangeDirectoryFile используется для обработки изменений в каталоге. Следует выбрать что использовать - объект события или функцию APC в качестве оповещения. Функция возвращает
сразу же значение STATUS_PENDING.
FileHandle
HANDLE файла, открытого с доступом SYNCHRONIZE и установленной опцией FILE_DIRECTORY_FILE.
Event
HANDLE события. Событие может быть создано как NotificationEvent или SynchronizationEvent, второй вариант предпочтительнее.
ApcRoutine
Адрес APC-функции, вызываемой после того, как состоялось изменение.
ApcContext
Параметр для ApcRoutine.
IoStatusBlock
Результат ввода-вывода. Поле Status в IoStatusBlock может содержать STATUS_NOTIFY_ENUM_DIR если Buffer слишком мал.
Buffer
Буфер (память выделяется пользователем) для информации об изменениях.
Содержит одну или несколько структур FILE_NOTIFY_INFORMATION.
BufferSize
Размер Buffer, в байтах.
CompletionFilter
Маска, определяющая, какой тип изменений отслеживается. Может быть комбинацией следующих значений:
- FILE_NOTIFY_CHANGE_FILE_NAME
- FILE_NOTIFY_CHANGE_DIR_NAME
- FILE_NOTIFY_CHANGE_NAME
- FILE_NOTIFY_CHANGE_ATTRIBUTES
- FILE_NOTIFY_CHANGE_SIZE
- FILE_NOTIFY_CHANGE_LAST_WRITE
- FILE_NOTIFY_CHANGE_LAST_ACCESS
- FILE_NOTIFY_CHANGE_CREATION
- FILE_NOTIFY_CHANGE_EA
- FILE_NOTIFY_CHANGE_SECURITY
- FILE_NOTIFY_CHANGE_STREAM_NAME
- FILE_NOTIFY_CHANGE_STREAM_SIZE
- FILE_NOTIFY_CHANGE_STREAM_WRITE
WatchTree
Если установлено, все подкаталоги также отслеживаются.
Документировал:
Томаш Новак
Бо Брантен
Зависимости:
Библиотека: ntdll.lib
См. также:
EVENT_TYPE
FILE_NOTIFY_INFORMATION