Windows Biometric Framework for fingerprint device - c++

We have our fingerprint device which is working properly as USB device.
Data capturing works fine with our proprietary application.
Currently we are using custom vendor USB class for driver development.
When we plug this device, this device is listed in "Universial Serial Bus Controller" catagories in Windows Device Manager.
We want to use Windows Biometric Framework for the same device to achieve Windows Biometric login.
I understand that, we need to write WBDI compitible driver but I have query related to fingerprint device hardware.
We are targeting Windows 7 and later operating systems.
Will there be any changes required in hardware to work with WBDI driver ?

Related

Reading files from Android devices using WebUSB on Windows

I was wondering whether it is possible implement a subset of MTP on top of WebUSB, connect to an Android device from Windows, and retrieve files from the device?
If I install a WinUSB driver with Zadig, I can claim the interface. However, when I try to use the default "MTP USB Device" driver, I'm not able to claim the interface. I'm assuming that this is because the Windows MTP stack automatically claims the interface, even if the "MTP USB Device" is also a WinUSB driver?
The reason why I can't just use the WinUSB driver from Zadig, is that it breaks MTP access for programs that use the Windows Portable Device API. Is it at all possible to create a USB driver that will allow both MTP access and USB access, to allow for a user-space MTP driver, as there's no MTP functionality built into Chrome?
Trying to share access to the device between two low-level USB drivers (MTP and Chrome) is likely to cause data corruption if the device cannot differentiate between requests from each. I am not too familiar with the MTP driver built into Windows but this is a place where the experimental Native File System API should be able to provide access to the device at a high level where access can be shared.

How to connect hardware device to an Iphone application over Bluetooth

I have a hardware device which would communicate with a third party application on Android and IOS over Bluetooth to send to and fro data.
With Android I am able to achieve this, however in case of IOS I don't have any information.
Till now the information gathered to work with IOS devices is:
1. Application runs on Iphone 5
2. Hardware is MFI enabled
3. IAP2 is supported
Please guide how to connect the hardware to an application and what other information is essential?
Is AppName, BundleID, BundleSeedID and ProtocolName required to connect? If yes how we can get these details?
I tried unzipping the application but the Info.plist file looks garbled and not able to get much info from that.
Currently I am able to connect the hardware with IPhone over Bluetooth, but my real concern is how to communicate with a specific application on it.
Also if you can provide some link or pseudo code to initiate a session between hardware and IOS application.
I assume you've already connected the SPP profile on Android. However for iOS the SPP(BLE is another story and do not need MFi) was hidden but need MFi authentication for raw data links.
Since you want to establish the raw data link between your hardware device and your iPhone, you need:
Make sure your hardware has MFi chip, generally this chip is connected with your hardware by I2C.
After step 1 make sure you can communicate with this chip at your hardware, fortunately the hardware vendor or MFi vendor will support this kind of code or binary.
The MFi channel have a specific UUID(which may defined by Apple?) to replace the SPP official(which defined by Bluetooth SIG) UUID, hence if you want to make connection between your hardware and your iPhone, you need register the iOS defined UUID and make them as same as the normal SPP profile.
After the RFCOMM channel created, iOS would first authenticate the link, just like 3-way handshaking or something, so your hardware just communicate with the MFi chip and transfer the token to iOS.
After that iOS would set this RFCOMM channel(same as SPP actually) for your hardware, then you can send/recv data between them.

Windows form application for USB port

Previously I have work with Windows Form application to establish some RS232 connection. I used the already provided serial port component (SerialPort), and I was able to establish RS232 communication relatively easy.
Now, I was wondering if there will be something similar in Winodows Form application to establish a USB communication ?
It seems there is this WinUSB API that provides a very low level interfacing with the device.
However, I am not sure how easy will that be? Also, not sure how easy will it be to integrate into Windows Form application ?!
Will there be a simpler version of such USB interface API?
I don't have to stick to Visual Studio. Is there other c++ USB API, besides WinUSB, that is more standard that people use? I would like to develop a GUI API that does some communication over USB. If need be, I can use Python or some other tools if it facilitates the process?
Thanks in advance.
Although USB is a serial protocol, you can't treat USB like a serial port:
It's dependant on what the actual device is. For example a mobile phone, may provide several "endpoints" for USB, one being a serial port to use the phone as a modem, one as a storage device allowing you to transfer photos and music files to/from the phones storage, and as a camera device that you can take photos with. All of these have different behaviour and need a USB driver-plugin to make it behave correctly - these are typically shipped with Windows, and your phone will appear as COM5:, the E: or "Samsung Galaxy S3 Mini" drives and as a camera under the "cameras and scanners".
Of course, you can programmatically open all these devices, but it is done as the device-type that they present as on the inside of windows (so you use serial port functions or file functions or camera functions).
You CAN also write a device driver for a device, if you have sufficient details of how it works.
But there's no real way to "open the port". The USB API is a driver API, not a user-mode API. Here's a page to start from to understand USB drivers:
http://msdn.microsoft.com/en-gb/library/windows/hardware/ff540215%28v=vs.85%29.aspx
There is a WinUSB driver, which allows a single application to access a single device, assuming you know how to operate that device.

How to access the accelerometer of a Windows Mobile device?

I've successfully ported my Qt-based C++ application to my girlfriend's Windows Mobile device. (A Samsung Omnia 2.)
However, it seems that the Qt Mobility Sensors API is not supported on Windows Mobile, so the application's specific features that would require the accelerometer are not working.
The question is, how to access the accelerometer of a Windows Mobile device from a C++ application?
If your Omnia 2 has WM 6.5 Update you may use the unified sensor API here

Can guest on VmWare detect USB device which host did not detect?

I have a GPS device and its driver for Windows XP. I have Windows 7 on my laptop. I have no plans for any dual boot Windows XP and Windows 7.
I would like to know whether hardware support for Virtualization allows device to be detected in the scenario where no driver is available on host and there is driver installed on guest ?
In general the answer is "yes", but that doesn't mean that there won't be some issue with your specific case.
The virtualisation software virtualised access to the USB port, not the higher level, device specific protocol. I have used this to successfully use, for example, CAN networking hardware in a guest that was not supported by the host operating system.
The question probably belongs on Superuser, but I don't go there.