Interface IKsInterfaceHandler (ksproxy.h)
A interface IKsInterfaceHandler fornece métodos que empacotam amostras no kernel com base na estrutura de KSPIN_INTERFACE especificada para a conexão estabelecida. A IID dessa interface é IID_IKsInterfaceHandler.
Herança
A interface IKsInterfaceHandler herda da interface IUnknown .
Métodos
A interface IKsInterfaceHandler tem esses métodos.
IKsInterfaceHandler::KsCompleteIo O método KsCompleteIo limpa cabeçalhos estendidos e libera amostras de mídia após a conclusão da E/S (entrada e saída). |
IKsInterfaceHandler::KsProcessMediaSamples O método KsProcessMediaSamples processa exemplos de mídia. |
IKsInterfaceHandler::KsSetPin O método KsSetPin informa o manipulador de interface de streaming sobre o pin com o qual se comunicar ao passar dados. |
Comentários
Para manter o proxy neutro em relação à interface usada para transmitir dados, os manipuladores de interface são carregados para traduzir amostras de mídia do DirectShow de e para um driver no nível do kernel. Um manipulador de interface implementa os métodos da interface IKsInterfaceHandler para executar pré-processamento e pós-processamento em todos os exemplos de mídia e sinalizar a conclusão de E/S (entrada e saída).
Cada manipulador de interface pode realizar marshaling de amostras de mídia usando seu próprio método. O manipulador de interface padrão que o proxy KS implementa usa IOCTL_KS_WRITE_STREAM para a operação de recebimento e IOCTL_KS_READ_STREAM para a operação de envio, mas um manipulador de interface personalizado pode usar algum outro método.
Quando um pin é conectado, o proxy usa o GUID no membro Set da estrutura KSPIN_INTERFACE para determinar qual manipulador de interface carregar. O manipulador de interface é registrado como um servidor COM nessa classe GUID. O manipulador de interface deve lidar com todas as variações da interface dentro do conjunto de interfaces. Não se espera que os pinos de ponte transmitam dados e os manipuladores de interface não são carregados para eles.
Em uma solicitação de criação de manipulador de interface por meio de CoCreateInstance, o servidor sempre recebe um IUnknown externo com o qual criar o objeto COM. Esse IUnknown é uma interface no objeto pin que está carregando esse manipulador de interface. O ponteiro da interface IUnknown pode ser usado para consultar informações ou interfaces, como a interface IKsControl , do pino, embora o pino do modo kernel não tenha sido criado no momento em que o manipulador de interface é carregado. Nenhuma referência deve ser deixada no objeto externo por meio da aquisição de interfaces, pois resultará em uma contagem de referência circular. Usar as interfaces sem uma contagem de referência é aceitável, pois o objeto externo é proprietário do manipulador e, por definição, é destruído quando a contagem de referência do objeto externo atinge zero.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | ksproxy.h |