다음을 통해 공유


FILE_ID_BOTH_DIR_INFORMATION 구조체(ntifs.h)

FILE_ID_BOTH_DIR_INFORMATION 구조는 디렉터리의 파일에 대한 파일 참조 번호 정보를 쿼리하는 데 사용됩니다.

구문

typedef struct _FILE_ID_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;
  CCHAR         ShortNameLength;
  WCHAR         ShortName[12];
  LARGE_INTEGER FileId;
  WCHAR         FileName[1];
} FILE_ID_BOTH_DIR_INFORMATION, *PFILE_ID_BOTH_DIR_INFORMATION;

멤버

NextEntryOffset

버퍼에 여러 항목이 있는 경우 다음 FILE_ID_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)의 결합된 길이(바이트)입니다.

ShortNameLength

짧은 파일 이름 문자열의 길이를 지정합니다.

ShortName[12]

파일의 짧은 이름(8.3)을 포함하는 유니코드 문자열입니다.

FileId

파일에 대한 8 바이트 파일 참조 번호입니다. 이 번호는 생성되고 파일 시스템에 의해 파일에 할당됩니다. FileId는 Microsoft Windows 2000용 NTFS에 추가된 16 바이트 "파일 개체 ID"와 동일하지 않습니다.

FileName[1]

파일 이름 문자열의 첫 번째 문자를 지정합니다. 이 뒤에는 나머지 문자열이 메모리에서 수행됩니다.

설명

이 정보는 다음 방법 중 하나로 쿼리할 수 있습니다.

  • ZwQueryDirectoryFile을 호출하여 FileIdBothDirectoryInformation을 FileInformationClass 값으로 전달하고 호출자가 할당한 FILE_ID_BOTH_DIR_INFORMATION 구조화된 버퍼를 FileInformation 값으로 전달합니다.

  • 주 함수 코드 IRP_MJ_DIRECTORY_CONTROL 및 부 함수 코드 IRP_MN_QUERY_DIRECTORY IRP를 Create.

이 정보를 쿼리하는 데 특정 액세스 권한이 필요하지 않습니다.

파일 ID라고도 하는 파일 참조 번호는 정적 파일 시스템 내에서만 고유하도록 보장됩니다. 파일 시스템은 자유롭게 다시 사용할 수 있으므로 시간이 지남에 따라 고유하지 않을 수 있습니다. 일정하게 유지되는 것도 보장되지 않습니다. 예를 들어 FAT 파일 시스템은 디스크에 있는 파일 디렉터리 항목 레코드(DIRENT)의 바이트 오프셋에서 파일에 대한 파일 참조 번호를 생성합니다. 조각 모음은 이 바이트 오프셋을 변경할 수 있습니다. 따라서 FAT 파일 참조 번호는 시간이 지남에 따라 변경 될 수 있습니다.

모든 날짜와 시간은 절대 시스템 시간 형식입니다. 절대 시스템 시간은 1601년 초부터 100나노초 간격의 수입니다.

이 구조체는 LONGLONG(8 바이트) 경계에 맞춰야 합니다. 버퍼에 이러한 구조체가 두 개 이상 포함된 경우 마지막을 제외한 각 항목의 NextEntryOffset 값은 8 바이트 경계에 해당합니다.

요구 사항

요구 사항
헤더 ntifs.h(Ntifs.h, Fltkernel.h 포함)

추가 정보

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile