QUERY_FILE_LAYOUT_INPUT 구조체(ntifs.h)

QUERY_FILE_LAYOUT_INPUT 구조는 FSCTL_QUERY_FILE_LAYOUT 요청에서 반환되는 파일 레이아웃 항목을 선택합니다.

구문

typedef struct _QUERY_FILE_LAYOUT_INPUT {
  union {
    ULONG FilterEntryCount;
    ULONG NumberOfPairs;
  } DUMMYUNIONNAME;
  ULONG                         Flags;
  QUERY_FILE_LAYOUT_FILTER_TYPE FilterType;
  ULONG                         Reserved;
  union {
    CLUSTER_RANGE        ClusterRanges[1];
    FILE_REFERENCE_RANGE FileReferenceRanges[1];
    STORAGE_RESERVE_ID   StorageReserveIds[1];
  } Filter;
} QUERY_FILE_LAYOUT_INPUT, *PQUERY_FILE_LAYOUT_INPUT;

멤버

DUMMYUNIONNAME

DUMMYUNIONNAME.FilterEntryCount

필터 배열의 필터 항목 수입니다.

DUMMYUNIONNAME.NumberOfPairs

필터 유형이 하나만 있는 경우 필드의 원래 이름입니다. 공용 구조체는 단순히 코드 호환성을 유지하는 것입니다.

Flags

쿼리 결과에 포함되는 파일 레이아웃 항목을 나타냅니다. 플래그 는 다음 값의 유효한 조합으로 설정됩니다.

의미
QUERY_FILE_LAYOUT_INCLUDE_EXTENTS Stream 익스텐트 항목은 쿼리 결과에 포함됩니다. 이 플래그를 사용하려면 QUERY_FILE_LAYOUT_INCLUDE_STREAMS 플래그도 설정해야 합니다.
QUERY_FILE_LAYOUT_INCLUDE_EXTRA_INFO 추가 파일 정보 이름 항목은 쿼리 결과에 포함됩니다.
QUERY_FILE_LAYOUT_INCLUDE_NAMES 파일 이름 항목은 쿼리 결과에 포함됩니다.
QUERY_FILE_LAYOUT_INCLUDE_STREAMS 파일 스트림 항목은 쿼리 결과에 포함됩니다.
QUERY_FILE_LAYOUT_RESTART 파일 레이아웃 항목 반복기를 볼륨의 시작 부분으로 다시 설정합니다.
QUERY_FILE_LAYOUT_INCLUDE_STREAMS_WITH_NO_CLUSTERS_ALLOCATED 상주 스트림 및 할당되지 않은 특성에 대한 항목을 포함합니다. 이 플래그를 사용하려면 QUERY_FILE_LAYOUT_INCLUDE_STREAMS 플래그도 설정해야 합니다.

FilterType

반환된 레이아웃 정보를 제한하는 필터링 방법을 지정합니다. 다음 값 중 하나일 수 있습니다.

의미
QUERY_FILE_LAYOUT_FILTER_TYPE_NONE 필터링을 수행하지 않고 모든 정보를 반환합니다. 이 형식을 사용하는 경우 NumberOfPairs는 0이어야 합니다.
QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS 필터 레이아웃 정보를 Filter.ClusterRanges의 범위로 제한합니다.
QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID 필터 레이아웃 정보를 Filter.FileReferenceRanges의 범위로 제한합니다.

Reserved

시스템에서 사용하도록 예약되었습니다.

Filter

특정 레이아웃 정보를 선택하는 데 사용되는 필터 구조의 배열입니다. 여기에는 클러스터 또는 파일 참조 범위가 포함됩니다. 배열 길이는 NumberOfPairs 멤버에 의해 지정됩니다. 각 범위는 고유해야 하며 다른 범위와 겹칠 수 없습니다.

QUERY_FILE_LAYOUT_FILTER_TYPE_NONE FilterType지정된 경우 이 멤버는 무시됩니다.

Filter.ClusterRanges[1]

레이아웃 정보를 필터링할 클러스터 범위 집합을 지정합니다. 범위 구조체의 형식은 다음과 같습니다.

typedef struct _CLUSTER_RANGE {
    LARGE_INTEGER    StartingCluster;
    LARGE_INTEGER    ClusterCount;
} CLUSTER_RANGE, *PCLUSTER_RANGE;

Filter.FileReferenceRanges[1]

레이아웃 정보를 필터링할 파일 참조 범위 집합을 지정합니다. Windows 10 버전 1809부터 사용할 수 있습니다. 범위 구조체의 형식은 다음과 같습니다.

typedef struct _FILE_REFERENCE_RANGE {
    LARGE_INTEGER    StartingFileReference;
    LARGE_INTEGER    EndingReferenceNumber;
} FILE_REFERENCE_RANGE, *PFILE_REFERENCE_RANGE;

Filter.StorageReserveIds[1]

레이아웃 정보를 필터링할 스토리지 예약 ID 집합을 지정합니다. 연결된 열거형의 형식은 다음과 같습니다.

typedef enum _STORAGE_RESERVE_ID {

    StorageReserveIdNone = 0,
    StorageReserveIdHard,
    StorageReserveIdSoft,
    StorageReserveIdUpdateScratch,

    StorageReserveIdMax

} STORAGE_RESERVE_ID, *PSTORAGE_RESERVE_ID;

설명

QUERY_FILE_LAYOUT_RESTART 플래그는 첫 번째 FSCTL_QUERY_FILE_LAYOUT 요청에 설정됩니다. 필터 범위가 요청에 포함된 경우 QUERY_FILE_LAYOUT_RESTART 설정되면 캐시됩니다. 추가 요청은 볼륨이 끝날 때까지 또는 필터 범위가 소진될 때까지 레이아웃 파일 항목을 반환합니다.

동일한 볼륨에 대해 QUERY_FILE_LAYOUT_RESTART 다시 설정되면 파일 레이아웃 위치가 볼륨의 시작 부분으로 다시 설정됩니다. 또한 필터 범위는 다시 캐시되고 평가 순서는 첫 번째 범위로 다시 설정됩니다.

파일 레이아웃 항목은 QUERY_FILE_LAYOUT_OUTPUT 구조에 따라 출력 버퍼에 반환됩니다.

FilterTypeQUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS 경우 필터 공용 구조체의 ClusterRanges 멤버가 범위 필터링에 사용됩니다. 그렇지 않으면 FilterTypeQUERY_FILE_LAYOUT_FILTER_TYPE_FILEID경우 FileReferenceRanges 멤버가 범위 필터링에 사용됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
머리글 ntifs.h(Ntifs.h 포함)

추가 정보

FSCTL_QUERY_FILE_LAYOUT

QUERY_FILE_LAYOUT_OUTPUT