Compartilhar via


Interface IAllocatorMXF (dmusicks.h)

A IAllocatorMXF interface 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 IAllocatorMXF objeto e passa um ponteiro para esse objeto para o método IMiniportDMus::NewStream do driver de miniporto DMus. IAllocatorMXF herda da interface IMXF .

IAllocatorMXF é a interface pela qual o driver de miniporto se comunica com o alocador interno do driver de porta, que aloca e gerencia a reutilização de um pool de estruturas 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 membro uData 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 esses 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

Esse método não é usado atualmente pelo driver de miniporte. 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
Plataforma de Destino Windows
Cabeçalho dmusicks.h