FILE_ID_ALL_EXTD_BOTH_DIR_INFORMATION 구조체(ntifs.h)
FILE_ID_ALL_EXTD_BOTH_DIR_INFORMATION 구조는 디렉터리의 파일에 대한 64비트 및 128비트 파일 참조 번호 정보를 쿼리하는 데 사용됩니다.
통사론
typedef struct _FILE_ID_ALL_EXTD_BOTH_DIR_INFORMATION {
ULONG NextEntryOffset;
ULONG FileIndex;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER EndOfFile;
LARGE_INTEGER AllocationSize;
ULONG FileAttributes;
ULONG FileNameLength;
ULONG EaSize;
ULONG ReparsePointTag;
LARGE_INTEGER FileId;
FILE_ID_128 FileId128;
CCHAR ShortNameLength;
WCHAR ShortName[12];
WCHAR FileName[1];
} FILE_ID_ALL_EXTD_BOTH_DIR_INFORMATION, *PFILE_ID_ALL_EXTD_BOTH_DIR_INFORMATION;
회원
NextEntryOffset
버퍼에 여러 항목이 있는 경우 다음 FILE_ID_64_EXTD_BOTH_DIR_INFORMATION 항목의 바이트 오프셋입니다. 이 멤버를 따르는 다른 항목이 없으면 이 멤버는 0입니다.
FileIndex
부모 디렉터리 내 파일의 바이트 오프셋입니다. 이 멤버는 부모 디렉터리 내의 파일 위치가 고정되지 않고 정렬 순서를 유지하기 위해 언제든지 변경할 수 있는 NTFS와 같은 파일 시스템에 대해 정의되지 않습니다.
CreationTime
파일을 만든 시간입니다.
LastAccessTime
파일에 마지막으로 액세스한 시간입니다.
LastWriteTime
파일에 마지막으로 정보를 기록했습니다.
ChangeTime
파일을 마지막으로 변경한 시간입니다.
EndOfFile
파일의 시작 부분부터 바이트 오프셋으로 지정된 절대 새 파일 끝 위치입니다. EndOfFile 파일의 끝에 대한 바이트 오프셋을 지정합니다. 이 값은 0부터 시작하므로 실제로 파일의 첫 번째 무료 바이트를 참조합니다. 즉, EndOfFile 파일의 마지막 유효한 바이트 바로 다음에 있는 바이트에 대한 오프셋입니다.
AllocationSize
파일 할당 크기(바이트)입니다. 일반적으로 이 값은 기본 물리적 디바이스의 섹터 또는 클러스터 크기의 배수입니다.
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
FileNameLength
파일 이름 문자열의 길이를 지정합니다.
EaSize
파일에 대한 확장 특성(EA)의 총 길이(바이트)입니다.
ReparsePointTag
재구매 지점의 태그 값입니다.
FileId
파일에 대한 64비트 파일 참조 번호입니다. 이 번호는 파일 시스템에 의해 생성되고 파일에 할당됩니다.
FileId128
파일에 대한 128비트 파일 참조 번호입니다. 이 번호는 파일 시스템에 의해 생성되고 파일에 할당됩니다.
ShortNameLength
짧은 파일 이름 문자열의 길이를 지정합니다.
ShortName[12]
파일의 짧은 이름(8.3)을 포함하는 유니코드 문자열입니다.
FileName[1]
파일 이름 문자열의 첫 번째 문자를 지정합니다. 이 뒤에는 나머지 문자열이 메모리에 추가됩니다.
발언
이 정보는 다음 방법 중 하나를 사용하여 쿼리할 수 있습니다.
ZwQueryDirectoryFile호출하여 fileIdAllExtdBothDirectoryInformationFileInformationClass 값으로 전달하고 호출자가 할당한 FILE_ID_ALL_EXTD_BOTH_DIR_INFORMATION-structured 버퍼를 FileInformation값으로 전달합니다.
주 함수 코드 IRP_MJ_DIRECTORY_CONTROL 및 부 함수 코드 IRP_MN_QUERY_DIRECTORY 사용하여 IRP를 만듭니다.
이 정보를 쿼리하는 데 특정 액세스 권한이 필요하지 않습니다.
파일 ID라고도 하는 파일 참조 번호는 정적 파일 시스템 내에서만 고유하도록 보장됩니다. 파일 시스템은 자유롭게 다시 사용할 수 있으므로 시간이 지남에 따라 고유하지는 않습니다. 일정하게 유지되는 것도 보장되지 않습니다. 예를 들어 FAT 파일 시스템은 디스크에 있는 파일의 디렉터리 항목 레코드(DIRENT)의 바이트 오프셋에서 파일에 대한 파일 참조 번호를 생성합니다. 조각 모음은 이 바이트 오프셋을 변경할 수 있습니다. 따라서 FAT 파일 참조 번호는 시간이 지남에 따라 변경 될 수 있습니다.
모든 날짜와 시간은 절대 시스템 시간 형식입니다. 절대 시스템 시간은 1601년 초부터 100나노초 간격의 수입니다.
이 구조체는 LONGLONG(8 바이트) 경계에 맞춰야 합니다. 버퍼에 이러한 구조체가 두 개 이상 포함된 경우 NextEntryOffset은 마지막을 제외한 각 항목의 값을 8 바이트 경계에 해당합니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 11 버전 23H2 |
헤더 | ntifs.h |
참고 항목
FsRtlNotifyFullChangeDirectory
ZwQueryDirectoryFile