Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os pinos KS especificam formatos de dados e intervalos usando as estruturas KSDATAFORMAT e KSDATARANGE . Um formato de dados especifica um único atributo de um fluxo de dados, por exemplo, um tamanho de amostragem de áudio de 16 bits. Um intervalo de dados especifica vários formatos, por exemplo, um intervalo de amostragem de áudio de 16 a 24 bits.
Um minidriver inclui uma matriz de estruturas do tipo KSDATARANGE em cada estrutura KSPIN_DESCRIPTOR que ele fornece. Os formatos fornecidos pela Microsoft são enumerados em ksmedia.h.
Uma estrutura KSDATARANGE tem os mesmos membros que uma estrutura KSDATAFORMAT; no entanto, o minidriver pode especificar valores curinga para os membros de formato principal, subformato e especificador do KSDATARANGE.
Os minidrivers usam versões estendidas dessas estruturas para definir valores específicos para mídia. Para ler sobre como isso funciona na captura de áudio e vídeo, consulte: Formatos de dados de áudio e intervalos de dados e selecionar um formato de fluxo.
Os clientes usam as seguintes propriedades para consultar o suporte ao formato de dados dos pinos instanciados por uma determinada fábrica de pinos do filtro.
KSPROPERTY_PIN_DATARANGES. O filtro KS relata todos os intervalos de dados com suporte por pinos instanciados pela fábrica de pinos. Isso inclui todos os formatos de dados que o pin poderia algum dia suportar.
KSPROPERTY_PIN_CONSTRAINEDDATARANGES. O filtro KS relata todos os intervalos de dados com suporte por pinos instanciados pela fábrica de pinos, considerando o estado atual do driver interno.
KSPROPERTY_PIN_PROPOSEDATAFORMAT. Os clientes podem usar essa propriedade para consultar se os pinos instanciados pelo pin factory dão suporte a um formato de dados específico.
KSPROPERTY_PIN_DATAINTERSECTION. Os clientes podem usar essa propriedade para oferecer uma variedade de formatos de dados.
Depois que um pin é instanciado, um cliente no modo de usuário pode determinar o formato de dados atual ou solicitar uma alteração do formato de dados por meio de solicitações de propriedade KSPROPSETID_Connection . Por exemplo, o cliente usa KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT para determinar se um pin dá suporte a um determinado formato de dados. O cliente usa KSPROPERTY_CONNECTION_DATAFORMAT para alterar o formato de dados.
Os minidrivers e clientes do KS podem negociar dinamicamente formatos de dados. Quando o formato de dados de um fluxo é alterado, o minidriver especifica a flag KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY no membro OptionsFlags de um KSSTREAM_HEADER. O minidriver passa o novo formato de dados, descrito em uma estrutura KSDATAFORMAT, no buffer de dados correspondente.