> ## 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.

# PFMultiplayerServerPingQosServersAsync

> Discovers QoS beacons via PFMultiplayerServerListQosServersForTitleAsync and pings each one over UDP/3075. Aggregates the latencies and returns the sorted list. Wall-clock duration is bounded by roughly ceil(regionCount / maxConcurrentRegions) * timeoutMs * pingsPerRegion plus the cost of the ListQosServersForTitle call.

Discovers QoS beacons via PFMultiplayerServerListQosServersForTitleAsync and pings each one over UDP/3075. Aggregates the latencies and returns the sorted list. Wall-clock duration is bounded by roughly ceil(regionCount / maxConcurrentRegions) \* timeoutMs \* pingsPerRegion plus the cost of the ListQosServersForTitle call.

## Syntax

```cpp theme={null}
HRESULT PFMultiplayerServerPingQosServersAsync(  
    PFEntityHandle entityHandle,  
    const PFMultiplayerServerPingQosServersOptions* options,  
    XAsyncBlock* async  
)  
```

### Parameters

**`entityHandle`**   PFEntityHandle

Authenticated PlayFab entity. The same handle accepted by PFMultiplayerServerListQosServersForTitleAsync.

**`options`**   [PFMultiplayerServerPingQosServersOptions\*](/services/playfab/api-references/c/pfmultiplayerserverqos/structs/pfmultiplayerserverpingqosserversoptions)<br />*optional*

Optional. NULL means apply defaults documented on PFMultiplayerServerPingQosServersOptions.

**`async`**   XAsyncBlock\*<br />*Inout*

XAsyncBlock for the async operation. Honors XAsyncCancel.

### Return value

Type: HRESULT

Result code for this API operation.

## Remarks

This API is available on all platforms. A network where every region times out (for example, a corporate firewall blocking UDP/3075) is not a failure mode: the operation completes with S\_OK and every PFMultiplayerServerQosResult is marked unreachable so callers can detect and surface that condition. When the asynchronous operation is complete, call [PFMultiplayerServerPingQosServersGetResultSize](/services/playfab/api-references/c/pfmultiplayerserverqos/functions/pfmultiplayerserverpingqosserversgetresultsize) and [PFMultiplayerServerPingQosServersGetResult](/services/playfab/api-references/c/pfmultiplayerserverqos/functions/pfmultiplayerserverpingqosserversgetresult) to retrieve the result.

## Requirements

**Header:** PFMultiplayerServerQoS.h

## See also

[PFMultiplayerServerQoS members](/services/playfab/api-references/c/pfmultiplayerserverqos/pfmultiplayerserverqos_members)


## Related topics

- [PFMultiplayerServerPingQosServersOptions](/services/playfab/api-references/c/pfmultiplayerserverqos/structs/pfmultiplayerserverpingqosserversoptions.md)
- [PFMultiplayerServerPingQosServersGetResult](/services/playfab/api-references/c/pfmultiplayerserverqos/functions/pfmultiplayerserverpingqosserversgetresult.md)
- [PFMultiplayerServerPingQosServersResult](/services/playfab/api-references/c/pfmultiplayerserverqos/structs/pfmultiplayerserverpingqosserversresult.md)
- [PFMultiplayerServerPingQosServersGetResultSize](/services/playfab/api-references/c/pfmultiplayerserverqos/functions/pfmultiplayerserverpingqosserversgetresultsize.md)
- [Services C API overview - PFMultiplayerServerQoS.h](/services/playfab/api-references/c/pfmultiplayerserverqos/pfmultiplayerserverqos_members.md)
