Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können ein Schnittstellenhandler-Plug-In schreiben, um programmgesteuerten Benutzermoduszugriff auf einen treiberspezifischen Eigenschaftensatz bereitzustellen, der von einem KS-Minidriver verfügbar gemacht wird. Registrieren Sie zunächst Das Objekt, wie in der Registrierung von KS-Proxy-Plug-Ins beschrieben.
Ihre Schnittstellen-Plug-In-Klasse kann von CUnknown abgeleitet werden:
class CMyPluginInterface : public CUnknown
{
public:
// creation method
static CUnknown* CALLBACK CreateInstance( LPUNKNOWN piOuterUnknown, HRESULT* phResult );
private:
CMyPluginInterface( IKsPropertySet* piKsPropertySet );
IKsPropertySet* m_piKsPropertySet;
};
Das Schnittstellen-Plug-In ist eine vom Anbieter bereitgestellte COM-Schnittstelle, die zur Erstellungszeit mit dem ms-bereitgestellten KS-Proxy aggregiert wird.
Insbesondere empfängt die CreateInstance-Methode des Plug-Ins einen Zeiger auf den KS-Proxy als äußeres Unbekanntes.
Anschließend können Sie dieses äußere Objekt abfragen, um einen Zeiger auf die von MS bereitgestellte IKsPropertySet-Schnittstelle zu erhalten.
hResult = piOuterUnknown->QueryInterface(
__uuidof( piKsPropertySet ),
&piKsPropertySet );
Rufen Sie dann aus CreateInstance den Konstruktor der Schnittstelle auf, um eine Instanz des Schnittstellenhandlerobjekts zu erstellen.
Stellen Sie den Zeiger auf "IKsPropertySet " als Parameter im Aufruf des Konstruktors bereit. Der Konstruktor behält dann den Zeiger auf iKsPropertySet als m_piKsPropertySet Member in der vorherigen Deklaration bei.
Jetzt können Sie get- und Set-Methoden in Ihrer Klasse implementieren, die IKsPropertySet::Get und IKsPropertySet::Set aufrufen, um Eigenschaften zu bearbeiten, die vom Treiber verfügbar gemacht werden.
Alternativ können Sie das äußere Unbekannte für einen Zeiger auf die IKsObject-Schnittstelle abfragen. Rufen Sie dann IKsObject::KsGetObjectHandle auf, um ein Dateihandle abzurufen. Jetzt bearbeiten Sie Geräteeigenschaften, indem Sie KsSynchronousIoControlDevice mit diesem Dateihandle aufrufen.