FSCTL_QUERY_ALLOCATED_RANGES IOCTL (ntifs.h)
FSCTL_QUERY_ALLOCATED_RANGES solicita un examen de un archivo o una secuencia alternativa que busca 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 ceros conocidos para el sistema operativo. En el caso de 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 FILE_ALLOCATED_RANGE_BUFFER elementos de datos en los que se devuelven los resultados de la consulta. Para obtener más información, vea lo siguiente.
Longitud del búfer de salida
Tamaño del búfer al que OutputBuffer apunta, en bytes.
Búfer de entrada y salida
N/D
Longitud del búfer de entrada y salida
N/D
Bloque de estado
Reservado para uso del sistema.
Comentarios
Para realizar esta operación, llame a FltFsControlFile o ZwFsControlFile con los parámetros siguientes.
Parámetro | Descripción |
---|---|
Instancia | [in] Solo para FltFsControlFile . Puntero de instancia opaco para el autor de la llamada. Este parámetro es obligatorio y no puede ser NULL. |
FileObject | [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 obligatorio y no puede ser NULL. |
FileHandle | [in] Solo para ZwFsControlFile . Identificador de archivo del archivo o directorio que es el destino de esta solicitud. Este parámetro es obligatorio y no puede ser NULL. |
IoStatusBlock | [out] Solo para ZwFsControlFile . Puntero a una estructura de 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 InputBuffer apunta, en bytes. |
OutputBuffer | [out] Puntero a una matriz de cero o más FILE_ALLOCATED_RANGE_BUFFER elementos de datos en los que se devuelven los resultados de la consulta. Para obtener más información, vea lo siguiente. |
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 FILE_ALLOCATED_RANGE_BUFFER elementos de datos en el búfer al que OutputBuffer apunta. 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. Los elementos de datos FILE_ALLOCATED_RANGE_BUFFER cero se devuelven cuando el archivo no tiene intervalos asignados.
Valores devueltos
FSCTL_QUERY_ALLOCATED_RANGES devuelve STATUS_SUCCESS tras completarse correctamente; de lo contrario, devuelve un código de error. Siguen los códigos de error comunes.
Código de error | Significado |
---|---|
STATUS_INVALID_PARAMETER | Si se devuelve este valor, significará que el parámetro en cuestión 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; La longitud es menor que cero; o FileOffset más Length 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 de 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 | Value |
---|---|
Cliente mínimo compatible | Windows 2000 |
Encabezado | ntifs.h |