Interface de streaming de kernel/C e plug-ins de proxy de streaming de kernel
Os fornecedores devem gravar drivers de ponto e/ou subunidade virtual como drivers WDM que usam a interface de classe Stream (Kernel Streaming 1.0, que é implementada no arquivo Stream.sys) ou a interface AVStream (Kernel Streaming 2.0, que é implementada no arquivo Ks.sys). O AVStream é a interface preferencial porque a interface da classe de fluxo está obsoleta e a Microsoft descontinuou qualquer desenvolvimento adicional nela.
Os drivers de subunidade que usam qualquer interface podem coexistir, mesmo dentro da mesma unidade AV/C. Por exemplo, se um driver de subunidade usar AVStream, o driver de subunidade definirá estruturas estáticas que correspondem aos descritores de pino e filtro da subunidade. Em seguida, o driver de subunidade se registra no AVStream chamando a função KsInitializeDriver AVStream. Para obter mais informações sobre os conceitos usados em ambas as interfaces, consulte Kernel Streaming. Para obter mais informações sobre o AVStream, consulte Visão geral do AVStream. Para obter mais informações sobre a classe Stream, consulte Minidrivers de streaming.
Qualquer interface de streaming de kernel fornece o mesmo mecanismo padrão que os aplicativos usam para interagir e controlar um driver de subunidade. A abordagem recomendada para controlar subunidades AV/C no nível do aplicativo é por meio de filtros e grafos de filtro do Microsoft DirectShow. O mecanismo de proxy KS (streaming de kernel) do DirectShow fornece um filtro genérico (ksproxy.ax) que permite uma maneira padrão de representar as propriedades da subunidade, bem como uma maneira padrão de representar eventos que a subunidade pode disparar. Você implementa o código necessário para dar suporte às propriedades e eventos de KS relevantes em seu driver de subunidade AV/C. Para obter mais informações sobre como representar propriedades de subunidade, consulte Conjuntos de Propriedades de Streaming do Kernel. Para obter mais informações sobre como representar eventos de subunidade, consulte Conjuntos de Eventos de Streaming de Kernel.
O filtro de proxy KS pode ser estendido com plug-ins de proxy, fornecidos pela Microsoft ou por um fornecedor. Estender o filtro de proxy KS permite que as interfaces COM ocultem os detalhes de baixo nível da propriedade KS e dos conjuntos de eventos. Você associa o plug-in ao driver de subunidade no arquivo INF do dispositivo.
Uma maneira geral de acessar diretamente a propriedade e os conjuntos de eventos permanece disponível. A interface IAMExtTransport (usada para subunidades de fita) é um exemplo de uma interface implementada em um plug-in de proxy. O plug-in também pode incluir páginas de propriedades que fornecem uma interface do usuário para controlar o dispositivo. Essas páginas de propriedades geralmente são usadas para fins de teste em vez de para interação do dispositivo do usuário final. Os utilitários GraphEdit ou AMCap podem ser usados para testar as propriedades KS do plug-in. Esses utilitários são incluídos no WDK e no SDK do Windows.