Compartir a través de


FSCTL_QUERY_FILE_LAYOUT código de control

El código de control FSCTL_QUERY_FILE_LAYOUT recupera información de diseño de archivo para un volumen del sistema de archivos. Los resultados de esta solicitud son una colección de entradas de información de diseño de archivo. El tipo de entradas devueltas se controla estableciendo marcas de inclusión en la estructura QUERY_FILE_LAYOUT_INPUT . Opcionalmente, puede filtrar los resultados proporcionando un conjunto de extensiones de archivo para restringir la selección de información de diseño.

Para realizar esta operación, llame a FltFsControlFile o ZwFsControlFile con los parámetros siguientes.

Parámetros

  • FileObject [in]: FltFsControlFile solo. Puntero de objeto de archivo para el volumen del sistema de archivos. Este parámetro es obligatorio y no puede ser NULL.

  • FileHandle [in]: ZwFsControlFile solo. Identificador de archivo para el volumen del sistema de archivos. Este parámetro es obligatorio y no puede ser NULL.

  • FsControlCode [in]: código de control para la operación. Use el código de control FSCTL_QUERY_FILE_LAYOUT para esta operación.

  • InputBuffer [in]: puntero a una estructura de QUERY_FILE_LAYOUT_INPUT asignada por el autor de la llamada. Esta estructura contiene las opciones de selección. Las extensiones de archivo opcionales se incluyen después de QUERY_FILE_LAYOUT_INPUT.

  • InputBufferLength [in]: tamaño, en bytes, del búfer al que apunta el parámetro InputBuffer . El tamaño de InputBuffer debe ser al menos sizeof(QUERY_FILE_LAYOUT_INPUT) + (sizeof(Filter) * (NumberOfPairs - 1)), cuando NumberOfPairs> 0. De lo contrario, establezca InputBufferLength = sizeof(QUERY_FILE_LAYOUT_INPUT).

  • OutputBuffer [out]: puntero a una estructura de QUERY_FILE_LAYOUT_OUTPUT asignada por el autor de la llamada. Este es el encabezado de las entradas de diseño de archivo que siguen en este búfer.

  • OutputBufferLength [out]: tamaño, en bytes, del búfer al que apunta el parámetro OutputBuffer . El tamaño de OutputBuffer debe ser lo suficientemente grande como para contener un QUERY_FILE_LAYOUT_OUTPUT junto con el diseño de archivo y las estructuras de diseño de secuencia devueltas.

Bloque de estado

FltFsControlFile o ZwFsControlFile devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de estos valores:

Código Significado
STATUS_INVALID_PARAMETER El volumen del sistema de archivos no es un volumen de usuario abierto o un valor de longitud del búfer es incorrecto o se establece una opción de consulta no válida.
STATUS_ACCESS_DENIED El autor de la llamada no puede acceder al volumen del sistema de archivos.
STATUS_INVALID_USER_BUFFER El puntero de InputBuffer o OutputBuffer no está alineado correctamente.
STATUS_BUFFER_TOO_SMALL El valor de OutputBufferLength indica que OutputBuffer es demasiado pequeño para contener al menos una entrada de diseño.
STATUS_END_OF_FILE El puntero de InputBuffer o OutputBuffer no está alineado correctamente.

Comentarios

Para recuperar todas las entradas de diseño de un volumen, la solicitud de FSCTL_QUERY_FILE_LAYOUT se emite varias veces hasta que se devuelve STATUS_END_OF_FILE . Mientras se devuelve STATUS_SUCCESS , un autor de la llamada puede seguir enviando una solicitud de FSCTL_QUERY_FILE_LAYOUT para las entradas de diseño restantes.

La enumeración de entradas de diseño se puede reiniciar en cualquier momento mediante la inclusión de la marca QUERY_FILE_LAYOUT_RESTART en el miembro Flags de QUERY_FILE_LAYOUT_INPUT. Además, después de que FSCTL_QUERY_FILE_LAYOUT haya devuelto STATUS_END_OF_FILE, es necesario incluir la marca QUERY_FILE_LAYOUT_RESTART en la siguiente solicitud de FSCTL_QUERY_FILE_LAYOUT para comenzar otra enumeración de entrada de diseño.

ReFS no admite este código.

Requisitos

Tipo de requisito Requisito
Cliente mínimo compatible Windows 8.1 Update
Encabezado Ntifs.h (incluya Ntifs.h o Fltkernel.h)

Consulte también

QUERY_FILE_LAYOUT_INPUT

QUERY_FILE_LAYOUT_OUTPUT

FltFsControlFile

ZwFsControlFile