IGetAppTrackerData::GetApplicationProcesses 方法 (comsvcs.h)
擷取裝載 COM+ 應用程式之所有進程的摘要資訊,或擷取這些進程的指定子集。
語法
HRESULT GetApplicationProcesses(
[in] REFGUID PartitionId,
[in] REFGUID ApplicationId,
[in] DWORD Flags,
[out] ULONG *NumApplicationProcesses,
[out] ApplicationProcessSummary **ApplicationProcesses
);
參數
[in] PartitionId
篩選結果的資料分割識別碼,或針對所有分割區GUID_Null。
[in] ApplicationId
篩選結果的應用程式識別碼,或針對所有應用程式GUID_Null。
[in] Flags
GetAppTrackerDataFlags列舉中的旗標組合,以篩選結果並選取傳回的資料。 支援下列旗標:GATD_INCLUDE_PROCESS_EXE_NAME、GATD_INCLUDE_LIBRARY_APPS GATD_INCLUDE_SWC。 如需詳細資訊,請參閱下面的備註。
[out] NumApplicationProcesses
傳回時,符合 PartitionId、 ApplicationId和 Flags所指定之篩選準則的進程數目。
[out] ApplicationProcesses
傳回時,符合進程的 ApplicationProcessSummary 結構陣列。
傳回值
這個方法可以傳回標準傳回值E_INVALIDARG和E_OUTOFMEMORY,以及下列值。
傳回碼 | 描述 |
---|---|
|
方法已順利完成,且結果位於 ApplicationProcesses 參數中。 |
|
方法已順利完成,但沒有任何程式符合篩選準則。 |
備註
如果呼叫端只想要追蹤進程子集的相關資訊,則 PartitionId、 ApplicationId和 Flags 參數可用來指定篩選準則。
如果旗 標中未設定GATD_INCLUDE_LIBRARY_APPS或GATD_INCLUDE_SWC,則結果只會包含 COM+ 伺服器應用程式實例。 ApplicationId參數可用來選取特定 COM+ 伺服器應用程式的實例,以及特定分割區中 COM+ 伺服器應用程式的PartitionId參數。
如果已設定GATD_INCLUDE_LIBRARY_APPS或GATD_INCLUDE_SWC,結果也會包含分別裝載 COM+ 程式庫應用程式或服務不含元件內容的進程。 在這些情況下, ApplicationId 和 PartitionId 篩選程式會根據所要求類型的所有應用程式 () 進程裝載。 如果進程至少包含一個符合準則的應用程式,則會包含在結果中。
例如,假設已安裝下列 COM+ 應用程式:
- AppX 是 PartitionA 中的伺服器應用程式。
- AppY 是 PartitionA 中的程式庫應用程式。
- AppZ 是 PartitionB 中的伺服器應用程式。
- 將會包含 AppX 的實例。
- 將會包含已從 AppY 建立元件的用戶端程式。
- 不會包含其他 COM+ 元件的 AppZ 實例,因為 AppZ 不在 PartitionId所指定的分割區中。
- 不過,如果有另一個 AppZ 實例,但也有從 AppY 建立元件,即使伺服器應用程式不在 PartitionId所指定的分割區中,也會包含此程式。 如果未設定GATD_INCLUDE_LIBRARY_APPS,就不會包含此程式。
規格需求
最低支援的用戶端 | 具有 SP2 的 Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 SP1 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | comsvcs.h |