FSCTL_SET_OBJECT_ID_EXTENDED IOCTL (winioctl.h)
Modifica os dados do usuário associados ao identificador de objeto para o arquivo ou diretório especificado.
Para executar essa operação, chame a função DeviceIoControl com os parâmetros a seguir.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
FSCTL_SET_OBJECT_ID_EXTENDED, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
NULL, // lpOutBuffer
0, // nOutBufferSize
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Comentários
Os identificadores de objeto são usados para rastrear arquivos e diretórios. Eles são invisíveis para a maioria dos aplicativos e nunca devem ser modificados por aplicativos. Modificar um identificador de objeto pode resultar na perda de dados de partes de um arquivo, até e incluindo volumes inteiros de dados.
Essa operação define os dados do usuário somente no identificador de objeto. Os possíveis usos são armazenar um carimbo de data/hora para a criação do identificador de objeto ou um número de versão de aumento monotonicamente. O membro ObjectId da estrutura FILE_OBJECTID_BUFFER é ignorado. Não há mecanismo para modificar o membro ObjectId . O uso típico do código de controle FSCTL_SET_OBJECT_ID_EXTENDED é onde o aplicativo não usa os dados do usuário gerados pelo sistema de arquivos NTFS quando o sistema cria o identificador de objeto.
Para definir o identificador de objeto em um objeto que ainda não tem um, use o código de controle FSCTL_SET_OBJECT_ID . Para que o sistema de arquivos NTFS gere um identificador de objeto se não existir, use o código de controle FSCTL_CREATE_OR_GET_OBJECT_ID .
Observe que os carimbos de data/hora podem não ser atualizados corretamente para um arquivo remoto. Para garantir resultados consistentes, use E/S sem cofres.
No Windows 8 e no Windows Server 2012, esse código é compatível com as tecnologias a seguir.
Tecnologia | Com suporte |
---|---|
Protocolo SMB (SMB) 3.0 | Sim |
TFO (Failover transparente) do SMB 3.0 | Sim |
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) | Sim |
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) | Sim |
ReFS (Sistema de Arquivos Resiliente) | Não |
Requisitos
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) |