FSCTL_SET_OBJECT_ID_EXTENDED IOCTL (winioctl.h)

Modifica los datos de usuario asociados al identificador de objeto del archivo o directorio especificados.

Para realizar esta operación, llame a la función DeviceIoControl con los siguientes parámetros.

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
);

Comentarios

Los identificadores de objeto se usan para realizar un seguimiento de archivos y directorios. Son invisibles para la mayoría de las aplicaciones y nunca deben ser modificadas por las aplicaciones. La modificación de un identificador de objeto puede provocar la pérdida de datos de partes de un archivo, hasta y hasta volúmenes completos de datos.

Esta operación establece los datos de usuario solo en el identificador de objeto. Los posibles usos son almacenar una marca de tiempo para la creación del identificador de objeto o un número de versión que aumenta de forma monotónica. Se omite el miembro ObjectId de la estructura FILE_OBJECTID_BUFFER . No hay ningún mecanismo para modificar el miembro ObjectId . El uso típico del código de control de FSCTL_SET_OBJECT_ID_EXTENDED es donde la aplicación no usa los datos de usuario generados por el sistema de archivos NTFS cuando el sistema crea el identificador de objeto.

Para establecer el identificador de objeto en un objeto que aún no tiene uno, use el código de control FSCTL_SET_OBJECT_ID . Para que el sistema de archivos NTFS genere un identificador de objeto si no existe uno, use el código de control FSCTL_CREATE_OR_GET_OBJECT_ID .

Tenga en cuenta que es posible que las marcas de tiempo no se actualicen correctamente para un archivo remoto. Para garantizar resultados coherentes, use E/S sin búfer.

En Windows 8 y Windows Server 2012, este código es compatible con las siguientes tecnologías.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS) No

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado winioctl.h (incluya Windows.h)

Consulte también