Partilhar via


Interface IAllocatorMXF (dmusicks.h)

A interface IAllocatorMXF gerencia o armazenamento de buffer para fluxos DirectMusic. O driver de porta DMus implementa essa interface e a expõe ao driver de miniporto DMus. O driver de porta DMus cria um objeto IAllocatorMXF e passa um ponteiro para esse objeto para o método IMiniportDMus::NewStream do driver de miniporto DMus. IAllocatorMXF herda da interface de IMXF.

IAllocatorMXF é a interface pela qual o driver de miniporto se comunica com a do alocador deinterno do driver de porta, que aloca e gerencia a reutilização de um pool de estruturas de DMUS_KERNEL_EVENT. Cada estrutura pode conter um evento MIDI com carimbo de data/hora.

O alocador também abstrai a alocação da memória adicional necessária para armazenar eventos grandes. O uData membro do DMUS_KERNEL_EVENT é uma união do tamanho de um ponteiro: quatro bytes em um sistema de 32 bits e oito bytes em um sistema de 64 bits. Se os dados forem pequenos o suficiente para caber nesse espaço, uData conterá os dados MIDI reais. Se os dados desse evento forem maiores que o ponteiro de 4 ou 8 bytes, no entanto, o membro cbEvent indicará esse fato e uData conterá um ponteiro para um buffer em vez dos dados midi reais. Esse buffer é gerenciado pelo alocador e é um tamanho constante para qualquer implementação de driver de porta.

Herança

A interface IAllocatorMXF herda da interface IUnknown. IAllocatorMXF também tem estes tipos de membros:

Métodos

A interface IAllocatorMXF tem esses métodos.

 
IAllocatorMXF::GetBuffer

O método GetBuffer aloca um buffer para eventos MIDI longos.
IAllocatorMXF::GetBufferSize

O método GetBufferSize obtém o tamanho do buffer do alocador.
IAllocatorMXF::GetMessage

O método GetMessage serve como o ponto de recuperação para qualquer componente do modo kernel DirectMusic que utiliza o alocador do driver de porta para reutilizar estruturas DMUS_KERNEL_EVENT.
IAllocatorMXF::P utBuffer

Este método não é usado atualmente pelo driver de miniporto. O método PutBuffer passa um buffer para o alocador, mas isso ocorre automaticamente quando IMXF::P utMessage é chamado de qualquer maneira.

Requisitos

Requisito Valor
da Plataforma de Destino Windows
cabeçalho dmusicks.h