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. |
|
[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
fltFsControlFile de