建立其他登錄專案
如建立應用程式的效能金鑰中所述,提供效能計數器資料的元件必須在Services索引鍵下具有效能索引鍵,而效能索引鍵必須包含程式庫、開啟、收集及關閉值。 在某些情況下,您的元件可能需要設定其他登錄值。
中繼資料
MetadataGlobal
和 MetadataCostly
是Windows 10 20H1 和更新版本所產生的僅限中繼資料查詢。 它們可讓使用者取得中繼資料 (物件資訊和計數器資訊) ,而不需要執行可能昂貴的資料收集。 只有中繼資料的查詢預期會傳回與對應 Global
或 Costly
查詢相同的結果, NumInstances
但應該針對單一實例) 物件) 或 PERF_METADATA_NO_INSTANCES
單一實例物件的 (設定為 PERF_METADATA_MULTIPLE_INSTANCES
(,而且結果應該省略所有 PERF_INSTANCE_DEFINITION
區塊。
如果您的效能 DLL 支援 MetadataGlobal
和 MetadataCostly
查詢類型,它應該藉由將值 Collect Supports Metadata
新增 REG_DWORD
至其 Performance
索引鍵,並將值設定為 1 來表示。 如果 Collect Supports Metadata
不存在或設定為 0,則僅限中繼資料的查詢會回復至 Global
或 Costly
查詢。
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\application-name
\Performance
Collect Supports Metadata = 1
連結
效能 DLL 的 OpenPerformanceData 函式會採用字串引數作為輸入。 若要提供輸入字串給開啟的函式,請在您的服務金鑰底下包含連結索引鍵。 連結鍵包含Export值。 將 [匯出 ] 的值資料設定為您想要傳遞至 open 函式的輸入字串。 Export的資料類型是REG_MULTI_SZ。
如果未定義 Export (Export 是選擇性的) ,系統會將 Null 傳遞給 OpenPerformanceData 函式。
一般而言,如果多個應用程式共用相同的效能 DLL,每個應用程式都會包含 連結 索引鍵和 匯出 值,以提供呼叫 DLL 的應用程式內容。
以下顯示登錄專案:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\application-name-1
\Linkage
Export = app-1 context strings
\Performance
Library = perfctrs.dll
\application-name-2
\Linkage
Export = app-2 context strings
\Performance
Library = perfctrs.dll
逾時
根據預設,效能 DLL 的 OpenPerformanceData 和 CollectPerformanceData 函式必須在 10,000 毫秒內傳回。 如果沒有,系統就不會使用 DLL 傳回的資料。 應用程式可以藉由在其[效能] 機碼下指定[開啟逾時] 或 [收集逾時] 登錄值來增加或減少逾時值,如下列範例所示。
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\application-name
\Performance
Open Timeout = Timeout value for your open function, in milliseconds
Collect Timeout = Timeout value for your collect function, in milliseconds
DOS 裝置
若要取得某些應用程式的效能資料, (使用 DeviceIoControl 函式傳回計數器) ,必須使用 CreateFile 函式來開啟與應用程式相關聯的裝置。 在此情況下, CreateFile 中指定的名稱也必須安裝在登錄的 DOS 裝置節點中,如下所示:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\Session Manager
\DOS Devices