次の方法で共有


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
ヘッダー ntifs.h

関連項目

DIRECTORY_NOTIFY_INFORMATION_CLASS

IRP_MJ_DIRECTORY_CONTROL

ZwNotifyChangeDirectoryFileEx