Поделиться через


Создание интерфейса устройства для драйвера WBDI

После инициализации и возврата объекта обратного вызова устройства драйверу во время настройки очереди драйвер должен создать экземпляр интерфейса устройства для биометрического устройства.

В частности, драйверы WBDI должны предоставлять интерфейс устройства GUID_DEVINTERFACE_BIOMETRIC_READER путем вызова IWDFDevice::CreateDeviceInterface:

hr = m_FxDevice->CreateDeviceInterface(&GUID_DEVINTERFACE_BIOMETRIC_READER, NULL);

За этим вызовом следует вызов IWDFDevice::AssignDeviceInterfaceState:

hr = m_FxDevice->AssignDeviceInterfaceState(&GUID_DEVINTERFACE_BIOMETRIC_READER,
 NULL,
 TRUE);

Драйвер WBDI, который хочет предоставить функциональные возможности для устаревшего биометрического стека (не WBDI), должен предоставлять другой интерфейс устройства для устаревших приложений и убедиться, что значение Exclusive равно нулю в INX-файле, устанавливающем устаревший стек.

Предоставление интерфейса GUID_DEVINTERFACE_BIOMETRIC_READER устройства приводит к тому, что служба WBF перечисляет только драйвер. Если монопольный режим не установлен, WBF не пытается открыть устройство и управлять ими.

Кроме того, драйвер может внутренне обнаружить, что он находится в устаревшем режиме, а затем не предоставлять GUID_DEVINTERFACE_BIOMETRIC_READER интерфейс устройства.