共用方式為


PFND3DDDI_CHECKCOUNTER回呼函式 (d3dumddi.h)

Direct3D 運行時間會呼叫 PFND3DDDI_CHECKCOUNTER,以擷取描述計數器的資訊。 必須由 Windows 顯示驅動程式模型 (WDDM) 1.3 和更新版本的使用者模式顯示驅動程式實作。

語法

PFND3DDDI_CHECKCOUNTER Pfnd3dddiCheckcounter;

HRESULT Pfnd3dddiCheckcounter(
  HANDLE hDevice,
  D3DDDIQUERYTYPE unnamedParam2,
  D3DDDI_COUNTER_TYPE *unnamedParam3,
  UINT *unnamedParam4,
  LPSTR unnamedParam5,
  UINT *pNameLength,
  LPSTR unnamedParam7,
  UINT *pUnitsLength,
  LPSTR unnamedParam9,
  UINT *pDescriptionLength
)
{...}

參數

hDevice

[in]顯示裝置的句柄(圖形內容)。

unnamedParam2

[in] Counter 是類型 D3DDDIQUERYTYPE 的值,可識別所擷取資訊的計數器標識碼。

unnamedParam3

[out] pType 是變數的指標,該變數會接收可識別計數器所輸出之數據類型的 D3DDDI_COUNTER_TYPE 列舉值。

unnamedParam4

pActiveCounters [out] pActiveCounters 是變數的指標,該變數會接收為建立 Counter 參數所識別之計數器標識符而配置的同時作用中計數器數目。

unnamedParam5

[out, optional] pszName 是驅動程式傳回 NULL 終止字串的選擇性指標,其中包含計數器標識碼的名稱。

可以是 NULL,在此情況下,應用程式不需要名稱。

pNameLength

[in, out, optional]選擇性的指標,可接收 pszName 參數所指定之 NULL 終止字串的大小,以位元組為單位。

以下是 pNameLengthpszName 參數值的限制:

  • pNameLength 可以是 NULL,在此情況下,應用程式不需要名稱或名稱長度。
  • 如果 pszName 為 NULL,且 pNameLength 不是 NULL,則會忽略 pNameLength 的輸入值,而且必須 透過 pNameLength 參數傳回字串的長度(包括終止 NULL 字元)。
  • 如果 pszNamepNameLength 不是 NULL, 驅動程式必須檢查 pNameLength 的輸入值,以確保配置緩衝區中有足夠的空間,然後 pszName 字串(包括終止 NULL 字元)的長度會透過 pNameLength 參數傳出。

unnamedParam7

[out, optional] pszUnits 是驅動程式傳回 NULL 終止字串的選擇性指標,其中包含計數器標識符所測量單位的名稱。

可以是 NULL,在此情況下,應用程式不需要單位資訊。 如需詳細資訊,請參閱 pUnitsLength 參數的說明。

pUnitsLength

[in, out, optional] pUnitsLength 是變數的選擇性指標,可接收 pszUnits 參數所指定之 NULL 終止字符串的大小,以位元組為單位。

以下是 pUnitsLength 和 pszUnits 参数 值的限制:

  • pUnitsLength 可以是 NULL,在此情況下,應用程式不需要單位名稱或單位名稱長度。
  • 如果 pszUnits 為 NULL,且 pUnitsLength 不是 NULL,則會忽略 pUnitsLength 的輸入 值,而且必須 透過 pUnitsLength 參數傳回字元串長度(包括終止 NULL 字元)。
  • 如果兩個 pszUnitspUnitsLength 都不是 NULL, 驅動程式必須檢查 pUnitsLength 的輸入值,以確保配置緩衝區中有足夠的空間,然後 pszUnits 字符串(包括終止 NULL 字符)的長度會透過 pUnitsLength 參數傳遞出去。

unnamedParam9

[out, optional] pszDescription 是選擇性指標,驅動程式會傳回以 NULL 終止的字元串,其中包含計數器標識符所測量的內容描述。

可以是 NULL,在此情況下,應用程式不需要描述資訊。 如需詳細資訊,請參閱 pDescriptionLength 參數的說明。

pDescriptionLength

[in, out, optional] pDescriptionLength 是變數的選擇性指標,可接收 pszDescription 參數所指定之 NULL 終止字符串的大小,以位元組為單位。

以下是 pDescriptionLengthpszDescription 参數的值限制:

  • pDescriptionLength 可以是 NULL,在此情況下,應用程式不需要單位名稱或單位名稱長度。
  • 如果 pszDescription 為 NULL,且 pDescriptionLength 不是 NULL,則會忽略 pDescriptionLength 的輸入 值,而且必須透過 pDescriptionLength 參數傳回字串長度(包括終止 NULL 字元)。
  • 如果兩個 pszDescriptionpDescriptionLength 都不是 NULL, 驅動程式必須檢查 pDescriptionLength 的輸入值,以確保配置緩衝區中有足夠的空間,然後 pszDescription 字符串(包括終止 NULL 字元)的長度 會透過 pDescriptionLength 參數傳出。

傳回值

如果此例程成功,則會傳回S_OK。 否則,它會傳回 HRESULT 錯誤碼,包括下列專案:

傳回碼 描述
E_INVALIDARG 要求超出範圍的裝置相依計數器,或字串長度不足以讓緩衝區包含整個字串。 雖然此函式中使用的所有字串都是以 Unicode 為基礎,但它們一律是英文地區設定,而且不會當地語系化為其他地區設定。

言論

此函式的行為應該類似支援 Microsoft Direct3D 10 和更新版本的 CheckCounter 函式。

計數器通常由擷取畫面並播放畫面的工具使用。 記錄精確計時信息的傳遞與其他傳遞不同。 在稍後的傳遞中,每次都會使用一組不同的計數器。 優先順序應該是取得計數器結果的精確相互關聯,以繪製呼叫,而且可以犧牲播放期間所產生的額外負荷。 驅動程式必須插入排清呼叫或等候閑置呼叫,以確保有精確的相互關聯。

一般而言,應用程式只能同時監視少數可能的原生計數器,這可能會在數百個中數目。 此外,驅動程式必須指出從 D3DDDIQUERYTYPE 列舉監視每個支援的計數器標識碼所使用的作用中計數器數目(已知計數器標識元和裝置特定的計數器標識符)。 例如,驅動程式可以指出監視 FillRateUtilized 變數需要同時作用中計數器的 3 個上限 (pActiveCounters 參數所指示)。 因此,只要該計數器標識碼需要一或多個作用中的計數器,應用程式也可以監視另一個計數器標識符。

如果一律可以監視計數器標識碼(而且不會干擾監視任何其他計數器標識元),計數器標識碼所需的同時作用中計數器數目可以是零。

要求

要求 價值
最低支援的用戶端 Windows 8.1
支援的最低伺服器 Windows Server 2012 R2
目標平臺 桌面
標頭 d3dumddi.h (包括 D3d10umddi.h)

另請參閱

CheckCounter

D3DDDIQUERYTYPE