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

返回时,与 PartitionIdApplicationIdFlags 指定的筛选条件匹配的进程数。

[out] ApplicationProcesses

返回时,匹配进程的 ApplicationProcessSummary 结构的数组。

返回值

此方法可以返回标准返回值E_INVALIDARG和E_OUTOFMEMORY,以及以下值。

返回代码 说明
S_OK
方法已成功完成,结果位于 ApplicationProcesses 参数中。
S_FALSE
方法已成功完成,但没有与筛选条件匹配的进程。

备注

如果调用方仅需要有关跟踪进程的子集的信息,则可以使用 PartitionIdApplicationIdFlags 参数来指定筛选条件。

如果在 Flags 中未设置GATD_INCLUDE_LIBRARY_APPS和GATD_INCLUDE_SWC,则结果仅包括 COM+ 服务器应用程序实例。 ApplicationId 参数可用于选择特定 COM+ 服务器应用程序的实例,以及特定分区中的 COM+ 服务器应用程序的 PartitionId 参数。

如果设置了GATD_INCLUDE_LIBRARY_APPS或GATD_INCLUDE_SWC,则结果还分别包括承载 COM+ 库应用程序或无组件服务上下文的进程。 在这些情况下, ApplicationIdPartitionId 基于进程承载的请求类型) 的所有应用程序 (筛选进程。 如果进程包含至少一个符合条件的应用程序,则结果中将包含该应用程序。

例如,假设安装了以下 COM+ 应用程序:

  • AppX 是 PartitionA 中的服务器应用程序。
  • AppY 是 PartitionA 中的库应用程序。
  • AppZ 是 PartitionB 中的服务器应用程序。
如果 PartitionId 指定 PartitionA,并且设置GATD_INCLUDE_LIBRARY_APPS:
  • 将包含 AppX 的实例。
  • 将包含从 AppY 创建组件的客户端进程。
  • 不包含其他 COM+ 组件的 AppZ 实例,因为 AppZ 不在 PartitionId 指定的分区中。
  • 但是,如果 AppZ 的另一个实例也从 AppY 创建了组件,则即使服务器应用程序不在 PartitionId 指定的分区中,也会包含此过程。 如果未设置GATD_INCLUDE_LIBRARY_APPS,则不包括此过程。

要求

   
最低受支持的客户端 Windows XP SP2 [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 SP1 [仅限桌面应用]
目标平台 Windows
标头 comsvcs.h

另请参阅

IGetAppTrackerData