Метод 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+, а параметр PartitionId для серверных приложений COM+ из определенного раздела.
Если заданы GATD_INCLUDE_LIBRARY_APPS или GATD_INCLUDE_SWC, результаты также включают процессы, в которых размещаются приложения библиотеки COM+ или контексты служб без компонентов соответственно. В этих случаях процессы ApplicationId и PartitionId фильтруют на основе всех приложений (запрошенных типов), которые размещаются в процессе. Если процесс включает хотя бы одно приложение, соответствующее критериям, оно будет включено в результаты.
Например, представьте, что установлены следующие приложения COM+:
- AppX — это серверное приложение в PartitionA.
- AppY — это приложение библиотеки в PartitionA.
- AppZ — это серверное приложение в PartitionB.
- Будет включен экземпляр 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 |