다음을 통해 공유


FSCTL_QUERY_FILE_LAYOUT 제어 코드

FSCTL_QUERY_FILE_LAYOUT 제어 코드는 파일 시스템 볼륨에 대한 파일 레이아웃 정보를 검색합니다. 이 요청의 결과는 파일 레이아웃 정보 항목의 컬렉션입니다. 반환되는 항목 유형은 QUERY_FILE_LAYOUT_INPUT 구조체에 포함 플래그를 설정하여 제어됩니다. 선택적으로 레이아웃 정보의 선택을 제한하는 파일 익스텐트 집합을 제공하여 결과를 필터링할 수 있습니다.

이 작업을 수행하려면 다음 매개 변수 를 사용하여 FltFsControlFile 또는 ZwFsControlFile 을 호출합니다.

매개 변수

  • FileObject [in]: FltFsControlFile만 해당 합니다. 파일 시스템 볼륨에 대한 파일 개체 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

  • FileHandle [in]: ZwFsControlFile만 해당 합니다. 파일 시스템 볼륨에 대한 파일 핸들입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

  • FsControlCode [in]: 작업에 대한 제어 코드입니다. 이 작업에는 FSCTL_QUERY_FILE_LAYOUT 제어 코드를 사용합니다.

  • InputBuffer [in]: 호출자가 할당한 QUERY_FILE_LAYOUT_INPUT 구조체에 대한 포인터입니다. 이 구조체에는 선택 옵션이 포함되어 있습니다. 선택적 파일 범위는 QUERY_FILE_LAYOUT_INPUT 후에 포함됩니다.

  • InputBufferLength [in]: InputBuffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다. InputBuffer의 크기는 NumberOfPairs> 0인 경우 sizeof(QUERY_FILE_LAYOUT_INPUT) + (sizeof(Filter) * (NumberOfPairs - 1)이상이어야 합니다. 그렇지 않으면 InputBufferLength = sizeof(QUERY_FILE_LAYOUT_INPUT)를 설정합니다.

  • OutputBuffer [out]: 호출자가 할당한 QUERY_FILE_LAYOUT_OUTPUT 구조체에 대한 포인터입니다. 이 버퍼에서 뒤에 오는 파일 레이아웃 항목의 헤더입니다.

  • OutputBufferLength [out]: OutputBuffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다. OutputBuffer의 크기는 반환된 파일 레이아웃 및 스트림 레이아웃 구조와 함께 QUERY_FILE_LAYOUT_OUTPUT 포함할 수 있을 만큼 커야 합니다.

상태 블록

FltFsControlFile 또는 ZwFsControlFile 은 다음 값 중 하나와 같이 STATUS_SUCCESS 또는 적절한 NTSTATUS 값을 반환합니다.

코드 의미
STATUS_INVALID_PARAMETER 파일 시스템 볼륨이 열려 있는 사용자 볼륨이 아니거나 버퍼 길이 값이 잘못되었거나 잘못된 쿼리 옵션이 설정되었습니다.
STATUS_ACCESS_DENIED 호출자가 파일 시스템 볼륨에 액세스할 수 없습니다.
STATUS_INVALID_USER_BUFFER InputBuffer 또는 OutputBuffer에 대한 포인터가 제대로 정렬되지 않았습니다.
STATUS_BUFFER_TOO_SMALL OutputBufferLength의 값은 OutputBuffer가 너무 작아서 레이아웃 항목을 하나 이상 포함할 수 없음을 나타냅니다.
STATUS_END_OF_FILE InputBuffer 또는 OutputBuffer에 대한 포인터가 제대로 정렬되지 않았습니다.

설명

볼륨에 대한 모든 레이아웃 항목을 검색하기 위해 STATUS_END_OF_FILE 반환될 때까지 FSCTL_QUERY_FILE_LAYOUT 요청이 여러 번 발급됩니다. STATUS_SUCCESS 반환되는 동안 호출자는 나머지 레이아웃 항목에 대한 FSCTL_QUERY_FILE_LAYOUT 요청을 계속 보낼 수 있습니다.

레이아웃 항목의 열거형은 QUERY_FILE_LAYOUT_INPUT Flags 멤버에 QUERY_FILE_LAYOUT_RESTART 플래그를 포함하여 언제든지 다시 시작될 수 있습니다. 또한 FSCTL_QUERY_FILE_LAYOUT STATUS_END_OF_FILE 반환한 후에는 다른 레이아웃 항목 열거를 시작하려면 다음 FSCTL_QUERY_FILE_LAYOUT 요청에 QUERY_FILE_LAYOUT_RESTART 플래그를 포함해야 합니다.

이 코드는 ReFS에서 지원되지 않습니다.

요구 사항

요구 사항 유형 요구 사항
지원되는 최소 클라이언트 Windows 8.1 Update
헤더 Ntifs.h ( Ntifs.h 또는 Fltkernel.h 포함)

추가 정보

QUERY_FILE_LAYOUT_INPUT

QUERY_FILE_LAYOUT_OUTPUT

FltFsControlFile

ZwFsControlFile