FSCTL_SHRINK_VOLUME IOCTL (winioctl.h)
Sinaliza que o volume deve estar preparado para executar a operação de redução, a operação de redução deve ser confirmada ou a operação de redução deve ser encerrada.
Para executar essa operação, chame a função DeviceIoControl com os parâmetros a seguir.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
FSCTL_SHRINK_VOLUME, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
nInBufferSize, // size of input buffer
NULL, // output buffer
O, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Comentários
Esse código de controle só tem suporte em sistemas de arquivos NTFS e RAW.
Para concluir uma operação de redução, você deve:
- Chame CreateFile para abrir um identificador para o volume.
- Chame FSCTL_SHRINK_VOLUME. Defina o membro ShrinkRequestType da estrutura SHRINK_VOLUME_INFORMATION como ShrinkPrepare. Defina o membro NewNumberOfSectors da mesma estrutura como zero. Se essa chamada for bem-sucedida, o sistema de arquivos não alocará clusters além do final do novo comprimento do volume.
- Chame FSCTL_MOVE_FILE em todos os arquivos além do novo número de setores e mova-os dentro do intervalo válido. Você é responsável por mover todos os arquivos afetados pela operação de redução.
- Chame FSCTL_SHRINK_VOLUME. Defina o membro ShrinkRequestType da estrutura SHRINK_VOLUME_INFORMATION como ShrinkCommit. Defina o membro NewNumberOfSectors da mesma estrutura como zero. Se todos os arquivos além do final do novo tamanho do volume não tiverem sido movidos, a chamada falhará com STATUS_ALREADY_COMMITTED (ERROR_ACCESS_DENIED). Caso contrário, o sistema de arquivos agora foi reduzido.
- Chame IOCTL_DISK_GROW_PARTITION. Defina o membro BytesToGrow da estrutura DISK_GROW_PARTITION como o número negativo que representa o número de bytes a serem removidos.
Em Windows 8 e Windows Server 2012, esse código é compatível com as tecnologias a seguir.
Tecnologia | Com suporte |
---|---|
Protocolo SMB (SMB) 3.0 | No |
TFO (Failover transparente) do SMB 3.0 | No |
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) | No |
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) | Ver comentário |
Só há suporte no nó que tem NTFS montado.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho | winioctl.h (inclua Windows.h) |