FSCTL_REARRANGE_FILE IOCTL (ntifs.h)
FSCTL_REARRANGE_FILE reorganiza a alocação dentro do arquivo, movendo clusters de um intervalo de origem contíguo solicitado dentro de um arquivo para outro local dentro do mesmo arquivo.
Código principal
Buffer de entrada
Ponteiro para uma estrutura de REARRANGE_FILE_DATA que descreve a alocação a ser reorganizada. (Para chamadores de 32 bits, o buffer de entrada é um ponteiro para uma estrutura de REARRANGE_FILE_DATA32.)
Comprimento do buffer de entrada
Tamanho em bytes do buffer de entrada.
Buffer de saída
Nenhum; definido como NULL.
Comprimento do buffer de saída
Definido como zero.
Bloco de status
Valores retornados
FSCTL_REARRANGE_FILE retorna STATUS_SUCCESS após a conclusão bem-sucedida; caso contrário, ele retorna um código NTSTATUS, como um dos seguintes.
Código de retorno | Significado |
---|---|
STATUS_ACCESS_DENIED | Somente chamadas no modo kernel são permitidas. |
STATUS_BUFFER_TOO_SMALL | O comprimento do buffer de entrada especificado é menor que sizeof(REARRANGE_FILE_DATA). |
STATUS_PENDING | A conclusão da operação está pendente. |
Observações
Parâmetros de solicitação contêm deslocamentos de bytes de arquivo de origem e de destino e comprimento em bytes da região de origem a serem movidos, todos os quais devem ser alinhados ao cluster.
- Se estiver movendo clusters para baixo, o deslocamento do arquivo de destino indicará o ponto no qual o limite inferior do intervalo de origem móvel deve ser alinhado.
- Se mover clusters para cima, o deslocamento do arquivo de destino indicará o ponto no qual o limite superior do intervalo de origem deve ser alinhado.
Em ambos os casos, o deslocamento de destino indica que o intervalo de origem deve ser inserido antes do cluster que começa no deslocamento de destino, sendo a distinção forçada pela restrição de que o tamanho da alocação permanece fixo.
Ao contrário de FSCTL_SHUFFLE_FILE, FSCTL_REARRANGE_FILE não permite adicionar alocações que contêm dados aleatórios.
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_REARRANGE_FILE. |
InputBuffer | [in] Consulte os parâmetros IOCTL. |
InputBufferLength | [in] Consulte os parâmetros IOCTL. |
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 10, versão 1809 |
cabeçalho | ntifs.h |
Consulte também