Bagikan melalui


Pengelola plug-in antarmuka

Anda dapat menulis plug-in handler antarmuka untuk menyediakan akses mode pengguna terprogram ke kumpulan properti khusus driver yang diekspos oleh minidriver KS. Pertama, daftarkan objek Anda seperti yang dijelaskan dalam Mendaftarkan Plug-in Proksi KS.

Kelas plug-in antarmuka Anda dapat berasal dari CUnknown:

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

Plug-in antarmuka adalah antarmuka COM dari vendor yang digabungkan dengan proksi KS yang disediakan oleh Microsoft (MS) saat pembuatan.

Secara khusus, metode CreateInstance plug-in menerima pointer ke proksi KS sebagai luar yang tidak diketahui.

Anda kemudian dapat mengkueri objek luar ini untuk penunjuk ke antarmuka IKsPropertySet yang disediakan MS:

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

Kemudian, dari CreateInstance, panggil konstruktor antarmuka Anda untuk membuat instans objek handler antarmuka Anda.

Berikan pointer ke IKsPropertySet sebagai parameter dalam pemanggilan konstruktor. Konstruktor kemudian menyimpan pointer ke iKsPropertySet sebagai anggota m_piKsPropertySet dalam deklarasi sebelumnya.

Sekarang Anda dapat menerapkan metode Get and Set di kelas Anda yang memanggil IKsPropertySet::Get dan IKsPropertySet::Set masing-masing untuk memanipulasi properti yang diekspos oleh driver.

Atau, Anda dapat mengkueri obyek luar yang tidak diketahui untuk penunjuk ke antarmuka IKsObject-nya. Kemudian panggil IKsObject::KsGetObjectHandle untuk mendapatkan handel file. Sekarang Anda memanipulasi properti perangkat dengan memanggil KsSynchronousIoControlDevice dengan handel file ini.