FSCTL_GET_VOLUME_BITMAP IOCTL (winioctl.h)
Recupera um bitmap de clusters ocupados e disponíveis em um volume.
Para executar essa operação, chame a função DeviceIoControl com os parâmetros a seguir.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to volume
FSCTL_GET_VOLUME_BITMAP, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
(LPVOID) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Comentários
O código de controle FSCTL_GET_VOLUME_BITMAP recupera uma estrutura de dados que descreve o estado de alocação de cada cluster no sistema de arquivos do LCN inicial solicitado para o último cluster no volume. O bitmap usa um bit para representar cada cluster:
- O valor 1 indica que o cluster está alocado (em uso).
- O valor 0 indica que o cluster não está alocado (gratuito).
Observe que o bitmap representa um ponto no tempo e pode estar incorreto assim que tiver sido lido se o volume tiver atividade de gravação. Portanto, é possível tentar mover um cluster para um cluster alocado, apesar de um bitmap recente indicando que o cluster não está alocado. Os programas que usam a função DeviceIoControl com o código de controle FSCTL_MOVE_FILE devem estar preparados para essa possibilidade.
O identificador usado aqui deve ser um identificador de volume e foi aberto com qualquer acesso. Observe que somente administradores podem abrir identificadores de volume.
O LCN inicial no buffer de entrada pode ser arredondado para baixo antes que o bitmap seja calculado. O limite de arredondamento depende do sistema de arquivos.
Para obter as implicações de E/S sobrepostas nessa operação, consulte a seção Comentários do tópico DeviceIoControl .
Essa operação alinha o bitmap que retorna em um limite de página.
Windows Server 2003 e Windows XP: Essa operação alinha o bitmap que retorna em um limite de bytes.
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) | Sim |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | winioctl.h (inclua Windows.h) |