[HLK] Fingerprint Reader Logo Tests

tanghr 0 Reputation points
2025-03-11T12:49:12.87+00:00

My WBF fingerprint driver (based on UMDF 1.31) encountered an issue during the HLK Fingerprint Reader Logo Tests. Specifically, during the "Run sequence tests" enrollment phase, the testing tool issued an IOCTL_BIOMETRIC_CAPTURE_DATA request. After completing the fingerprint capture, I called WdfRequestCompleteWithInformation() to complete the I/O request.

The relevant code is as follows:

#define WINBIO_BIR_SIZE (sizeof(WINBIO_BIR) + sizeof(WINBIO_BIR_HEADER) + sizeof(WINBIO_BDB_ANSI_381_HEADER) + sizeof(WINBIO_BDB_ANSI_381_RECORD) + IMG_SIZE) // IMG_SIZE = 256*288

ZeroMemory(captureData, (sizeof(WINBIO_CAPTURE_DATA) + WINBIO_BIR_SIZE));

captureData->PayloadSize = (DWORD)(sizeof(WINBIO_CAPTURE_DATA) + WINBIO_BIR_SIZE);

captureData->WinBioHresult = S_OK;

captureData->SensorStatus = WINBIO_SENSOR_ACCEPT;

captureData->RejectDetail = 0;

captureData->CaptureData.Size = WINBIO_BIR_SIZE;

NTSTATUS hrUnmark = WdfRequestUnmarkCancelable(m_PendingRequest);

WdfRequestCompleteWithInformation(m_PendingRequest, STATUS_SUCCESS, captureData->PayloadSize);

However, after this, the testing tool began cyclically sending IOCTL_BIOMETRIC_GET_SENSOR_STATUS and IOCTL_BIOMETRIC_CAPTURE_DATA requests, and the fingerprint enrollment process did not proceed normally.

My question: When responding to the IOCTL_BIOMETRIC_CAPTURE_DATA request, what status or information should my code return to ensure the "Run sequence tests" enrollment phase completes successfully?

Hardware Lab Kit
Hardware Lab Kit
A test framework used to test hardware devices for Windows.
17 questions
0 comments No comments
{count} votes

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.