[HLK] Fingerprint Reader Logo Tests
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?