Criando uma interface de dispositivo para um driver WBDI
Depois que o objeto de retorno de chamada do dispositivo tiver sido inicializado e retornado ao driver, no momento da configuração da fila, o driver deverá criar uma instância de interface do dispositivo para o dispositivo biométrico.
Especificamente, os drivers WBDI devem expor a interface do dispositivo GUID_DEVINTERFACE_BIOMETRIC_READER chamando IWDFDevice::CreateDeviceInterface:
hr = m_FxDevice->CreateDeviceInterface(&GUID_DEVINTERFACE_BIOMETRIC_READER, NULL);
Essa chamada é seguida por uma chamada para IWDFDevice::AssignDeviceInterfaceState:
hr = m_FxDevice->AssignDeviceInterfaceState(&GUID_DEVINTERFACE_BIOMETRIC_READER,
NULL,
TRUE);
Um driver WBDI que deseja expor a funcionalidade a uma pilha biométrica herdada (não WBDI) deve expor outra interface de dispositivo para aplicativos herdados e verificar se o valor Exclusive está definido como zero no arquivo INX que instala a pilha herdada.
Expor a interface do dispositivo GUID_DEVINTERFACE_BIOMETRIC_READER faz com que o serviço WBF enumere apenas o driver. Se o modo Exclusivo não estiver definido, o WBF não tentará abrir e controlar o dispositivo.
Como alternativa, o driver pode detectar internamente que ele está no modo herdado e, em seguida, não expor o GUID_DEVINTERFACE_BIOMETRIC_READER interface do dispositivo.