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) |