| 1 | # WslcPullSessionImage |
| 2 | |
| 3 | ```c |
| 4 | STDAPI WslcPullSessionImage(_In_ WslcSession session, _In_ const WslcPullImageOptions* options, _Outptr_opt_result_z_ PWSTR* errorMessage); |
| 5 | ``` |
| 6 | |
| 7 | | Parameter | Type | Direction | |
| 8 | |---|---|---| |
| 9 | | `session` | `WslcSession` | in | |
| 10 | | `options` | `const WslcPullImageOptions*` | in | |
| 11 | | `errorMessage` | `PWSTR*` | out, optional | |
| 12 | |
| 13 | Return value: `HRESULT`. |
| 14 | |
| 15 | Example: |
| 16 | |
| 17 | ```c |
| 18 | HRESULT CALLBACK OnImageProgress(const WslcImageProgressMessage* progress, PVOID context) |
| 19 | { |
| 20 | UNREFERENCED_PARAMETER(context); |
| 21 | printf("%s %llu/%llu\n", |
| 22 | progress->id, |
| 23 | (unsigned long long)progress->detail.currentBytes, |
| 24 | (unsigned long long)progress->detail.totalBytes); |
| 25 | return S_OK; |
| 26 | } |
| 27 | |
| 28 | WslcPullImageOptions pullOptions = { 0 }; |
| 29 | pullOptions.uri = "docker.io/library/alpine:latest"; |
| 30 | pullOptions.progressCallback = OnImageProgress; |
| 31 | pullOptions.progressCallbackContext = NULL; |
| 32 | pullOptions.registryAuth = NULL; |
| 33 | |
| 34 | HRESULT hr = WslcPullSessionImage(session, &pullOptions, NULL); |
| 35 | ``` |