FILE_FULL_DIR_INFORMATION 구조체(ntifs.h)

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

구문

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

멤버

NextEntryOffset

버퍼에 여러 항목이 있는 경우 다음 FILE_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

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

FileName[1]

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

설명

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

  • ZwQueryDirectoryFile을 호출하여 FileFullDirectoryInformation을 FileInformationClass 값으로 전달하고 호출자가 할당한 FILE_FULL_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