KSPROPERTY_PIN_MODEDATAFORMATS
Os clientes usam a propriedade KSPROPERTY_PIN_MODEDATAFORMATS para recuperar uma lista dos formatos com suporte para cada modo de processamento de sinal de áudio com suporte para pinos instanciados pela fábrica de pinos.
Tabela de Resumo de Uso
Obter | Definir | Destino | Tipo de descritor de propriedade | Tipo de valor da propriedade |
---|---|---|---|---|
Sim | No | Filtrar | KSP_PIN, seguido por um GUID de modo | KSMULTIPLE_ITEM estrutura, seguida por uma sequência de estruturas KSDATAFORMAT |
Comentários
Os clientes usam essa propriedade para recuperar uma lista de formatos com suporte para um modo de processamento de sinal de áudio específico por pinos instanciados pela fábrica de pinos.
Especifique essa propriedade usando KSP_PIN seguida pelo GUID do Modo, em que o membro KSP_PIN e o GUID do Modo especificam a fábrica de pinos e o Modo para os quais retornar a lista de formatos.
KSPROPERTY_PIN_MODEDATAFORMATS retorna os formatos com suporte como uma estrutura KSMULTIPLE_ITEM em que cada item na estrutura é um ULONGLONG com o deslocamento para uma estrutura KSDATAFORMAT específica no valor desde o início do KSMULTIPLE_ITEM.
O valor KSMULTIPLE_ITEM::Size inclui o tamanho da KSMULTIPLE_ITEM e os tamanhos de cada KSDATAFORMAT.
O valor KSMULTIPLE_ITEM::Count inclui a contagem de índices para cada KSDATAFORMAT.
Em quase todos os casos, as estruturas KSDATAFORMAT que estão sendo retornadas serão, na verdade , KSDATAFORMAT_WAVEFORMATEXTENSIBLE ou KSDATAFORMAT_WAVEFORMATEX estruturas com um Size correspondente.
Por exemplo, um valor para uma fábrica de pinos que dá suporte a dois formatos seria semelhante ao seguinte.
{
// Example Property Value Result, with 2 formats
// When computing the FormatSize make sure to align the size to ULONGLONG
// KSDATAFORMAT::Size is WDF_ALIGN_SIZE_UP(KsDataFormat->FormatSize, sizeof(ULONGLONG));
// Size of the KSMULTIPLE_ITEM structure + Size of two ULONG offset values + Size of first format + Size of second format
sizeof(KSMULTIPLE_ITEM) + sizeof(ULONG)*2 + (First KSDATAFORMAT::Size) + (Second KSDATAFORMAT::Size),
// Number of formats being returned
2,
// Offset of the first format from the beginning of the Property Value
2 * sizeof(ULONG),
// Offset of the second format from the beginning of the Property Value
2 * sizeof(ULONG) + (First KSDATAFORMAT::Size),
// First format structure
{(First KSDATAFORMAT)},
// Second format structure
{(Second KSDATAFORMAT)}
}
Para obter mais informações, consulte Extensible Wave-Format Descriptors.
Recomendações de buffer e formato de modo com suporte
A partir do Windows 10, versão 2004, o uso de KSPROPERTY_PIN_MODEDATAFORMATS e KSAUDIO_PACKETSIZE_CONSTRAINTS2 é a abordagem preferencial para os drivers relatarem os formatos de modo de processamento de sinal de áudio com suporte e as restrições de tamanho do buffer. O uso dessa abordagem permite que o sistema de áudio do Windows recupere com eficiência os recursos de streaming do ponto de extremidade sem precisar criar vários fluxos para descobrir os formatos e tamanhos de buffer compatíveis com o ponto de extremidade.
Requisitos
Versão: Disponível a partir do Windows 10, versão 2004
Cabeçalho: ks.h (inclua Ks.h)