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

Consulte también

FILE_ALLOCATED_RANGE_BUFFER

FltFsControlFile

ZwFsControlFile