Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Можно написать подключаемый модуль обработчика интерфейса для обеспечения программного пользовательского режима доступа к набору свойств, специфичному для драйвера, которые предоставляются minidriver KS. Сначала зарегистрируйте объект, как описано в Registering KS Proxy Plug-ins.
Класс подключаемого модуля интерфейса может быть производным от CUnknown:
class CMyPluginInterface : public CUnknown
{
public:
// creation method
static CUnknown* CALLBACK CreateInstance( LPUNKNOWN piOuterUnknown, HRESULT* phResult );
private:
CMyPluginInterface( IKsPropertySet* piKsPropertySet );
IKsPropertySet* m_piKsPropertySet;
};
Подключаемый модуль интерфейса — это COM-интерфейс, предоставляемый поставщиком, который объединяется функционально с прокси-сервером KS, предоставленным MS, на этапе создания.
В частности, метод CreateInstance подключаемого модуля получает указатель на прокси-сервер "KS", как на внешнего неизвестного.
Затем можно выполнить запрос у этого внешнего объекта, чтобы получить указатель на предоставленный MS интерфейс IKsPropertySet.
hResult = piOuterUnknown->QueryInterface(
__uuidof( piKsPropertySet ),
&piKsPropertySet );
Затем из CreateInstance вызовите конструктор интерфейса, чтобы создать экземпляр объекта обработчика интерфейса.
Укажите указатель на IKsPropertySet в качестве параметра в вызове конструктора. Затем конструктор сохраняет указатель на iKsPropertySet в качестве элемента m_piKsPropertySet в предыдущем объявлении.
Теперь вы можете реализовать методы Get и Set в классе, которые вызывают IKsPropertySet::Get и IKsPropertySet::Set соответственно для управления свойствами, предоставляемыми драйвером.
Кроме того, можно запросить внешний объект неизвестного типа для получения указателя на его интерфейс IKsObject. Затем вызовите IKsObject::KsGetObjectHandle , чтобы получить дескриптор файла. Теперь вы управляете свойствами устройства путем вызова KsSynchronousIoControlDevice с помощью этого дескриптора файла.