PdhEnumObjectsA 函式 (pdh.h)
傳回指定電腦上或指定記錄檔中可用的物件清單。
若要使用數據源的句柄,請使用 PdhEnumObjectsH 函式。
語法
PDH_FUNCTION PdhEnumObjectsA(
[in] LPCSTR szDataSource,
[in] LPCSTR szMachineName,
[out] PZZSTR mszObjectList,
[in, out] LPDWORD pcchBufferSize,
[in] DWORD dwDetailLevel,
[in] BOOL bRefresh
);
參數
[in] szDataSource
以 Null 結束的字串,指定用來列舉效能對象的記錄檔名稱。 如果 為 NULL,則函式會使用 中指定的電腦
要列舉名稱的 szMachineName 參數。
[in] szMachineName
以 Null 結束的字串,指定用來列舉性能對象的電腦名稱。
在計算機名稱中包含前置斜線,例如 \computername。
如果 szDataSource 參數為 NULL,您可以將 szMachineName 設定為 NULL 以指定本機電腦。
[out] mszObjectList
接收物件名稱清單的呼叫端配置緩衝區。 此清單中的每個物件名稱都會以 Null 字元終止。 清單會以兩個 Null 終止符終止。 如果pcchBufferLength參數為零,則設定為NULL。
[in, out] pcchBufferSize
mszObjectList 緩衝區的大小,以 TCHAR 為單位。 如果輸入為零,函式會傳回PDH_MORE_DATA,並將此參數設定為所需的緩衝區大小。 如果緩衝區大於所需的大小,函式會將此參數設定為所使用緩衝區的實際大小。 如果輸入上的指定大小大於零,但小於所需的大小,您就不應該依賴傳回的大小來重新配置緩衝區。
Windowsxp: 將一個新增至所需的緩衝區大小。
[in] dwDetailLevel
要傳回之效能項目的詳細數據層級。 所有屬於指定詳細數據層級的項目都會傳回, (層級會依遞增順序列出) 。 此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
用戶詳細數據層級的新手。 |
|
進階使用者詳細數據層級。 |
|
專家使用者詳細數據層級。 |
|
系統設計工具的詳細數據層級。 |
[in] bRefresh
指出是否應該自動重新整理快取的物件清單。 指定下列其中一個值。
如果您呼叫此函式兩次,一次可取得清單大小,第二次取得實際清單,請在第一次呼叫時將此參數設定為 TRUE ,並在第二次呼叫時設為 FALSE 。 如果兩個呼叫都是 TRUE,則第二次呼叫也可能傳回PDH_MORE_DATA,因為對象數據可能會在呼叫之間變更。
值 | 意義 |
---|---|
|
物件快取會在傳回物件之前自動重新整理。 |
|
請勿自動重新整理快取。 |
傳回值
如果函式成功,則會傳回ERROR_SUCCESS。
如果函式失敗,傳回值為 系統錯誤碼 或 PDH 錯誤碼。 以下是可能的值。
傳回碼 | Description |
---|---|
|
mszObjectList 緩衝區太小,無法保存物件清單。 如果 輸入上的pcchBufferLength 為零,則預期傳回值。 如果輸入上的指定大小大於零,但小於所需的大小,您就不應該依賴傳回的大小來重新配置緩衝區。 |
|
指定的電腦離線或無法使用。 |
|
找不到指定的物件。 |
|
參數無效。 例如,在某些版本中,如果輸入上的指定大小大於零,但小於所需的大小,您可能會收到此錯誤。 |
備註
您應該呼叫此函式兩次,第一次取得所需的緩衝區大小 (將 mszObjectList 設定為 NULL , 並將 pcchBufferLength 設定為 0) ,第二次取得數據。
注意
pdh.h 標頭會將 PdhEnumObjects 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | pdh.h |
程式庫 | Pdh.lib |
Dll | Pdh.dll |