Метод IPortDMus::RegisterServiceGroup (dmusicks.h)

Метод RegisterServiceGroup регистрирует группу служб с драйвером порта DMus.

Синтаксис

void RegisterServiceGroup(
  [in] PSERVICEGROUP ServiceGroup
);

Параметры

[in] ServiceGroup

Указатель на объект IServiceGroup. Это группа служб, которая должна быть зарегистрирована.

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

Никакой

Замечания

Драйвер минипорта вызывает метод RegisterServiceGroup для регистрации группы служб (объекта IServiceGroup) с драйвером порта. Драйвер порта может вставить один или несколько приемников служб (объекты IServiceSink) в эту группу служб. Драйвер минипорта отправляет уведомление (вызывая IPortDMus::Notify) в группу служб при каждом возникновении прерывания. После получения уведомления группа служб планирует отложенный вызов процедуры (DPC). DPC выполняет итерацию по всем приемникам служб в группе служб и отправляет уведомления каждому.

Драйвер минипорта обычно вызывает RegisterServiceSink во время выполнения метода IMiniportDMus::Init. Этот вызов предназначен для регистрации группы служб с драйвером портов достаточно рано, чтобы начать обработку прерываний так же, как только они включены. Обратите внимание, что группа служб, которую выходные данные метода init не доступны драйверу порта до тех пор, пока не вернется из метода Init.

Если драйвер минипорта вызывает RegisterServiceSink, группа служб, которую драйвер минипорта передает методу RegisterServiceSink, должен совпадать с тем, что драйвер минипорта выводится через метод Init.

Типичный драйвер минипорта больше не должен вызывать RegisterServiceSink после возвращения из IMiniportDMus::Init.

Пример звукового драйвера DMusUART в комплекте драйверов Microsoft Windows (WDK) см. в примере кода, который показывает, как драйвер минипорта вызывает RegisterServiceSink из его метода IMiniportDMus::Init.

Параметр pServiceGroup следует соглашениям подсчета ссылок для объектов COM.

Требования

Требование Ценность
целевая платформа Настольный
заголовка dmusicks.h (include Dmusicks.h)
IRQL PASSIVE_LEVEL

См. также

IMiniportDMus::Init

IPortDMus

IPortDMus::Notify

IServiceGroup

IServiceSink