为 WBDI 驱动程序创建设备接口
在设备回调对象初始化并返回到驱动程序后,在设置队列时,驱动程序应为生物识别设备创建设备接口实例。
具体而言,WBDI 驱动程序必须通过调用 IWDFDevice::CreateDeviceInterface 来公开 GUID_DEVINTERFACE_BIOMETRIC_READER 设备接口:
hr = m_FxDevice->CreateDeviceInterface(&GUID_DEVINTERFACE_BIOMETRIC_READER, NULL);
此调用后跟 IWDFDevice::AssignDeviceInterfaceState 调用:
hr = m_FxDevice->AssignDeviceInterfaceState(&GUID_DEVINTERFACE_BIOMETRIC_READER,
NULL,
TRUE);
想要向旧版(非 WBDI)生物识别堆栈公开功能的 WBDI 驱动程序应公开旧版应用程序的另一个设备接口,并确保在安装旧版堆栈的 INX 文件中将独占值设置为零。
公开 GUID_DEVINTERFACE_BIOMETRIC_READER 设备接口,会导致 WBF 服务仅枚举驱动程序。 如果未设置独占模式,WBF 不会尝试打开和控制设备。
或者,驱动程序可以在内部检测到它处于旧版模式,然后不公开 GUID_DEVINTERFACE_BIOMETRIC_READER 设备接口。