> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IXtfDeployCallback::OnDeployFileProgress

> IXtfDeployCallback::OnDeployFileProgress

# IXtfDeployCallback::OnDeployFileProgress

Callback invoked to report progress in deploying a file to the console.

<a id="syntaxSection" />

## Syntax

```cpp theme={null}
public:
HRESULT OnDeployFileProgress(
         LPCWSTR pszFilePath,
         ULONGLONG ullBytesTransferred,
         ULONGLONG ullFileSize
)  
```

<a id="parametersSection" />

### Parameters

*pszFilePath*\
Type: LPCWSTR

The path of the file being deployed.

*ullBytesTransferred*\
Type: ULONGLONG

The number of bytes transferred so far.

*ullFileSize*\
Type: ULONGLONG

The total size of the file being transferred, in bytes.

<a id="retvalSection" />

### Return value

Type: HRESULT

Returns `S_OK` to continue deployment, or an HRESULT error code to cancel the deployment.

<a id="remarksSection" />

## Remarks

This callback is invoked when the deployment system transfers files from the deploying PC to the console. This callback is called once for each buffer block that is successfully transferred for a file. This callback is always invoked at least twice for each successfully transferred file: once at the start of the deployment, and once at the end of deployment. If a zero-length file is deployed, both invocations report that zero bytes out of zero bytes have been transferred. For more information about how files are evaluated and when callbacks are invoked during the deployment process, see [IXtfDeployCallback Interface](/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/ixtfdeploycallback-xtfapplication-xbox-microsoft-t).

<Note>The file transfer process for deployment uses multiple threads. Your code must ensure that it correlates progress messages by `pszFilePath` and protects against typical multi-threading issues.</Note>

As with the other callbacks for `IXtfDeployCallback`, the deployment process continues if this callback returns `S_OK`. If this callback returns any `HRESULT` error code, then the deployment process is canceled immediately. Files that have already been transferred or deleted remain as they are, and partially transferred files are closed in their truncated form. Another deployment must be completed to ensure that all files on the console are complete and up to date.

## Requirements

**Header:** xtfapplication.h

**Library:** xtfapplication.lib

**Supported platforms:** Windows (for XBOX console tools)

## See also

[IXtfDeployCallback Interface](/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/ixtfdeploycallback-xtfapplication-xbox-microsoft-t)\
[XtfApplication](/reference/tools/xtf/xtfapplication/xtfapplication-xbox-microsoft-n)


## Related topics

- [IXtfDeployCallback::OnDeployChangeEvaluation](/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeploychangeevaluation-ixtfdeploycallback-xtfapplication-xb.md)
- [IXtfDeployCallback::OnDeployInitialized Method](/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployinitialized-ixtfdeploycallback-xtfapplication-xbox-wi.md)
- [IXtfDeployCallback::OnDeployExtraFileRemoved](/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployextrafileremoved-ixtfdeploycallback-xtfapplication-xb.md)
- [IXtfDeployCallback::OnDeployExtraFileDetected](/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployextrafiledetected-ixtfdeploycallback-xtfapplication-x.md)
- [IXtfDeployCallback::OnDeployMetrics method](/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeploymetrics-ixtfdeploycallback-xtfapplication-xbox-window.md)
