WdRemoteCopy
Copia archivos entre un PC local y un dispositivo remoto.Sintaxis
Parámetros
_In_z_ remoteDeviceTipo: const char* Nombre de host o dirección IP del dispositivo remoto (por ejemplo,
"192.168.1.100" o "MyDevKit").
_In_z_ sourcePathTipo: const char* Ruta de acceso de origen desde la que se copia (por ejemplo,
"C:\\builds\\MyGame" al copiar a un dispositivo remoto).
_In_z_ destinationPathTipo: const char* Ruta de acceso de destino en la que se copia. Puede ser una ruta de acceso absoluta (por ejemplo,
"D:\\Games\\MyGame") o una ruta de acceso relativa que se resuelve con respecto a la raíz común (por ejemplo, "MyGame").
_In_opt_ copyOptionsTipo: const WdCopyOptions* Opcional. Especifica la dirección de la copia y el alias de la raíz común. Pase
nullptr para usar la configuración predeterminada (CopyTo, ubicación de raíz común predeterminada si destinationPath es una ruta de acceso relativa).
_In_opt_ searchOptionsTipo: const WdCopySearchOptions* Opcional. Especifica los patrones de inclusión/exclusión de archivos y los filtros de atributos (por ejemplo,
"*.exe;*.dll" para copiar solo los ejecutables). Pase nullptr para copiar todos los archivos.
_In_opt_ statusCallbacksTipo: const WdCopyStatusCallbacks* Opcional. Especifica las funciones de devolución de llamada para recibir actualizaciones de progreso y mensajes de diagnóstico durante la operación de copia. Pase
nullptr para no recibir devoluciones de llamada.
_In_opt_ cancellationHandleTipo: WdCancellationHandle Opcional. Identificador de cancelación creado por WdCreateCancellationHandle que se puede pasar a WdCancelRemoteCopy desde un subproceso independiente para cancelar la operación de copia. Pase
nullptr si no se necesita la cancelación.
Valor devuelto
Tipo: HRESULT DevuelveS_OK si se realiza correctamente; de lo contrario, devuelve un código de error.
Códigos de error
Comentarios
WdRemoteCopy es una llamada sincrónica de bloqueo. No devuelve un valor hasta que se hayan copiado todos los archivos, se cancele la operación mediante WdCancelRemoteCopy o se produzca un error.
Para habilitar la cancelación, cree un WdCancellationHandle mediante WdCreateCancellationHandle antes de llamar a WdRemoteCopy y, a continuación, páselo a WdCancelRemoteCopy desde un subproceso independiente. Cuando WdRemoteCopy devuelva un valor, cierre el identificador con WdCloseCancellationHandle.
La función admitirá la copia bidireccional; sin embargo, CopyFrom no está implementada actualmente y devolverá E_NOTIMPL si se usa. Use WdCopyDirection::CopyTo para enviar archivos desde el PC local al dispositivo remoto. La dirección predeterminada es CopyTo.
Si destinationPath es una ruta de acceso absoluta, el commonRootAlias de WdCopyOptions se omite. Si destinationPath es una ruta de acceso relativa, se usa la ubicación de raíz común predeterminada, a menos que se especifique un commonRootAlias.
Para recibir actualizaciones de progreso durante la copia, proporcione una estructura WdCopyStatusCallbacks con punteros a funciones de devolución de llamada.
Solo puede haber una llamada a
WdRemoteCopy activa a la vez, independientemente del dispositivo de destino o de la ruta de acceso de destino. Llamar a WdRemoteCopy mientras hay otra copia en curso da lugar a un comportamiento indefinido.WdRemoteCopy no reintenta automáticamente en caso de error. Si la operación falla debido a una interrupción de la red, el autor de la llamada debe volver a invocar a WdRemoteCopy. Los archivos que se copiaron correctamente antes del error permanecen en el destino: el comportamiento de copia diferencial garantiza que en el reintento solo se vuelvan a transferir los archivos incompletos o que falten. No hay tiempo de espera; la copia continúa hasta que se completa, se produce un error o se cancela.
