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 não zero e, em seguida, retornar informações sobre esses intervalos. Somente arquivos esparsos podem ter intervalos zero conhecidos pelo sistema operacional. Para outros arquivos, o buffer de saída conterá apenas um único intervalo que contém o ponto inicial e o comprimento solicitado.
Código principal
FSCTL_QUERY_ALLOCATED_RANGES
Buffer de entrada
Ponteiro para uma estrutura de 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 que InputBuffer aponta para, em bytes.
Buffer de saída
Ponteiro para uma matriz de zero ou mais elementos de dados FILE_ALLOCATED_RANGE_BUFFER em que os resultados da consulta são retornados. Veja abaixo para obter mais informações.
Comprimento do buffer de saída
Tamanho do buffer que OutputBuffer aponta para, em bytes.
Buffer de entrada/saída
n/a
Comprimento do buffer de entrada/saída
n/a
Bloco de status
Reservado para uso do sistema.
Observações
Para executar essa operação, chame FltFsControlFile ou ZwFsControlFile com os parâmetros a seguir.
Parâmetro | Descrição |
---|---|
da Instância de |
[in] Para FltFsControlFile. Um ponteiro de instância opaco para o chamador. Esse parâmetro é necessário e não pode ser NULL. |
FileObject | [in] 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. |
|
[in] Para ZwFsControlFile. Identificador de arquivo do arquivo ou diretório que é o destino desta solicitação. Esse parâmetro é necessário e não pode ser NULL. |
IoStatusBlock | [out] Para ZwFsControlFile. Ponteiro para uma estrutura IO_STATUS_BLOCK que contém o status final da solicitação. |
FsControlCode | [in] Definido como FSCTL_QUERY_ALLOCATED_RANGES. |
InputBuffer | [in] Ponteiro para uma estrutura de FILE_ALLOCATED_RANGE_BUFFER que indica o intervalo a ser consultado para alocação. |
InputBufferLength | [in] Tamanho do buffer que InputBuffer aponta para, em bytes. |
OutputBuffer | [out] Ponteiro para uma matriz de zero ou mais elementos de dados FILE_ALLOCATED_RANGE_BUFFER em que os resultados da consulta são retornados. Veja abaixo para obter mais informações. |
OutputBufferLength |
[out] Tamanho do buffer que OutputBuffer aponta para, em bytes. |
LengthReturned | [out] Ponteiro para uma variável alocada por 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 é computado dividindo o valor retornado em LengthReturned por sizeof(FILE_ALLOCATED_RANGE_BUFFER)
. Os intervalos retornados devem cruzar o intervalo especificado no InputBuffer. Zero elementos de dados FILE_ALLOCATED_RANGE_BUFFER 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, ele retorna um código de erro. Os códigos de erro comuns seguem.
Código de 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 de FILE_ALLOCATED_RANGE_BUFFER; FileOffset é menor que zero; 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 |
---|---|
de cliente com suporte mínimo | Windows 2000 |
cabeçalho | ntifs.h |
Consulte também