IAllocatorMXF 인터페이스(dmusicks.h)
인터페이스는 IAllocatorMXF
DirectMusic 스트림에 대한 버퍼 스토리지를 관리합니다. DMus 포트 드라이버는 이 인터페이스를 구현하고 DMus 미니포트 드라이버에 노출합니다. DMus 포트 드라이버는 개체를 IAllocatorMXF
만들고 이 개체에 대한 포인터를 DMus 미니포트 드라이버의 IMiniportDMus::NewStream 메서드에 전달합니다. IAllocatorMXF
는 IMXF 인터페이스에서 상속됩니다.
IAllocatorMXF
는 미니포트 드라이버가 포트 드라이버의 내부 할당자와 통신하는 인터페이스로, DMUS_KERNEL_EVENT 구조체 풀의 재사용을 할당하고 관리합니다. 각 구조체에는 타임스탬프를 적용한 MIDI 이벤트가 포함될 수 있습니다.
또한 할당자는 큰 이벤트를 저장하는 데 필요한 추가 메모리 할당을 추상화합니다. DMUS_KERNEL_EVENT uData 멤버는 포인터 크기인 32비트 시스템의 경우 4바이트, 64비트 시스템의 경우 8바이트인 공용 구조체입니다. 데이터가 해당 공간에 맞게 충분히 작으면 uData 에 실제 MIDI 데이터가 포함됩니다. 그러나 해당 이벤트의 데이터가 4바이트 또는 8바이트 포인터보다 큰 경우 cbEvent 멤버는 이 사실을 나타내고 uData 는 실제 MIDI 데이터 대신 버퍼에 대한 포인터를 포함합니다. 이 버퍼는 할당자에 의해 관리되며 모든 포트 드라이버 구현에 대한 일정한 크기입니다.
상속
IAllocatorMXF 인터페이스는 IUnknown 인터페이스에서 상속됩니다. IAllocatorMXF 에는 다음과 같은 유형의 멤버도 있습니다.
메서드
IAllocatorMXF 인터페이스에는 이러한 메서드가 있습니다.
IAllocatorMXF::GetBuffer GetBuffer 메서드는 긴 MIDI 이벤트에 대한 버퍼를 할당합니다. |
IAllocatorMXF::GetBufferSize GetBufferSize 메서드는 할당자에서 버퍼 크기를 가져옵니다. |
IAllocatorMXF::GetMessage GetMessage 메서드는 포트 드라이버의 할당자를 사용하여 DMUS_KERNEL_EVENT 구조를 다시 사용하는 DirectMusic 커널 모드 구성 요소의 검색 지점 역할을 합니다. |
IAllocatorMXF::P utBuffer 이 메서드는 현재 미니포트 드라이버에서 사용되지 않습니다. PutBuffer 메서드는 버퍼를 할당자에 전달하지만 IMXF::P utMessage가 호출되면 자동으로 발생합니다. |
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | dmusicks.h |