为 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 设备接口。