共用方式為


介面處理常式外掛程式

您可以撰寫介面處理常式外掛程式,以提供由 KS minidriver 公開之驅動程式特定屬性集的程式設計使用者模式存取。 首先,註冊物件,如 註冊 KS Proxy 外掛程式中所述。

您的介面外掛程式類別可能衍生自 CUnknown

class CMyPluginInterface : public CUnknown
{
public:
    // creation method
    static CUnknown* CALLBACK CreateInstance( LPUNKNOWN piOuterUnknown, HRESULT* phResult );
private:
 CMyPluginInterface( IKsPropertySet* piKsPropertySet );
    IKsPropertySet* m_piKsPropertySet;
};

介面外掛程式是廠商提供的 COM 介面,可在建立時與 MS 提供的 KS Proxy 匯總。

具體而言,外掛程式的 CreateInstance 方法會接收 KS Proxy 的指標做為外部未知。

然後,您可以查詢這個外部物件,以取得 MS 提供的 IKsPropertySet 介面指標:

hResult = piOuterUnknown->QueryInterface(
                __uuidof( piKsPropertySet ),
                 &piKsPropertySet );

然後,從 CreateInstance叫用介面的建構函式,以建立介面處理常式物件的實例。

在建構函式調用中,提供 IKsPropertySet 的指標作為參數。 然後,建構函式會將 iKsPropertySet 的指標保留為上一個宣告中的m_piKsPropertySet成員。

現在,您可以在類別中實作 Get 和 Set 方法,以分別呼叫 IKsPropertySet::GetIKsPropertySet::Set 來操作驅動程式所公開的屬性。

或者,您可以查詢其 IKsObject 介面指標的外部未知。 然後呼叫 IKsObject::KsGetObjectHandle 以取得檔案控制代碼。 現在,您可以使用此檔案控制碼呼叫 KsSynchronousIoControlDevice 來操作裝置屬性。