Compartir a través de


FSCTL_QUERY_ALLOCATED_RANGES IOCTL (ntifs.h)

FSCTL_QUERY_ALLOCATED_RANGES solicita un examen de un archivo o una secuencia de alternativa buscar intervalos de bytes que pueden contener datos distintos de cero y, a continuación, devolver información sobre esos intervalos. Solo los archivos dispersos pueden tener intervalos de ceros conocidos para el sistema operativo. Para otros archivos, el búfer de salida solo contendrá un único intervalo que contenga el punto inicial y la longitud solicitada.

Código principal

FSCTL_QUERY_ALLOCATED_RANGES

Búfer de entrada

Puntero a una estructura de FILE_ALLOCATED_RANGE_BUFFER que indica el intervalo que se va a consultar para la asignación.

Longitud del búfer de entrada

Tamaño de la estructura de FILE_ALLOCATED_RANGE_BUFFER a la que inputBuffer apunta, en bytes.

Búfer de salida

Puntero a una matriz de cero o más elementos de datos FILE_ALLOCATED_RANGE_BUFFER en los que se devuelven los resultados de la consulta. Consulte a continuación para obtener más información.

Longitud del búfer de salida

Tamaño del búfer al que outputBuffer apunta, en bytes.

Búfer de entrada y salida

n/a

Longitud del búfer de entrada y salida

n/a

Bloque de estado

Reservado para uso del sistema.

Observaciones

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

Parámetro Descripción
instancia de [in] Solo para FltFsControlFile. Puntero de instancia opaco para el autor de la llamada. Este parámetro es necesario y no puede ser NULL.
FileObject de [in] Solo para FltFsControlFile. Puntero de objeto de archivo para el archivo o directorio que es el destino de esta solicitud. Este parámetro es necesario y no puede ser NULL.
FileHandle de [in] Solo para ZwFsControlFile. Identificador de archivo del archivo o directorio que es el destino de esta solicitud. Este parámetro es necesario y no puede ser NULL.
IoStatusBlock [out] Solo para ZwFsControlFile. Puntero a una estructura IO_STATUS_BLOCK que contiene el estado final de la solicitud.
FsControlCode [in] Establezca en FSCTL_QUERY_ALLOCATED_RANGES.
InputBuffer [in] Puntero a una estructura de FILE_ALLOCATED_RANGE_BUFFER que indica el intervalo que se va a consultar para la asignación.
InputBufferLength [in] Tamaño del búfer al que apunta InputBuffer, en bytes.
OutputBuffer [out] Puntero a una matriz de cero o más elementos de datos FILE_ALLOCATED_RANGE_BUFFER en los que se devuelven los resultados de la consulta. Consulte a continuación para obtener más información.
OutputBufferLength [out] Tamaño del búfer al que outputBuffer apunta, en bytes.
LengthReturned [out] Puntero a una variable asignada por el autor de la llamada que recibe el tamaño en bytes de la información devuelta en el búfer en OutputBuffer.

FSCTL_QUERY_ALLOCATED_RANGES devuelve una matriz de cero o más elementos de datos FILE_ALLOCATED_RANGE_BUFFER en el búfer al que apunta OutputBuffer. El número de elementos FILE_ALLOCATED_RANGE_BUFFER devueltos se calcula dividiendo el valor devuelto en LengthReturned por sizeof(FILE_ALLOCATED_RANGE_BUFFER). Los intervalos devueltos deben intersecr el intervalo especificado en InputBuffer. Se devuelven cero FILE_ALLOCATED_RANGE_BUFFER elementos de datos cuando el archivo no tiene intervalos asignados.

Valores devueltos

FSCTL_QUERY_ALLOCATED_RANGES devuelve STATUS_SUCCESS tras la finalización correcta; de lo contrario, devuelve un código de error. A continuación se siguen los códigos de error comunes.

Código de error Significado
STATUS_INVALID_PARAMETER Un parámetro no es válido. Por ejemplo: el identificador no es para un archivo; el tamaño de InputBuffer es menor que el tamaño de una estructura de FILE_ALLOCATED_RANGE_BUFFER; FileOffset es menor que cero; longitud es menor que cero; o FileOffset más longitud es mayor que 0x7FFFFFFFFFFFFFFF.
STATUS_INVALID_USER_BUFFER El búfer de entrada o el búfer de salida no se alinean con un límite de 4 bytes.
STATUS_BUFFER_TOO_SMALL El búfer de salida es demasiado pequeño para contener una estructura FILE_ALLOCATED_RANGE_BUFFER.
STATUS_BUFFER_OVERFLOW El búfer de salida es demasiado pequeño para contener el número necesario de estructuras de FILE_ALLOCATED_RANGE_BUFFER.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000
encabezado de ntifs.h

Consulte también

FILE_ALLOCATED_RANGE_BUFFER

fltFsControlFile de

ZwFsControlFile