FSCTL_QUERY_ALLOCATED_RANGES IOCTL (ntifs.h)

FSCTL_QUERY_ALLOCATED_RANGES solicita uma verificação de um arquivo ou fluxo alternativo procurando intervalos de bytes que podem conter dados diferentes de zero e, em seguida, retorna informações sobre esses intervalos. Somente arquivos esparsos podem ter intervalos zerados conhecidos pelo sistema operacional. Para outros arquivos, o buffer de saída conterá apenas um único intervalo que contém o ponto de partida e o comprimento solicitado.

Código principal

FSCTL_QUERY_ALLOCATED_RANGES

Buffer de entrada

Ponteiro para uma estrutura FILE_ALLOCATED_RANGE_BUFFER que indica o intervalo a ser consultado para alocação.

Comprimento do buffer de entrada

Tamanho da estrutura de FILE_ALLOCATED_RANGE_BUFFER para a qual InputBuffer aponta, em bytes.

Buffer de saída

Ponteiro para uma matriz de zero ou mais FILE_ALLOCATED_RANGE_BUFFER elementos de dados nos quais os resultados da consulta são retornados. Veja a seguir para obter mais informações.

Comprimento do buffer de saída

Tamanho do buffer para o qual OutputBuffer aponta, em bytes.

Buffer de entrada/saída

n/d

Comprimento do buffer de entrada/saída

n/d

Bloco de status

Reservado para uso do sistema.

Comentários

Para executar essa operação, chame FltFsControlFile ou ZwFsControlFile com os parâmetros a seguir.

Parâmetro Descrição
Instância [in] Somente para FltFsControlFile . Um ponteiro de instância opaco para o chamador. Esse parâmetro é necessário e não pode ser NULL.
FileObject [in] Somente para FltFsControlFile . Um ponteiro de objeto de arquivo para o arquivo ou diretório que é o destino dessa solicitação. Esse parâmetro é necessário e não pode ser NULL.
FileHandle [in] Somente para ZwFsControlFile . Identificador de arquivo do arquivo ou diretório que é o destino dessa solicitação. Esse parâmetro é necessário e não pode ser NULL.
IoStatusBlock [out] Somente para ZwFsControlFile . Ponteiro para uma estrutura IO_STATUS_BLOCK que contém o status final da solicitação.
FsControlCode [in] Defina como FSCTL_QUERY_ALLOCATED_RANGES.
Inputbuffer [in] Ponteiro para uma estrutura FILE_ALLOCATED_RANGE_BUFFER que indica o intervalo a ser consultado para alocação.
InputBufferLength [in] Tamanho do buffer para o qual InputBuffer aponta, em bytes.
OutputBuffer [out] Ponteiro para uma matriz de zero ou mais FILE_ALLOCATED_RANGE_BUFFER elementos de dados nos quais os resultados da consulta são retornados. Veja a seguir para obter mais informações.
OutputBufferLength [out] Tamanho do buffer para o qual OutputBuffer aponta, em bytes.
LengthReturned [out] Ponteiro para uma variável alocada pelo chamador que recebe o tamanho em bytes das informações retornadas no buffer em OutputBuffer.

FSCTL_QUERY_ALLOCATED_RANGES retorna uma matriz de zero ou mais elementos de dados FILE_ALLOCATED_RANGE_BUFFER no buffer para o qual OutputBuffer aponta. O número de elementos FILE_ALLOCATED_RANGE_BUFFER retornados é calculado dividindo o valor retornado em LengthReturned por sizeof(FILE_ALLOCATED_RANGE_BUFFER). Os intervalos retornados devem interseccionar o intervalo especificado em InputBuffer. Zero FILE_ALLOCATED_RANGE_BUFFER elementos de dados são retornados quando o arquivo não tem intervalos alocados.

Valores retornados

FSCTL_QUERY_ALLOCATED_RANGES retorna STATUS_SUCCESS após a conclusão bem-sucedida; caso contrário, retornará um código de erro. Os códigos de erro comuns seguem.

Código do erro Significado
STATUS_INVALID_PARAMETER Um parâmetro é inválido. Por exemplo: o identificador não é para um arquivo; o tamanho de InputBuffer é menor que o tamanho de uma estrutura FILE_ALLOCATED_RANGE_BUFFER ; FileOffset é menor que zero; O comprimento é menor que zero; ou FileOffset mais Length é maior que 0x7FFFFFFFFFFFFFFF.
STATUS_INVALID_USER_BUFFER O buffer de entrada ou buffer de saída não está alinhado a um limite de 4 bytes.
STATUS_BUFFER_TOO_SMALL O buffer de saída é muito pequeno para conter uma estrutura FILE_ALLOCATED_RANGE_BUFFER .
STATUS_BUFFER_OVERFLOW O buffer de saída é muito pequeno para conter o número necessário de estruturas de FILE_ALLOCATED_RANGE_BUFFER .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000
Cabeçalho ntifs.h

Confira também

FILE_ALLOCATED_RANGE_BUFFER

FltFsControlFile

ZwFsControlFile