#ifndef _NTIOAPI_H
#if !defined(NTDDI_WIN10_NI) || (NTDDI_VERSION < NTDDI_WIN10_NI)
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;
};
FILE_INTERNAL_INFORMATION FileId;
FILE_INTERNAL_INFORMATION ParentFileId;
USHORT FileNameLength;
BYTE FileNameFlags;
BYTE Reserved;
WCHAR FileName[1];
} FILE_NOTIFY_FULL_INFORMATION, *PFILE_NOTIFY_FULL_INFORMATION;
View code on GitHub// ntifs.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
A FILE_NOTIFY_FULL_INFORMATION structure is returned in response to an IRP_MJ_DIRECTORY_CONTROL request with an IRP_MN_NOTIFY_CHANGE_DIRECTORY minor function code when DIRECTORY_NOTIFY_INFORMATION_CLASS is DirectoryNotifyFullInformation.
NextEntryOffsetThe number of bytes that must be skipped to get to the next record. A value of zero indicates that this is the last record.
ActionThe type of change that has occurred. This member can be one of the following values.
| Value | Meaning |
|---|---|
| FILE_ACTION_ADDED (0x00000001) | A file was added to the directory. |
| FILE_ACTION_REMOVED (0x00000002) | A file was removed from the directory. |
| FILE_ACTION_MODIFIED (0x00000003) | The directory was modified. This can be a change in the time stamp or attributes. |
| FILE_ACTION_RENAMED_OLD_NAME (0x00000004) | The directory was renamed and this is the old name. |
| FILE_ACTION_RENAMED_NEW_NAME (0x00000005) | The directory was renamed and this is the new name. |
CreationTimeThe date and time when the directory or file was created and added to the file system.
LastModificationTimeThe date and time that the content of the directory or file was last modified in the file system.
LastChangeTimeThe date and time that the metadata or content of the directory or file was last changed in the file system.
LastAccessTimeThe date and time the directory or file was last accessed in the file system.
AllocatedLengthThe allocated size of the file, in bytes.
FileSizeThe new size of the directory or file in bytes, or the old size if the size is unchanged.
FileAttributesFile attributes, which can be any valid combination of the following:
DUMMYUNIONNAMEDUMMYUNIONNAME.ReparsePointTagThe identifier tag of a reparse point for the directory or file.
DUMMYUNIONNAME.EaSizeCombined length of the extended attributes (EA) for the file, in bytes.
FileIdThe identifier of the directory or file. This number is generated and assigned to the file by the file system.
ParentFileIdThe identifier of the parent directory of the file.
FileNameLengthThe size of the file name portion of the record, in bytes. This value does not include a terminating null character.
FileNameFlagsFlags specifying what type of file name is being returned, if known. If neither of the following flags is set, the type of file name is not known. If both of the following flags are set, the file name acts as both the long name and the short name (both the NTFS name and the DOS name) of a long/short name pair.
| Flag | Value |
|---|---|
| FILE_NAME_NTFS (0x01) | The file name is the long name (NTFS name) of a long/short name pair. |
| FILE_NAME_DOS (0x02) | The file name is the short name (DOS name) of a long/short name pair. |
ReservedReserved for system use.
FileNameA variable-length field that contains the file name relative to the directory handle. The file name is in the Unicode character format and is not null-terminated.
DIRECTORY_NOTIFY_INFORMATION_CLASS