Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile scrivere un plug-in del gestore dell'interfaccia per fornire l'accesso in modalità utente a livello di codice a un set di proprietà specifico del driver esposto da un minidriver KS. Prima di tutto, registrare l'oggetto come descritto in Registrazione dei plug-in proxy KS.
La classe plug-in dell'interfaccia può derivare da CUnknown:
class CMyPluginInterface : public CUnknown
{
public:
// creation method
static CUnknown* CALLBACK CreateInstance( LPUNKNOWN piOuterUnknown, HRESULT* phResult );
private:
CMyPluginInterface( IKsPropertySet* piKsPropertySet );
IKsPropertySet* m_piKsPropertySet;
};
Il plug-in dell'interfaccia è un'interfaccia COM fornita dal produttore che si aggrega con il proxy KS fornito da MS al momento della creazione.
In particolare, il metodo CreateInstance del plug-in riceve come parametro un puntatore al proxy KS come elemento sconosciuto esterno.
È quindi possibile interrogare questo oggetto esterno per ottenere un puntatore all'interfaccia IKsPropertySet fornita da Microsoft.
hResult = piOuterUnknown->QueryInterface(
__uuidof( piKsPropertySet ),
&piKsPropertySet );
Quindi, da CreateInstance, richiamare il costruttore dell'interfaccia per creare un'istanza dell'oggetto gestore dell'interfaccia.
Specificare il puntatore a IKsPropertySet come parametro nella chiamata del costruttore. Nella dichiarazione precedente, il costruttore mantiene quindi il puntatore a iKsPropertySet come membro m_piKsPropertySet.
È ora possibile implementare i metodi Get e Set nella classe che chiamano rispettivamente IKsPropertySet::Get e IKsPropertySet::Set per modificare le proprietà esposte dal driver.
In alternativa, è possibile eseguire una query sull'ignoto esterno per ottenere un puntatore alla sua interfaccia IKsObject. Quindi, chiamare IKsObject::KsGetObjectHandle per ottenere un handle di file. A questo punto è possibile modificare le proprietà del dispositivo chiamando KsSynchronousIoControlDevice con questo handle di file.