FSCTL_GET_NTFS_FILE_RECORD IOCTL (winioctl.h)
Recupera o primeiro registro de arquivo que está em uso e tem um valor ordinal menor ou igual ao número de referência de arquivo solicitado.
Para executar essa operação, chame a função DeviceIoControl com os parâmetros a seguir.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
FSCTL_GET_NTFS_FILE_RECORD, // 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
Esse código de controle enumera identificadores de arquivo de maneira descendente e sempre retorna um registro de arquivo que está em uso. Isso significa que o identificador de arquivo retornado por esse código de controle pode não ser o mesmo que o identificador de arquivo especificado no buffer de entrada. Por exemplo, se os identificadores de arquivo 1 a 9 e 15 estiverem em uso, os identificadores de arquivo de 10 a 14 não estiverem em uso e o registro de arquivo correspondente ao identificador de arquivo 15 for solicitado, esse registro de arquivo será retornado.
Se os registros de arquivo que correspondem aos identificadores de arquivo de 10 a 14 forem solicitados, o registro de arquivo correspondente ao identificador de arquivo 9 será retornado. Se qualquer um dos registros de arquivo correspondentes aos identificadores de arquivo 1 a 9 for solicitado, esses registros de arquivo serão retornados.
Para determinar o tamanho correto do buffer de saída apontado por lpOutBuffer, primeiro chame o código de controle FSCTL_GET_NTFS_VOLUME_DATA para obter o tamanho de um registro de arquivo. Esse é o valor do membro BytesPerFileRecordSegment da estrutura de NTFS_VOLUME_DATA_BUFFER retornada. Em seguida, defina o tamanho do buffer de saída para a seguinte expressão:
sizeof (NTFS_FILE_RECORD_OUTPUT_BUFFER) + sizeof (one file record) - 1
Se um arquivo consistir em vários registros de arquivo, ele deverá ser recuperado individualmente.
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 |
ReFS (Sistema de Arquivos Resiliente) | No |
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) |