Arabirim işleyici eklentisi

KS minidriver tarafından kullanıma sunulan sürücüye özgü özellik kümesine programlı kullanıcı modu erişimi sağlamak için arabirim işleyici eklentisi yazabilirsiniz. İlk olarak, KS Proxy Eklentilerini Kaydetme bölümünde açıklandığı gibi nesnenizi kaydedin.

Arabirim eklenti sınıfınız CUnknown'dan türetilmiş olabilir:

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

Arabirim eklentisi, oluşturma zamanında MS tarafından sağlanan KS ara sunucusuyla bir araya gelen satıcı tarafından sağlanan bir COM arabirimidir.

Özellikle, eklentinin CreateInstance yöntemi dış bilinmeyen olarak KS ara sunucusuna bir işaretçi alır.

Ardından, MS tarafından sağlanan IKsPropertySet arabirimine yönelik bir işaretçi için bu dış nesneyi sorgulayabilirsiniz:

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

Ardından CreateInstance'tan arabiriminizin oluşturucusunu çağırarak arabirim işleyici nesnenizin bir örneğini oluşturun.

Oluşturucunun çağrılmasında bir parametre olarak IKsPropertySet işaretçisini sağlayın. Oluşturucu daha sonra iKsPropertySet işaretçisini önceki bildirimde m_piKsPropertySet üyesi olarak tutar.

Artık sınıfınızda sırasıyla IKsPropertySet::Get ve IKsPropertySet::Set öğelerini çağıran Get ve Set yöntemlerini uygulayarak sürücü tarafından sunulan özellikleri işleyebilirsiniz.

Alternatif olarak, IKsObject arabirimine yönelik bir işaretçi için dış bilinmeyeni sorgulayabilirsiniz. Ardından, bir dosya tanıtıcısı almak için IKsObject::KsGetObjectHandle çağrısı yapın. Şimdi bu dosya tanıtıcısıyla KsSynchronousIoControlDevice'i çağırarak cihaz özelliklerini işleyebilirsiniz.