다음을 통해 공유


FILE_BOTH_DIR_INFORMATION 구조체(ntifs.h)

FILE_BOTH_DIR_INFORMATION 구조체는 디렉터리의 파일에 대한 자세한 정보를 쿼리하는 데 사용됩니다.

구문

typedef struct _FILE_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];
  WCHAR         FileName[1];
} FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;

멤버

NextEntryOffset

버퍼에 여러 항목이 있는 경우 다음 FILE_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_DEVICE
  • FILE_ATTRIBUTE_NORMAL
  • FILE_ATTRIBUTE_TEMPORARY
  • FILE_ATTRIBUTE_SPARSE_FILE
  • FILE_ATTRIBUTE_REPARSE_POINT
  • FILE_ATTRIBUTE_COMPRESSED
  • FILE_ATTRIBUTE_OFFLINE
  • FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
  • FILE_ATTRIBUTE_ENCRYPTED

FileNameLength

파일 이름 문자열의 길이(바이트)를 지정합니다.

EaSize

파일에 대한 확장된 특성의 길이(바이트)를 결합합니다.

ShortNameLength

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

ShortName[12]

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

FileName[1]

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

설명

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

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

  • 주 함수 코드 IRP_MJ_DIRECTORY_CONTROL 및 부 함수 코드 IRP_MN_QUERY_DIRECTORY 사용하여 IRP를 만듭니다.

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

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

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

요구 사항

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

추가 정보

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile