Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um formato de dados é um único conjunto de parâmetros que descrevem algum aspeto de uma conexão. Por exemplo, um formato de dados de áudio pode especificar um determinado formato de áudio em X amostras por segundo e Y bits por amostra.
Um intervalo de dados especifica uma sequência de parâmetros válidos. Por exemplo, um intervalo de dados de áudio pode especificar um determinado formato de áudio em amostras A-B por segundo e bits C-D por amostra.
O minidriver fornece uma lista de intervalos de dados que ele suporta para um pino específico no membro DataRanges da estrutura KSPIN_DESCRIPTOR correspondente.
No AVStream, os minidrivers podem fornecer os seus próprios manipuladores de interseção de intervalo de dados fornecendo um apontador para uma rotina de callback provida pelo minidriver no membro IntersectHandler de um KSPIN_DESCRIPTOR_EX. Para permitir que o AVStream cruze os intervalos, defina este membro como NULL. Consulte AVStrMiniIntersectHandlerEx para saber como definir a rotina de retorno de chamada.
Se um minidriver fornecer um manipulador de interseção, quando for necessária a realização de uma interseção, o minidriver receberá dois intervalos de dados que correspondem no tipo principal, subformato e especificador. Além disso, os atributos necessários dos intervalos de dados correspondem.
Se os intervalos se cruzarem e espaço de buffer suficiente for fornecido no parâmetro Data da rotina de retorno de chamada AVStrMiniIntersectHandlerEx, a rotina de interseção seleciona um formato da interseção e o retorna ao chamador no buffer apontado por Data.
Se os dois intervalos de dados não se cruzarem, o manipulador retornará STATUS_NO_MATCH.
Se o minidriver tiver especificado um despacho AVStrMiniPinSetDataFormat, AVStream chamará esse despacho para informar o minidriver que AVStream está definindo um formato específico no pino. Forneça um ponteiro para a sua rotina de callback AVStrMiniPinSetDataFormat no membro SetDataFormat da estrutura KSPIN_DISPATCH. (Minidrivers que são clientes da classe de fluxo recebem SRB_SET_DATA_FORMAT em vez de AVStrMiniPinSetDataFormat.)
O minidriver pode recusar um formato proposto retornando STATUS_NO_MATCH de AVStrMiniPinSetDataFormat.
Além da chamada inicial para AVStrMiniPinSetDataFormat antes do pino ser criado, seu minidriver pode receber uma segunda chamada AVStrMiniPinSetDataFormat pouco antes da transição do pino para o estado RUN. Se o seu cliente AVStream ou de classe de fluxo for um minidriver de captura de vídeo e você receber essa notificação, esse despacho conterá os parâmetros de superfície reais. Se possível, o minidriver não deve falhar nesta segunda alteração de formato. Não assuma que ocorrerá uma segunda chamada de despacho.
O minidriver deve capturar dados em qualquer formato contido no último despacho AVStrMiniPinSetDataFormat bem-sucedido.