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

# PFMultiplayerServerPingQosServersAsync

> PFMultiplayerServerPingQosServersAsync discovers PlayFab QoS beacons, pings each over UDP/3075, and returns a list of regions sorted by measured latency.

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\*](https://docs.xbox.com/services/playfab/api-references/c/pfmultiplayerserverqos/structs/pfmultiplayerserverpingqosserversoptions.md)\
*optional*

Optional. NULL means apply defaults documented on PFMultiplayerServerPingQosServersOptions.

**`async`**   XAsyncBlock\*\
*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](https://docs.xbox.com/services/playfab/api-references/c/pfmultiplayerserverqos/functions/pfmultiplayerserverpingqosserversgetresultsize.md) and [PFMultiplayerServerPingQosServersGetResult](https://docs.xbox.com/services/playfab/api-references/c/pfmultiplayerserverqos/functions/pfmultiplayerserverpingqosserversgetresult.md) to retrieve the result.

## Requirements

**Header:** PFMultiplayerServerQoS.h

## See also

[PFMultiplayerServerQoS members](https://docs.xbox.com/services/playfab/api-references/c/pfmultiplayerserverqos/pfmultiplayerserverqos_members.md)


## Related topics

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