IMiniportDMus::NewStream 메서드(dmusicks.h)
NewStream
메서드는 지정된 물리적 채널과 연결된 논리 스트림의 새 인스턴스를 만듭니다.
통사론
NTSTATUS NewStream(
[out] PMXF *MXF,
[in, optional] PUNKNOWN OuterUnknown,
[in] POOL_TYPE PoolType,
[in] ULONG PinID,
[in] DMUS_STREAM_TYPE StreamType,
[in] PKSDATAFORMAT DataFormat,
[out] PSERVICEGROUP *ServiceGroup,
[in] PAllocatorMXF AllocatorMXF,
[in] PMASTERCLOCK MasterClock,
[out] PULONGLONG SchedulePreFetch
);
매개 변수
[out] MXF
새 스트림에 대한 출력 포인터입니다. 이 매개 변수는 메서드가 스트림 개체의 IMXF 인터페이스에 포인터를 쓰는 호출자 할당 포인터 변수를 가리킵니다.
[in, optional] OuterUnknown
스트림 개체를 집계해야 하는 개체의 IUnknown 인터페이스에 대한 포인터입니다. 이 매개 변수는 선택 사항입니다. 집계가 필요하지 않은 경우 호출자는 이 매개 변수를 NULL지정합니다.
[in] PoolType
DMA 채널 개체에 대한 스토리지를 할당해야 하는 메모리 풀의 유형을 지정합니다. 이 매개 변수는 POOL_TYPE 열거형 값 중 하나로 설정됩니다.
[in] PinID
핀 ID를 지정합니다. 이 매개 변수는 열 핀을 식별합니다. DMus 미니포트 드라이버의 IMiniport::GetDescription 메서드가 필터에서 총 n개의 핀 팩터리를 지정하는 필터 설명자를 출력하는 경우 유효한 핀 ID는 0에서 n-1 범위입니다.
[in] StreamType
만들 데이터 스트림의 형식을 지정합니다. 이 매개 변수는 다음 DMUS_STREAM_TYPE 열거형 값 중 하나로 설정됩니다.
DMUS_STREAM_MIDI_RENDER
MIDI 출력(재생) 스트림을 지정합니다.
DMUS_STREAM_MIDI_CAPTURE
MIDI 입력 스트림을 지정합니다.
DMUS_STREAM_WAVE_SINK
웨이브 출력 스트림을 지정합니다.
자세한 내용은 다음 설명 섹션을 참조하세요.
[in] DataFormat
이 인스턴스에 사용할 데이터 형식을 지정하는 KSDATAFORMAT 구조에 커널 스트리밍에 대한 포인터
[out] ServiceGroup
서비스 그룹에 대한 출력 포인터입니다. 이 매개 변수는 메서드가 스트림의 서비스 그룹 개체의 IServiceGroup 인터페이스에 대한 포인터를 쓰는 호출자 할당 포인터 변수를 가리킵니다. 인터럽트 알림에 등록되는 서비스 그룹입니다.
[in] AllocatorMXF
IAllocatorMXF 개체에 대한 포인터입니다. DMUS_KERNEL_EVENT 구조를 재활용하는 데 필요한 포트 드라이버의 메모리 할당자입니다.
[in] MasterClock
IMasterClock 개체에 대한 포인터입니다. 이 마스터 클록은 KS 시계의 래퍼를 미니포트 드라이버에 전달합니다. 마스터 클록 포인터는 참조 시간을 동기화하는 데 필요합니다.
[out] SchedulePreFetch
일정 프리페치 시간에 대한 출력 포인터입니다. 이 매개 변수는 호출자가 할당한 ULONGLONG 변수에 대한 포인터로, 메서드는 이벤트를 쿼리할 시간을 지정하는 시간 값을 작성합니다. 시간은 100나노초 단위로 지정됩니다. 포트 드라이버는 미니포트 드라이버가 여기에 지정하는 시간을 초과하는 모든 이벤트를 시퀀싱합니다.
반환 값
NewStream
호출에 성공하면 S_OK 반환합니다. 그렇지 않으면 메서드가 적절한 오류 코드를 반환합니다.
발언
포트 드라이버는 NewStream
메서드가 pAllocatorMXF 매개 변수를 통해 입력하는 IAllocatorMXF 개체를 만들지만 미니포트 드라이버는 메서드가 ppMXF 매개 변수를 통해 출력하는 IMXF 개체를 만듭니다.
IMXF 및 IAllocatorMXF대한 자세한 내용은 MIDI 전송참조하세요.
IMiniportDMus::NewStream
메서드의 StreamType 매개 변수의 의미는 IMiniportMidi::NewStream 메서드의 Capture 매개 변수의 의미와 비슷합니다.
- MIDI 핀에서 스트림을 만들 때 IMiniportMidi::NewStream 메서드의 캡처 매개 변수는 핀이 MIDI 렌더링 스트림(캡처 = FALSE)의 싱크로 사용할지 또는 MIDI 캡처 스트림의 원본으로 사용할지(캡처 = TRUE)로 나타냅니다.
-
마찬가지로 MIDI 또는 DirectMusic 핀에서 스트림을 만들 때
IMiniportDMus::NewStream
메서드의 StreamType 매개 변수는 핀이 MIDI 렌더링 스트림(StreamType = DMUS_STREAM_MIDI_RENDER)의 싱크로 사용할지 또는 MIDI 캡처 스트림(StreamType = DMUS_STREAM_MIDI_CAPTURE)의 원본으로 사용할지 여부를 나타낼 수 있습니다.
IMiniportDMus::NewStream
메서드의 ppMXF 출력 매개 변수를 통해 가져오는)를 쿼리합니다. 포트 드라이버의 웨이브 싱크는 소프트웨어 신시사이저에서 웨이브 데이터를 끌어오기 위해 이 인터페이스의 Render 메서드를 호출합니다. 자세한 내용은 Kernel-Mode Software Synthesizers 대한웨이브 싱크를 참조하세요.
ppMXF, pOuterUnknown, ppServiceGroup, pAllocatorMXF및 pMasterClock 매개 변수는 COM 개체에 대한참조 계산 규칙을 따릅니다.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 바탕 화면 |
헤더 | dmusicks.h(Dmusicks.h 포함) |
IRQL | PASSIVE_LEVEL |