Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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.