FILE_NOTIFY_FULL_INFORMATION 구조체(ntifs.h)

DIRECTORY_NOTIFY_INFORMATION_CLASS DirectoryNotifyFullInformation인 경우 IRP_MN_NOTIFY_CHANGE_DIRECTORY 부 함수 코드가 있는 IRP_MJ_DIRECTORY_CONTROL 요청에 대한 응답으로 FILE_NOTIFY_FULL_INFORMATION 구조가 반환됩니다.

구문

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

반환되는 파일 이름의 형식(알려진 경우)을 지정하는 플래그입니다. 다음 플래그 중 어느 것도 설정되지 않은 경우 파일 이름의 형식을 알 수 없습니다. 다음 플래그가 모두 설정된 경우 파일 이름은 long/short 이름 쌍의 긴 이름 및 짧은 이름(NTFS 이름과 DOS 이름 모두)의 역할을 합니다.

플래그
FILE_NAME_NTFS(0x01) 파일 이름은 long/short 이름 쌍의 긴 이름(NTFS 이름)입니다.
FILE_NAME_DOS(0x02) 파일 이름은 long/short 이름 쌍의 짧은 이름(DOS 이름)입니다.

Reserved

시스템에서 사용하도록 예약되었습니다.

FileName[1]

디렉터리 핸들을 기준으로 파일 이름을 포함하는 가변 길이 필드입니다. 파일 이름은 유니코드 문자 형식이며 null로 종료되지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 11, 버전 22H2
머리글 ntifs.h

추가 정보

DIRECTORY_NOTIFY_INFORMATION_CLASS

IRP_MJ_DIRECTORY_CONTROL

ZwNotifyChangeDirectoryFileEx