FILE_NOTIFY_EXTENDED_INFORMATION 構造体 (ntifs.h)

FILE_NOTIFY_EXTENDED_INFORMATIONは、DIRECTORY_NOTIFY_INFORMATION_CLASSが DirectoryNotifyExtendedInformation の場合に、IRP_MN_NOTIFY_CHANGE_DIRECTORYマイナー関数コードを使用してIRP_MJ_DIRECTORY_CONTROL要求に応答するディレクトリ変更に関する情報を提供します。

構文

typedef struct _FILE_NOTIFY_EXTENDED_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;
  ULONG         FileNameLength;
  WCHAR         FileName[1];
} FILE_NOTIFY_EXTENDED_INFORMATION, *PFILE_NOTIFY_EXTENDED_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 文字は含まれません。

FileName[1]

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

要件

要件
Header ntifs.h

こちらもご覧ください

DIRECTORY_NOTIFY_INFORMATION_CLASS

IRP_MJ_DIRECTORY_CONTROL

ZwNotifyChangeDirectoryFileEx