다음을 통해 공유


IPortDMus::RegisterServiceGroup 메서드(dmusicks.h)

메서드는 RegisterServiceGroup DMus 포트 드라이버에 서비스 그룹을 등록합니다.

구문

void RegisterServiceGroup(
  [in] PSERVICEGROUP ServiceGroup
);

매개 변수

[in] ServiceGroup

IServiceGroup 개체에 대한 포인터입니다. 등록할 서비스 그룹입니다.

반환 값

없음

설명

미니포트 드라이버는 메서드를 RegisterServiceGroup 호출하여 포트 드라이버에 서비스 그룹(IServiceGroup 개체)을 등록합니다. 포트 드라이버는 하나 이상의 서비스 싱크(IServiceSink 개체)를 이 서비스 그룹에 삽입할 수 있습니다. 미니포트 드라이버는 인터럽트 발생 시 서비스 그룹에 알림을 보냅니다( IPortDMus::Notify 호출). 알림을 받으면 서비스 그룹은 DPC(지연 프로시저 호출)를 예약합니다. DPC는 서비스 그룹의 모든 서비스 싱크를 반복하고 각각에 알림을 보냅니다.

미니포트 드라이버는 일반적으로 IMiniportDMus::Init 메서드를 실행하는 동안 RegisterServiceSink를 호출합니다. 이 호출의 목적은 인터럽트 처리가 활성화되는 즉시 시작할 수 있을 만큼 일찍 포트 드라이버에 서비스 그룹을 등록하는 것입니다. Init 메서드가 출력하는 서비스 그룹은 Init 메서드에서 반환될 때까지 포트 드라이버에서 사용할 수 없습니다.

미니포트 드라이버가 를 호출 RegisterServiceSink하는 경우 미니포트 드라이버가 메서드에 RegisterServiceSink 전달하는 서비스 그룹은 미니포트 드라이버가 Init 메서드를 통해 출력하는 것과 동일해야 합니다.

IMiniportDMus::Init의 반환이 발생한 후에는 일반적인 미니포트 드라이버를 더 이상 호출 RegisterServiceSink 할 필요가 없습니다.

미니포트 드라이버가 IMiniportDMus::Init 메서드 내에서 를 호출 RegisterServiceSink 하는 방법을 보여 주는 코드 예제는 Microsoft WDK(Windows 드라이버 키트)의 DMusUART 샘플 오디오 드라이버를 참조하세요.

pServiceGroup 매개 변수는 COM 개체에 대한 참조 계산 규칙을 따릅니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 dmusicks.h(Dmusicks.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

IMiniportDMus::Init

IPortDMus

IPortDMus::Notify

IServiceGroup

IServiceSink