Compartilhar via


Interface IKsInterfaceHandler (ksproxy.h)

A interface IKsInterfaceHandler fornece métodos que agrupam 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 amostras de mídia.
IKsInterfaceHandler::KsSetPin

O método KsSetPin informa o manipulador de interface de streaming sobre o pino com o qual se comunicar ao passar dados.

Observações

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 o pré-processamento e o pós-processamento em todos os exemplos de mídia e sinalizar a conclusão da E/S (entrada e saída).

Cada manipulador de interface pode fazer 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 pino é conectado, o proxy usa o GUID no Definir membro 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 é esperado 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 apresenta uma IUnknown externa com a qual criar o objeto COM. Este IUnknown é uma interface no objeto pin que está carregando esse manipulador de interface. O ponteiro de interface IUnknown pode ser usado para consultar informações ou interfaces, como a interface de IKsControl, a partir do pino, embora o pin 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 isso 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
da Plataforma de Destino Windows
cabeçalho ksproxy.h

Consulte também

CoCreateInstance

IKsControl

KSPIN_INTERFACE