FSCTL_GET_RETRIEVAL_POINTERS IOCTL (winioctl.h)

Dado um identificador de arquivo, recupera uma estrutura de dados que descreve a alocação e o local no disco de um arquivo específico ou, dado um identificador de volume, os locais de clusters inválidos em um volume.

Para executar essa operação, chame a função DeviceIoControl com os parâmetros a seguir.

DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file, directory, or volume
  FSCTL_GET_RETRIEVAL_POINTERS,     // 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

A operação FSCTL_GET_RETRIEVAL_POINTERS recupera uma estrutura de dados de tamanho variável que descreve a alocação e o local no disco de um arquivo específico. A estrutura descreve o mapeamento entre números de cluster virtual (deslocamentos de VCN dentro do espaço de fluxo ou arquivo) e números de cluster lógico (deslocamentos de LCN dentro do espaço de volume).

O código de controle FSCTL_GET_RETRIEVAL_POINTERS tem suporte para operações de arquivo ou diretório em sistemas de arquivos NTFS, FAT, exFAT, UDF e ReFS.

Em sistemas de arquivos com suporte, a operação FSCTL_GET_RETRIEVAL_POINTERS retorna os locais de extensão de dados não residentes. Os dados residentes nunca têm locais de extensão.

O código de controle FSCTL_GET_RETRIEVAL_POINTERS também dá suporte à funcionalidade alternativa de localizar clusters inválidos. Para consultar os locais de clusters inválidos em um volume formatado com NTFS, FAT ou exFAT, use um identificador de volume como o parâmetro hDevice . Essa funcionalidade só tem suporte no NTFS, FAT e exFAT, e o chamador deve ter MANAGE_VOLUME_ACCESS permissão para o volume.

Para obter as implicações de E/S sobrepostas nessa operação, consulte a seção Comentários do tópico DeviceIoControl .

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