Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode criar um plug-in de manipulador de interface para fornecer acesso programático no modo de utilizador a um conjunto de propriedades específico do driver que é exposto por um minidriver KS. Primeiro, registre seu objeto conforme descrito em Registrando plug-ins de proxy KS.
Sua classe de plug-in de interface pode derivar de CUnknown:
class CMyPluginInterface : public CUnknown
{
public:
// creation method
static CUnknown* CALLBACK CreateInstance( LPUNKNOWN piOuterUnknown, HRESULT* phResult );
private:
CMyPluginInterface( IKsPropertySet* piKsPropertySet );
IKsPropertySet* m_piKsPropertySet;
};
O plug-in de interface é uma interface COM fornecida pelo fornecedor que se agrega ao proxy KS fornecido pela MS no momento da criação.
Especificamente, o método CreateInstance do plug-in recebe um ponteiro para o proxy KS como um desconhecido externo.
Em seguida, você pode consultar esse objeto externo para obter um ponteiro para a interface IKsPropertySet fornecida pelo MS:
hResult = piOuterUnknown->QueryInterface(
__uuidof( piKsPropertySet ),
&piKsPropertySet );
Em seguida, de CreateInstance, invoque o construtor de sua interface para criar uma instância de seu objeto de manipulador de interface.
Forneça o ponteiro para IKsPropertySet como parâmetro na invocação do construtor. O construtor, em seguida, retém o ponteiro para iKsPropertySet como o membro m_piKsPropertySet na declaração anterior.
Agora você pode implementar os métodos Get e set em sua classe que chamam IKsPropertySet::Get e IKsPropertySet::set, respectivamente, para manipular as propriedades expostas pelo driver.
Como alternativa, você pode interrogar o objeto desconhecido exterior em busca de um ponteiro para sua interface IKsObject. Em seguida, chame IKsObject::KsGetObjectHandle para obter um identificador de arquivo. Agora você manipula as propriedades do dispositivo chamando KsSynchronousIoControlDevice com esse identificador de arquivo.