Compartir a través de


Seguimiento de vínculos distribuidos e identificadores de objeto

El almacenamiento de una referencia a un archivo o directorio mediante su ruta de acceso y nombre de archivo no es fiable. Si un usuario cambia el nombre de un archivo, interrumpe los vínculos al archivo. Si un usuario cambia el nombre del directorio, interrumpe los vínculos al archivo y todos los archivos y subdirectorios del árbol de directorios.

El servicio de seguimiento de vínculos distribuido permite a las aplicaciones cliente realizar un seguimiento de los orígenes de vínculos que se han movido. Los clientes que se suscriben al servicio de seguimiento de vínculos pueden mantener la integridad de sus referencias y los objetos se pueden realizar un seguimiento de una manera transparente para el usuario.

Identificadores de objeto

El servicio de seguimiento de vínculos mantiene su vínculo a un objeto mediante un identificador de objeto (ID). Un identificador de objeto es un atributo opcional que identifica de forma única un archivo o directorio en un volumen.

En el volumen se almacena un índice de todos los identificadores de objeto. Las operaciones de cambio de nombre, copia de seguridad y restauración conservan los identificadores de objeto. Sin embargo, las operaciones de copia no conservan los identificadores de objeto, ya que eso infringiría su exclusividad.

Puedes realizar las siguientes operaciones en identificadores de objeto:

  • Creación
  • Eliminación
  • Consultar

Al crear un identificador de objeto, establezca la identidad del archivo en el servicio de seguimiento de vínculos. Por el contrario, al eliminar un identificador de objeto, el servicio de seguimiento de vínculos deja de mantener vínculos al archivo. Para obtener una lista de los códigos de control del sistema de archivos que realizan operaciones en identificadores de objeto, consulte Códigos de control de administración de archivos.

El servicio de seguimiento de vínculos distribuido realiza un seguimiento de los orígenes de vínculos para los accesos directos de shell y los vínculos OLE dentro de los volúmenes del sistema de archivos NTFS. El cliente de vínculo puede corregir un vínculo roto con información actualizada sobre la nueva ubicación del origen del vínculo.

Los métodos abreviados de shell incluyen el seguimiento de vínculos heurísticos que usa un algoritmo de búsqueda de árbol para buscar una coincidencia para un origen de vínculo movido. El algoritmo de búsqueda se basa en la última ruta de acceso conocida del archivo y la información de archivo que incluye la fecha de creación, el tamaño del archivo y el nombre de archivo y la extensión.

La vinculación OLE incluye el mismo seguimiento de vínculos heurísticos. Windows también incluye el mismo seguimiento de vínculos heurísticos con algunas mejoras adicionales para buscar espacios de nombres para producir resultados en algunos escenarios comunes. Las mejoras incluyen el siguiente procedimiento que depende de los límites de tiempo impuestos por una aplicación cliente.

Para buscar espacios de nombres

  1. Busque cuatro niveles de directorio desde el último directorio.
  2. Suba un directorio y repita los pasos 1 y 2 otras tres veces, lo cual puede producir resultados si el objeto se ha movido cerca.
  3. Busque cuatro niveles desde la raíz del escritorio, lo cual puede producir resultados si el objeto se ha movido a una ubicación en el mismo escritorio.
  4. Busque cuatro niveles desde la raíz en cada unidad fija local.
  5. Repita los pasos del 1 al 3 sin el límite de cuatro directorios.

Nota:

Estos esquemas de seguimiento de vínculos son transparentes para el usuario final. Sin embargo, no siempre producen resultados positivos y pueden llevar mucho tiempo.

 

Para obtener más información sobre los métodos abreviados de shell, consulte IShellLink.

Para obtener más información acerca de los vínculos OLE, consulte IOleLink.

Si se realiza un vínculo a un archivo en NTFS 3.0 o posterior, y el archivo se mueve a cualquier otro volumen con NTFS 3.0 o posterior dentro del mismo dominio, el servicio de seguimiento puede encontrar el archivo, sujeto a consideraciones de tiempo. Además, si el archivo se mueve fuera del dominio o dentro de un grupo de trabajo, se encuentra.

Para obtener la versión NTFS de un volumen, abra un símbolo del sistema con derechos de acceso de administrador y ejecute el siguiente comando:

fsutil fsinfo ntfsinfo X:

donde X es la letra de unidad del volumen.

