Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode escrever um plug-in do manipulador de interface para fornecer acesso programático no modo de usuário a um conjunto de propriedades específico do driver que é exposto por um minidriver KS. Primeiro, registre seu objeto conforme descrito em Registrar Plug-ins de Proxy KS.
Sua classe de plug-in de interface pode derivar do 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 pela MS:
hResult = piOuterUnknown->QueryInterface(
__uuidof( piKsPropertySet ),
&piKsPropertySet );
Em seguida, no CreateInstance, invoque o construtor de sua interface para criar uma instância do objeto do manipulador de interface.
Forneça o ponteiro para IKsPropertySet como um parâmetro na invocação do construtor. Em seguida, o construtor mantém o ponteiro para iKsPropertySet como o membro m_piKsPropertySet na declaração anterior.
Agora você pode implementar 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 consultar o objeto desconhecido externo para obter 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.