Função de retorno de chamada PFNKSPINSETDATAFORMAT (ks.h)

A rotina AVStrMiniPinSetDataFormat de um minidriver AVStream é chamada no momento da criação do pin para verificar se o formato de dados previamente combinado é aceitável para essa estrutura KSPIN e uma combinação para essa estrutura KSDATARANGE . Essa rotina também é chamada devido a determinados tipos de alterações de formato dinâmico, por exemplo, a aceitação de uma KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT de propriedade.

Sintaxe

PFNKSPINSETDATAFORMAT Pfnkspinsetdataformat;

NTSTATUS Pfnkspinsetdataformat(
  [in]           PKSPIN Pin,
  [in, optional] PKSDATAFORMAT OldFormat,
  [in, optional] PKSMULTIPLE_ITEM OldAttributeList,
  [in]           const KSDATARANGE *DataRange,
  [in, optional] const KSATTRIBUTE_LIST *AttributeRange
)
{...}

Parâmetros

[in] Pin

Ponteiro para a estrutura KSPIN para a qual o formato de dados está mudando.

[in, optional] OldFormat

Opcional. Ponteiro para uma estrutura KSDATAFORMAT . Os minidrivers podem usar esse campo para determinar o formato de dados que o pino estava usando antes dessa chamada. Se NULL, indica que nenhum formato de dados foi definido para o pino e que a expedição de criação do Pin ainda não foi feita. Um valor NULL aqui indica que essa rotina foi chamada no momento da inicialização para verificação de formato.

[in, optional] OldAttributeList

Opcional. Ponteiro para uma KSMULTIPLE_ITEM que armazena atributos para o formato anterior.

[in] DataRange

Ponteiro para uma estrutura KSDATARANGE . O intervalo de dados para o novo formato.

[in, optional] AttributeRange

Opcional. O intervalo de atributos para o novo formato.

Valor retornado

Retorne STATUS_SUCCESS se o membro ConnectionFormat do Pin corresponde ao intervalo que foi passado para essa rotina. Retorne STATUS_NO_MATCH se ConnectionFormat não corresponder ao intervalo passado e o minidriver quiser continuar tentando encontrar uma combinação com outro intervalo. Retornar um código de erro de escolha se ConnectionFormat não corresponder ao intervalo passado e o minidriver não quiser continuar tentando encontrar uma combinação com outro intervalo. Não retorne STATUS_PENDING.

Comentários

Em um grafo de anel 3, o módulo proxy de streaming do kernel (KsProxy) define o formato de dados com base no formato de conexão ou uma alteração de formato dinâmico. O KsProxy emite uma KSPROPERTY_CONNECTION_DATAFORMAT que, após alguma validação inicial, é convertida nessa chamada de expedição para o minidriver. Consulte Proxy de Streaming de Kernel. Para obter mais informações, consulte Formatos de dados KS e intervalos de dados e interseções DataRange no AVStream.

O minidriver especifica o endereço de AVStrMiniPinSetDataFormat no membro SetDataFormat de sua estrutura KSPIN_DISPATCH configuração.

Essa rotina pode ser chamada antes que o pin receba um IRP_MJ_CREATE, e os minidrivers devem estar preparados para lidar com essa situação.

OldFormat, OldAttributeList e AttributeRange são todos parâmetros opcionais e podem ser NULL.

Essa rotina é opcional.

Requisitos

   
Cliente mínimo com suporte Disponível no Microsoft Windows XP e sistemas operacionais posteriores e directX 8.0 e versões posteriores do DirectX.
Plataforma de Destino Área de trabalho
Cabeçalho ks.h (incluir Ks.h)
IRQL PASSIVE_LEVEL

Confira também

IRP_MJ_CREATE

KSDATAFORMAT

KSDATARANGE

KSMULTIPLE_ITEM

KSPIN

KSPIN_DISPATCH