Метод IMFWorkQueueServices::BeginRegisterTopologyWorkQueuesWithMMCSS (mfidl.h)

Регистрирует рабочие очереди топологии в службе планировщика мультимедийных классов (MMCSS).

Синтаксис

HRESULT BeginRegisterTopologyWorkQueuesWithMMCSS(
  [in] IMFAsyncCallback *pCallback,
  [in] IUnknown         *pState
);

Параметры

[in] pCallback

Указатель на интерфейс IMFAsyncCallback объекта обратного вызова. Вызывающий объект должен реализовать этот интерфейс.

[in] pState

Указатель на интерфейс IUnknown объекта состояния, определенного вызывающим объектом. Этот параметр может принимать значение NULL. Этот объект можно использовать для хранения сведений о состоянии. Объект возвращается вызывающей объекту при вызове обратного вызова.

Возвращаемое значение

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Каждый исходный узел в топологии определяет одну ветвь топологии. Ветвь включает каждый узел топологии, получающий данные от этого узла. Приложение может назначить каждой ветви топологии собственную рабочую очередь, а затем связать эти рабочие очереди с задачами MMCSS.

Чтобы использовать этот метод, выполните следующие действия.

  1. Создайте топологию.
  2. Задайте следующие атрибуты на исходных узлах в топологии.
    • MF_TOPONODE_WORKQUEUE_ID. Указывает идентификатор рабочей очереди. Сеанс мультимедиа выделит новую рабочую очередь.
    • MF_TOPONODE_WORKQUEUE_MMCSS_CLASS. Указывает класс MMCSS.
    • MF_TOPONODE_WORKQUEUE_MMCSS_TASKID. Указывает идентификатор задачи MMCSS (необязательно). Если этот атрибут не задан, MMCSS назначает новый идентификатор задачи.
  3. Поставить топологию в очередь, вызвав IMFMediaSession::SetTopology.
  4. Дождитесь события MESessionTopologyStatus с состоянием MF_TOPOSTATUS_READY .
  5. Вызовите BeginRegisterTopologyWorkQueuesWithMMCSS. Этот метод регистрирует все рабочие очереди топологии в MMCSS.
Метод BeginRegisterTopologyWorkQueuesWithMMCSS является асинхронным. После завершения операции вызывается метод ОБЪЕКТА обратного вызова IMFAsyncCallback::Invoke . В методе обратного вызова вызовите IMFWorkQueueServices::EndRegisterTopologyWorkQueuesWithMMCSS , чтобы завершить асинхронный запрос. После завершения этой операции сеанс мультимедиа автоматически регистрирует рабочие очереди для каждой новой топологии, которая находится в очереди в сеансе мультимедиа. Приложению не нужно повторно вызывать метод для новых топологий.

Чтобы отменить регистрацию рабочих очередей топологии из MMCSS, вызовите IMFWorkQueueServices::BeginUnregisterTopologyWorkQueuesWithMMCSS.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header mfidl.h
Библиотека Mfuuid.lib

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

IMFWorkQueueServices