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 |