Cuando se crea un vínculo a un archivo, el archivo de destino se considera el origen del vínculo y el creador del vínculo es el cliente del vínculo. Por ejemplo, si se crea un acceso directo de shell para vincular a un documento de texto, el documento de texto es el origen del vínculo y el acceso directo del shell es el cliente del vínculo.

El servicio de seguimiento de vínculos distribuidos mantiene vínculos de archivo para las siguientes situaciones que se producen dentro de un dominio:

  • El archivo de origen del vínculo se mueve de un volumen de sistema de archivos NTFS a otro dentro del mismo dominio.
  • Se cambia el nombre del equipo que contiene el origen del vínculo.
  • Se cambian los recursos compartidos de red en el equipo de origen del vínculo.
  • El volumen que contiene el archivo de origen del vínculo se mueve a otro equipo dentro del mismo dominio.

El servicio de seguimiento de vínculos distribuidos también intenta mantener vínculos en las situaciones anteriores incluso cuando no se producen dentro de un dominio, es decir, son entre dominios o dentro de un grupo de trabajo. Los vínculos siempre se pueden mantener en estas situaciones cuando se cambia el recurso compartido de red en el equipo de origen del vínculo. También se pueden mantener cuando se mueve un origen de vínculo dentro de un equipo. Normalmente, los vínculos se pueden mantener cuando el origen del vínculo se mueve a otro equipo, pero esta forma de seguimiento es menos confiable a lo largo del tiempo.

La funcionalidad de seguimiento de vínculos se implementa principalmente en forma de los dos servicios del sistema siguientes:

  • Cliente de seguimiento de vínculos distribuidos.
  • Servidor de seguimiento de vínculos distribuidos

Cliente de seguimiento de vínculos distribuidos.

El cliente de seguimiento de vínculos distribuidos se ejecuta en todos los equipos y administra las actividades de seguimiento de vínculos de ese equipo. Estas actividades incluyen la búsqueda de orígenes de vínculos y el procesamiento de movimientos de orígenes de vínculo. Cuando se mueve un origen de vínculo, el servicio pasa información al servidor de seguimiento de vínculos distribuidos que se ejecuta en controladores de dominio.

Servidor de seguimiento de vínculos distribuidos

El servidor de seguimiento de vínculos distribuidos se ejecuta en cada controlador de dominio de un dominio. El servicio acepta notificaciones de archivos y volúmenes que se mueven del servicio de seguimiento en un equipo y permite al cliente de seguimiento de vínculos distribuidos consultar la ubicación actual de un origen de vínculo.

Este servicio de servidor mantiene información en los controladores de dominio sobre volúmenes y archivos que se han movido. La información sobre los movimientos no puede aumentar más allá de un tamaño específico y se quita automáticamente si se vuelve innecesaria.

Los servicios de seguimiento de vínculos se exponen mediante las interfaces IShellLink e IOleLink. Por tanto, los usan los métodos abreviados de shell. Cuando se llama al método IShellLink::Resolve y no se encuentra el archivo de referencia, por ejemplo, cuando el usuario activa un acceso directo de shell, se llama automáticamente al servicio de seguimiento para encontrar el archivo. Del mismo modo, cuando la implementación de IOleLink no encuentra un archivo, por ejemplo, en su método BindToSource, llama automáticamente al servicio de seguimiento.

Los servicios de seguimiento de vínculos distribuidos solo están disponibles en el sistema de archivos NTFS y solo están disponibles para orígenes de vínculos en NTFS 3.0 o posterior. Por tanto, si un origen de vínculo se mueve a un volumen del sistema de archivos FAT, se pierde la información de seguimiento. Además, si un origen de vínculo se mueve entre NTFS 3.0 o posterior, pero el equipo que realiza el movimiento ejecuta una versión anterior de Windows, se pierde la información de seguimiento de vínculos. Cuando se pierde la información de seguimiento de vínculos, no se hace ningún daño en el propio archivo de origen del vínculo, simplemente no es rastreable por los servicios de seguimiento de vínculos distribuidos.

Para obtener la versión NTFS de un volumen, abra un símbolo del sistema con derechos de acceso de administrador y ejecute el siguiente comando:

fsutil fsinfo ntfsinfo X:

donde X es la letra de unidad del volumen.

No se mantienen vínculos a archivos en medios extraíbles. Además, el servicio de seguimiento no reconoce un nuevo volumen del sistema de archivos NTFS hasta que se vuelva a arrancar el sistema. Un nuevo volumen podría estar disponible debido a la nueva creación de particiones, al volver a formatear un volumen del sistema de archivos FAT al sistema de archivos NTFS o conectar una nueva unidad externa.