Compartilhar via


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)

Confira também