Compartir a través de


Función NetDfsMove (lmdfs.h)

Cambia el nombre o mueve un vínculo DFS.

Sintaxis

NET_API_STATUS NET_API_FUNCTION NetDfsMove(
  [in] LPWSTR OldDfsEntryPath,
  [in] LPWSTR NewDfsEntryPath,
  [in] ULONG  Flags
);

Parámetros

[in] OldDfsEntryPath

Puntero a una cadena que especifica la ruta de acceso de origen para la operación de traslado. Este valor debe ser un vínculo DFS o el prefijo de ruta de acceso de cualquier vínculo DFS en el espacio de nombres DFS.

[in] NewDfsEntryPath

Puntero a una cadena que especifica la ruta de acceso de destino para la operación de traslado. Este valor debe ser una ruta de acceso o un vínculo DFS en el mismo espacio de nombres DFS.

[in] Flags

Conjunto de marcas que describen las acciones que se deben realizar al mover el vínculo.

DFS_MOVE_FLAG_REPLACE_IF_EXISTS (0x00000001)

Si la ruta de acceso de destino ya es un vínculo DFS existente, reemplácela como parte de la operación de traslado.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es NERR_Success.

Si se produce un error en la función, el valor devuelto es un código de error del sistema. Para obtener una lista de códigos de error, consulte Códigos de error del sistema.

Comentarios

La función NetDfsMove mueve convenientemente un vínculo de un nombre antiguo a uno nuevo. En el pasado, ha sido necesario realizar la acción no trivial de eliminar un vínculo incorrecto o antiguo y crear uno nuevo, lo que resulta complicado cuando el vínculo tiene un número significativo de destinos o tiene propiedades por destino (como prioridad). También es habitual que los administradores cambien el nombre o muevan vínculos con regularidad.

Las rutas de acceso DFS proporcionadas a NetDfsMove pueden ser un vínculo DFS real o simplemente un prefijo de ruta de acceso de vínculo DFS. No se permiten caracteres comodín y solo se pueden especificar rutas de acceso absolutas. No se permiten rutas de acceso relativas y sintaxis de nombre de ruta de acceso especial (como "." o "..").

Cuando se especifica un prefijo de ruta de acceso de vínculo DFS en lugar de una ruta de acceso DFS completa, la operación de traslado se realiza en todos los vínculos DFS que contienen ese prefijo. Por lo tanto, una sola llamada a NetDfsMove puede "mover" varios vínculos. Sin embargo, el prefijo de ruta de acceso debe resolverse en al menos un vínculo DFS válido o se producirá un error en la operación de traslado.

En los ejemplos siguientes se muestran diferentes operaciones de movimiento y los resultados.

    • Ruta de acceso antigua: \\MyDfsServer\MyDfsShare\dir1\dir2\link1
    • Nueva ruta de acceso: \\MyDfsServer\MyDfsShare\dir1\dir2\link2
    Después del movimiento, \\MyDfsServer\MyDfsShare\dir1\dir2\link1 se reemplaza por \\MyDfsServer\MyDfsShare\dir1\dir2\link2.
    • Ruta de acceso antigua: \\MyDfsServer\MyDfsShare\dir1\dir2\link1
    • Nueva ruta de acceso: \\MyDfsServer\MyDfsShare\dir3\dir4\dir5\link2
    Después del movimiento, \\MyDfsServer\MyDfsShare\dir1\dir2\link1 se reemplaza por \\MyDfsServer\MyDfsShare\dir3\dir4\dir5\link2. Tenga en cuenta que se ha cambiado el nombre de los componentes hoja y no hoja y que el número de componentes de la nueva ruta de acceso ha cambiado.
    • Ruta de acceso antigua: \\MyDfsServer\MyDfsShare\dir1
    • Nueva ruta de acceso: \\MyDfsServer\MyDfsShare\dir3
    Después del movimiento, todos los vínculos con el prefijo \\MyDfsServer\MyDfsShare\dir1 tienen ese prefijo reemplazado por \\MyDfsServer\MyDfsShare\dir3. Por lo tanto, \\MyDfsServer\MyDfsShare\dir1\dir2\link1 y \\MyDfsServer\MyDfsShare\dir1\dir2\link2 son ahora \\MyDfsServer\MyDfsShare\dir3\dir2\link1 y \\MyDfsServer\MyDfsShare\dir3\dir2\link1, respectivamente.
    • Ruta de acceso antigua: \\MyDfsServer\MyDfsShare\dir1
    • Nueva ruta de acceso: \\MyDfsServer\MyDfsShare
    Después del movimiento, todos los vínculos con el prefijo \\MyDfsServer\MyDfsShare\dir1 tienen ese prefijo reemplazado por \\MyDfsServer\MyDfsShare. Por lo tanto, \\MyDfsServer\MyDfsShare\dir1\dir2\link1 y \\MyDfsServer\MyDfsShare\dir1\dir2\link2 son ahora \\MyDfsServer\MyDfsShare\dir2\link1 y \\MyDfsServer\MyDfsShare\dir2\link1, respectivamente.
Si la nueva ruta de acceso ya tiene una entrada existente, DFS_MOVE_FLAG_REPLACE_IF_EXISTS debe especificarse si la nueva ruta de acceso debe sobrescribir la antigua. Cuando se establece esta marca, la ruta de acceso colisionada se elimina y se reemplaza por el nuevo vínculo. Tenga en cuenta que se producirá un error en cualquier operación que pueda producir vínculos DFS que se superpongan completamente, independientemente de si se especifica o no DFS_MOVE_FLAG_REPLACE_IF_EXISTS . Por ejemplo:
  • Vínculos existentes: \\MyDfsServer\MyDfsShare\dir1\link1, \\MyDfsServer\MyDfsShare\link3
  • Ruta de acceso antigua:\\MyDfsServer\MyDfsShare\dir1
  • Nueva ruta de acceso: \\MyDfsServer\MyDfsShare\link3
Si la operación de traslado se permitía realizar correctamente, el resultado sería dos vínculos completamente superpuestos: \\MyDfsServer\MyDfsShare\link3\link1 y \\MyDfsServer\MyDfsShare\link3. Por lo tanto, se debe producir un error en la operación de traslado.

Con los servidores DFS basados en dominio, la operación de traslado es atómica; es decir, se realiza toda la operación o se produce un error. Sin embargo, con servidores DFS independientes, no se garantiza que la operación de traslado sea atómica. En esta situación, un error puede dar lugar a una operación de traslado completada parcialmente y requerirá limpieza en nombre de la aplicación que realiza la llamada.

Cuando la operación de movimiento se realiza correctamente, se garantiza que los metadatos DFS se modificaron correctamente. Esto no garantiza que los vínculos DFS se hayan creado realmente en los destinos raíz o que los vínculos DFS se puedan crear en el almacenamiento de los destinos raíz.

Requisitos

   
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008, Windows Server 2008
Plataforma de destino Windows
Encabezado lmdfs.h (incluya LmDfs.h, Lm.h)
Library Netapi32.lib
Archivo DLL Netapi32.dll

Consulte también

Funciones del sistema de archivos distribuidos (DFS)

Funciones de administración de red

Introducción a la administración de redes