WdRemoteCopy
ローカル PC とリモート デバイス間でファイルをコピーします。構文
パラメーター
_In_z_ remoteDeviceType: const char* リモート デバイスのホスト名または IP アドレス (例:
"192.168.1.100" または "MyDevKit")。
_In_z_ sourcePathType: const char* コピー元のソース パス (例: リモート デバイスにコピーする場合、
"C:\\builds\\MyGame")。
_In_z_ destinationPathType: const char* コピー先の宛先パス。絶対パス (例:
"D:\\Games\\MyGame")、または共通ルートに対して解決される相対パス (例: "MyGame") を指定できます。
_In_opt_ copyOptionsType: const WdCopyOptions* 省略可能。コピーの方向および共通ルート エイリアスを指定します。既定の設定 (
CopyTo、destinationPath が相対パスの場合の既定の共通ルート場所) を使用するには nullptr を渡します。
_In_opt_ searchOptionsType: const WdCopySearchOptions* 省略可能。ファイルの包含/除外パターンと属性フィルターを指定します (例: 実行可能ファイルのみをコピーする場合は
"*.exe;*.dll")。すべてのファイルをコピーするには nullptr を渡します。
_In_opt_ statusCallbacksType: const WdCopyStatusCallbacks* 省略可能。コピー操作中に進捗更新および診断メッセージを受け取るためのコールバック関数を指定します。コールバックを受け取らないようにするには
nullptr を渡します。
_In_opt_ cancellationHandleType: WdCancellationHandle 省略可能。WdCreateCancellationHandle で作成されたキャンセル ハンドル。別のスレッドから WdCancelRemoteCopy に渡して、コピー操作をキャンセルできます。キャンセルが不要な場合は
nullptr を渡します。
戻り値
Type: HRESULT 成功した場合はS_OK を返します。それ以外の場合はエラー コードを返します。
エラー コード
解説
WdRemoteCopy は同期的なブロッキング呼び出しです。すべてのファイルがコピーされるか、WdCancelRemoteCopy を介して操作がキャンセルされるか、エラーが発生するまで戻りません。
キャンセルを有効にするには、WdRemoteCopy を呼び出す前に WdCreateCancellationHandle を使用して WdCancellationHandle を作成し、それを別のスレッドから WdCancelRemoteCopy に渡します。WdRemoteCopy が戻った後、WdCloseCancellationHandle でハンドルを閉じます。
この関数は双方向コピーをサポートしますが、CopyFrom は現在実装されておらず、使用すると E_NOTIMPL を返します。WdCopyDirection::CopyTo を使用して、ローカル PC からリモート デバイスにファイルをプッシュしてください。既定の方向は CopyTo です。
destinationPath が絶対パスの場合、WdCopyOptions の commonRootAlias は無視されます。destinationPath が相対パスの場合、commonRootAlias が指定されていない限り、既定の共通ルート場所が使用されます。
コピー中に進捗更新を受け取るには、コールバック関数ポインターを含む WdCopyStatusCallbacks 構造体を指定してください。
ターゲット デバイスや宛先パスに関係なく、
WdRemoteCopy の呼び出しは同時に 1 つだけアクティブにできます。別のコピーが既に進行中の状態で WdRemoteCopy を呼び出すと、未定義の動作になります。WdRemoteCopy は失敗時に自動的に再試行しません。ネットワークの中断により操作が失敗した場合、呼び出し元は WdRemoteCopy を再度呼び出す必要があります。失敗前に正常にコピーされたファイルは宛先に残り、差分コピーの動作により、再試行時には不完全または欠落しているファイルのみが再転送されます。タイムアウトはなく、コピーは完了するか、エラーが発生するか、キャンセルされるまで続きます。
