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

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

Синтаксис

void RegisterServiceGroup(
  [in] PSERVICEGROUP ServiceGroup
);

Параметры

[in] ServiceGroup

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

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

None

Remarks

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

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

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

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

Пример кода, демонстрирующий вызов RegisterServiceSink драйвера мини-порта из метода IMiniportDMusUART из метода IMiniportDMus::Init , см. в разделе Пример аудиодрайвера DMus для Microsoft Windows (WDK).

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

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть dmusicks.h (включая Dmusicks.h)
IRQL PASSIVE_LEVEL

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

IMiniportDMus::Init

IPortDMus

IPortDMus::Notify

IServiceGroup

IServiceSink