FILE_NOTIFY_FULL_INFORMATION 構造体 (ntifs.h)

FILE_NOTIFY_FULL_INFORMATION構造体は、DIRECTORY_NOTIFY_INFORMATION_CLASSが DirectoryNotifyFullInformation の場合、IRP_MN_NOTIFY_CHANGE_DIRECTORYマイナー関数コードを含むIRP_MJ_DIRECTORY_CONTROL要求に応答して返されます。

構文

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

次のレコードに移動するためにスキップする必要があるバイト数。 値 0 は、これが最後のレコードであることを示します。

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]

ディレクトリ ハンドルに対する相対ファイル名を含む可変長フィールド。 ファイル名は Unicode 文字形式であり、null で終わるものではありません。

要件

要件
サポートされている最小のクライアント Windows 11 バージョン 22H2
Header ntifs.h

こちらもご覧ください

DIRECTORY_NOTIFY_INFORMATION_CLASS

IRP_MJ_DIRECTORY_CONTROL

ZwNotifyChangeDirectoryFileEx