Création d’une interface de périphérique pour un pilote WBDI
Une fois l’objet de rappel de périphérique initialisé et retourné au pilote, au moment de la configuration de la file d’attente, le pilote doit créer une interface de périphérique instance pour l’appareil biométrique.
Plus précisément, les pilotes WBDI doivent exposer l’interface de périphérique GUID_DEVINTERFACE_BIOMETRIC_READER en appelant IWDFDevice::CreateDeviceInterface :
hr = m_FxDevice->CreateDeviceInterface(&GUID_DEVINTERFACE_BIOMETRIC_READER, NULL);
Cet appel est suivi d’un appel à IWDFDevice::AssignDeviceInterfaceState :
hr = m_FxDevice->AssignDeviceInterfaceState(&GUID_DEVINTERFACE_BIOMETRIC_READER,
NULL,
TRUE);
Un pilote WBDI qui souhaite exposer des fonctionnalités à une pile biométrique héritée (non WBDI) doit exposer une autre interface d’appareil pour les applications héritées et s’assurer que la valeur Exclusive est définie sur zéro dans le fichier INX qui installe la pile héritée.
L’exposition de l’interface de périphérique GUID_DEVINTERFACE_BIOMETRIC_READER entraîne l’énumération du pilote uniquement par le service WBF. Si le mode exclusif n’est pas défini, WBF n’essaie pas d’ouvrir et de contrôler l’appareil.
Le pilote peut également détecter en interne qu’il est en mode hérité, puis ne pas exposer l’interface du périphérique GUID_DEVINTERFACE_BIOMETRIC_READER.