Share via


Método IPortDMus::RegisterServiceGroup (dmusicks.h)

O RegisterServiceGroup método registra um grupo de serviços com o driver de porta DMus.

Sintaxe

void RegisterServiceGroup(
  [in] PSERVICEGROUP ServiceGroup
);

Parâmetros

[in] ServiceGroup

Ponteiro para um objeto IServiceGroup . Esse é o grupo de serviços que deve ser registrado.

Retornar valor

Nenhum

Comentários

O driver de miniporto chama o RegisterServiceGroup método para registrar um grupo de serviços (objeto IServiceGroup ) com o driver de porta. O driver de porta pode inserir um ou mais de seus coletores de serviço (objetos IServiceSink ) nesse grupo de serviços. O driver de miniporta envia uma notificação (chamando IPortDMus::Notify) para o grupo de serviços sempre que ocorre uma interrupção. Ao receber a notificação, o grupo de serviço agenda uma DPC (chamada de procedimento adiado). O DPC itera por todos os coletores de serviço no grupo de serviços e envia uma notificação para cada um.

O driver de miniporto normalmente chama RegisterServiceSink durante a execução de seu método IMiniportDMus::Init . A finalidade dessa chamada é registrar o grupo de serviços com o driver de porta cedo o suficiente para começar a lidar com interrupções assim que elas estiverem habilitadas. Observe que o grupo de serviços que o método Init gera não está disponível para o driver de porta até depois do retorno do método Init .

Se o driver de miniporta chamar RegisterServiceSink, o grupo de serviço que o driver de miniporto passa para o RegisterServiceSink método deverá ser o mesmo que o driver de miniporto gera por meio de seu método Init .

Um driver de miniporto típico não precisa chamar RegisterServiceSink mais uma vez que o retorno de IMiniportDMus::Init tenha ocorrido.

Consulte o driver de áudio de exemplo DMusUART no WDK (Microsoft Windows Driver Kit) para obter um exemplo de código que mostra como o driver de miniporto chama RegisterServiceSink de dentro de seu método IMiniportDMus::Init .

O parâmetro pServiceGroup segue as convenções de contagem de referência para objetos COM.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho dmusicks.h (inclua Dmusicks.h)
IRQL PASSIVE_LEVEL

Confira também

IMiniportDMus::Init

IPortDMus

IPortDMus::Notify

IServiceGroup

IServiceSink