FILE_ID_FULL_DIR_INFORMATION 구조체(ntifs.h)
FILE_ID_FULL_DIR_INFORMATION 구조체는 디렉터리의 파일에 대한 자세한 정보를 쿼리하는 데 사용됩니다.
구문
typedef struct _FILE_ID_FULL_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;
LARGE_INTEGER FileId;
WCHAR FileName[1];
} FILE_ID_FULL_DIR_INFORMATION, *PFILE_ID_FULL_DIR_INFORMATION;
멤버
NextEntryOffset
버퍼에 여러 항목이 있는 경우 다음 FILE_ID_FULL_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
파일에 대한 확장된 특성의 길이(바이트)를 결합합니다.
FileId
파일에 대한 8 바이트 파일 참조 번호입니다. (Microsoft Windows 2000용 NTFS에 추가된 16 바이트 "파일 개체 ID"와는 다릅니다.)
FileName[1]
파일 이름 문자열의 첫 번째 문자를 지정합니다. 이 뒤에는 나머지 문자열이 메모리에서 수행됩니다.
설명
이 정보는 다음 방법 중 하나로 쿼리할 수 있습니다.
ZwQueryDirectoryFile을 호출하여 FileIdFullDirectoryInformation을 FileInformationClass 값으로 전달하고 호출자가 할당한 FILE_ID_FULL_DIR_INFORMATION 구조화된 버퍼를 FileInformation 값으로 전달합니다.
주 함수 코드 IRP_MJ_DIRECTORY_CONTROL 및 부 함수 코드 IRP_MN_QUERY_DIRECTORY 사용하여 IRP를 만듭니다.
이 정보를 쿼리하는 데 특정 액세스 권한이 필요하지 않습니다.
파일 ID라고도 하는 파일 참조 번호는 정적 파일 시스템 내에서만 고유하도록 보장됩니다. 파일 시스템은 자유롭게 재사용할 수 있으므로 시간이 지남에 따라 고유하지 않을 수 있습니다. 그들은 일정하게 유지 보장되지 않습니다. 예를 들어 FAT 파일 시스템은 디스크의 DIRENT(디렉터리 항목 레코드)의 바이트 오프셋에서 파일에 대한 파일 참조 번호를 생성합니다. 조각 모음은 이 바이트 오프셋을 변경할 수 있습니다. 따라서 FAT 파일 참조 번호는 시간이 지남에 따라 변경 될 수 있습니다.
모든 날짜와 시간은 절대 시스템 시간 형식입니다. 절대 시스템 시간은 1601년 초부터 100나노초 간격의 수입니다.
이 구조체는 LONGLONG(8 바이트) 경계에 맞춰야 합니다. 버퍼에 이러한 구조체가 두 개 이상 포함된 경우 마지막을 제외한 각 항목의 NextEntryOffset 값은 8 바이트 경계에 해당합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ntifs.h(Ntifs.h, Fltkernel.h 포함) |