iGetAppTrackerData::GetApplicationProcesses 方法 (comsvcs.h)
检索承载 COM+ 应用程序的所有进程的摘要信息,或这些进程的指定子集的摘要信息。
语法
HRESULT GetApplicationProcesses(
[in] REFGUID PartitionId,
[in] REFGUID ApplicationId,
[in] DWORD Flags,
[out] ULONG *NumApplicationProcesses,
[out] ApplicationProcessSummary **ApplicationProcesses
);
参数
[in] PartitionId
用于筛选结果的分区 ID,或为所有分区GUID_NULL。
[in] ApplicationId
用于筛选结果的应用程序 ID,或为所有应用程序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 参数来指定筛选条件。
如果在 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,则不包括此过程。
要求
最低受支持的客户端 | Windows XP SP2 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 SP1 [仅限桌面应用] |
目标平台 | Windows |
标头 | comsvcs.h |