The IOCTL_BIOMETRIC_GET_SUPPORTED_ALGORITHMS IOCTL retrieves a list of cryptographic hash algorithms that are supported by the device. This IOCTL is optional.
Input Buffer Length
The AssociatedIrp.SystemBuffer member points to a buffer that contains a WINBIO_SUPPORTED_ALGORITHMS structure.
Output Buffer Length
The smallest valid output buffer size is the size of DWORD. If the driver receives an DWORD-sized output buffer, the driver should return the buffer size necessary for the requested operation.
Indicates whether the DeviceIoControl call to the driver completed and the OUT payload is valid.
The Status member is set to one of the values in the following table.
|S_OK, STATUS_SUCCESS||The operation completed successfully. If the size of data returned is DWORD, the payload contains the size of the buffer necessary for the call. Otherwise, the payload contains the full output buffer.|
|E_INVALIDARG||The parameters were not specified correctly.|
|E_UNKNOWN||Any other failure that prevents the payload from being filled in.|
|E_UNEXPECTED||Any other failure that prevents the payload from being filled in.|
|E_FAIL||Any other failure that prevents the payload from being filled in.|
Here are examples of OID strings for hash algorithms.
|Algorithm|Algorithm identifier string| |--- |--- | |SHA-1|"126.96.36.199.2.26"| |SHA-256|"2.16.8188.8.131.52.4.2.1"| |SHA-384|"2.16.8184.108.40.206.4.2.2"| |SHA-512|"2.16.8220.127.116.11.4.2.3"|
IOCTL_BIOMETRIC_GET_SUPPORTED_ALGORITHMS must be implemented if the device supports WINBIO_CAPABILITY_SECURE_STORAGE. The device must support at least SHA-1 ("18.104.22.168.2.26") to be used for storing WinBio templates.
If the vendor-supplied driver passes back the entire payload, it should fill in the WinBioHresult member of WINBIO_SUPPORTED_ALGORITHMS with the status of the Biometric operation.
Possible values include:
|Minimum supported client||Available in Windows 7 and later versions of Windows.|