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 |