Метод 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, а также следующие значения.

Код возврата Описание
S_OK
Метод успешно завершен, и результаты отображаются в параметре ApplicationProcesses .
S_FALSE
Метод успешно завершен, но не было процессов, соответствующих условиям фильтра.

Комментарии

Параметры PartitionId, ApplicationId и Flags можно использовать для указания критериев фильтра, если вызывающему объекту требуется информация только о подмножестве отслеживаемых процессов.

Если ни GATD_INCLUDE_LIBRARY_APPS, ни GATD_INCLUDE_SWC не заданы в разделе Флаги, результаты включают только экземпляры серверных приложений COM+. Параметр ApplicationId можно использовать для выбора экземпляров определенного серверного приложения COM+, а параметр PartitionId для серверных приложений COM+ из определенного раздела.

Если заданы GATD_INCLUDE_LIBRARY_APPS или GATD_INCLUDE_SWC, результаты также включают процессы, в которых размещаются приложения библиотеки COM+ или контексты служб без компонентов соответственно. В этих случаях процессы ApplicationId и PartitionId фильтруют на основе всех приложений (запрошенных типов), которые размещаются в процессе. Если процесс включает хотя бы одно приложение, соответствующее критериям, оно будет включено в результаты.

Например, представьте, что установлены следующие приложения COM+:

  • AppX — это серверное приложение в PartitionA.
  • AppY — это приложение библиотеки в PartitionA.
  • AppZ — это серверное приложение в PartitionB.
Если PartitionId указывает PartitionA, а GATD_INCLUDE_LIBRARY_APPS задано:
  • Будет включен экземпляр AppX.
  • Будет включен клиентский процесс, создавший компоненты из AppY.
  • Экземпляр AppZ, не содержащий другие компоненты COM+, не будет включен, так как AppZ не находится в секции, заданной PartitionId.
  • Однако если есть другой экземпляр AppZ, который также создал компоненты из AppY, этот процесс будет включен, даже если серверное приложение не находится в секции, заданной PartitionId. Этот процесс не будет включен, если GATD_INCLUDE_LIBRARY_APPS не задан.

Требования

   
Минимальная версия клиента Windows XP с пакетом обновления 2 (SP2) [только классические приложения]
Минимальная версия сервера Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения]
Целевая платформа Windows
Header comsvcs.h

См. также раздел

IGetAppTrackerData