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

# XSystemHandleTrack

> XSystemHandleTrack

# XSystemHandleTrack

註冊回呼以追蹤 Gaming Runtime 中的控制代碼存留期事件。

## 語法

```cpp theme={null}
HRESULT XSystemHandleTrack(
  XSystemHandleCallback callback,
  void * context
)
```

### 參數

*callback*    \_In\_\
類型：[XSystemHandleCallback](/zh-TW/reference/system/xsystem/functions/xsystemhandlecallback)

在建立和終結控制代碼時將呼叫的使用者定義回呼。若要停用控制代碼
追蹤，請為回呼傳入 NULL。

*context*    \_In\_opt\_\
類型：void \*

要傳遞至回呼的使用者定義內容。

### 傳回值

類型： [HRESULT](https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a)

如果成功，則傳回 **S\_OK**；否則傳回錯誤碼。如需錯誤碼清單，請參閱
[錯誤碼](/zh-TW/reference/errorcodes)。

## 備註

遊戲開發人員需要能夠針對涉及不正確控制代碼使用方式的錯誤進行疑難排解。
大部分 GRTS API 都使用對應於我們平台實作中內部物件存留期的控制代碼。
遊戲經常遇到開發人員不小心將無效 (NULL、先前已釋放等) 控制代碼提供給這些 API，
導致遊戲當機的問題。開發人員也可能不慎洩漏控制代碼，導致資源使用量過高。
控制代碼追蹤 API 的目標是讓開發人員能夠診斷並修正這些問題。

此 API 有兩個元件：主動和被動。GRTS 建立的所有控制代碼在偵錯和零售案例中都會持續
受到追蹤。每當控制代碼傳入我們的 API 時，平台都會執行驗證，以確保這些控制代碼對應到有效的內部物件。
如果偵測到無效的控制代碼，平台會記錄錯誤並叫用
[XErrorReport](/zh-TW/reference/system/xerror/functions/xerrorsetoptions) 以通知開發人員此問題。平台不會
額外抑制無效控制代碼的使用，並會讓應用程式如同此功能推出之前一樣當機。
最後，在 [XGameRuntimeUninitialize](/zh-TW/reference/system/xgameruntimeinit/functions/xgameruntimeuninitialize) 時的任何控制代碼洩漏，也會透過
[XErrorReport](/zh-TW/reference/system/xerror/functions/xerrorsetoptions) 回報。目前，控制代碼追蹤系統不支援追蹤
GRTS 外部的控制代碼。

## 需求

**標頭：** XSystem.h

**程式庫：** xgameruntime.lib

**支援的平台：** Windows、XBOX One 系列主機和 XBOX Series 主機

## 另請參閱

[XSystem 成員](/zh-TW/reference/system/xsystem/xsystem_members)

[XSystemHandleCallback](/zh-TW/reference/system/xsystem/functions/xsystemhandlecallback)


## Related topics

- [XSystemHandleTrack](/reference/system/xsystem/functions/xsystemhandletrack.md)
- [XSystemHandleCallback](/reference/system/xsystem/functions/xsystemhandlecallback.md)
