Compartilhar via


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

A rotina AVStrMiniPinSetDataFormat de um minidriver AVStream é chamada no momento da criação do pino para verificar se o formato de dados acordado anteriormente é aceitável para essa estrutura KSPIN e uma correspondência 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 solicitação de propriedade KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT.

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á sendo alterado.

[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 FOR NULL, indica que nenhum formato de dados foi definido para o pin 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 estrutura 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.

Retornar valor

Retornar STATUS_SUCCESS se o membro ConnectionFormat do Pin corresponder 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 correspondência 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 correspondência com outro intervalo. Não retorne STATUS_PENDING.

Comentários

Em um grafo de anel 3, o módulo de Proxy de Streaming de Kernel (KsProxy) define o formato de dados com base no formato de conexão acordado ou em uma alteração de formato dinâmico. O KsProxy emite uma solicitação de 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 de DataRange no AVStream.

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

Essa rotina pode ser chamada antes que o pino receba uma 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

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

Confira também

IRP_MJ_CREATE

KSDATAFORMAT

KSDATARANGE

KSMULTIPLE_ITEM

KSPIN

KSPIN_DISPATCH