Sdílet prostřednictvím


Podpora biometrické sekvence volání IOCTL

WBDI je standardní rozhraní IOCTL systému Windows. Při psaní ovladače WBDI musíte podporovat sadu povinných vstupně-výstupních řídicích kódů (IOCTLs). Můžete také zvolit podporu volitelných IOCTLs. Úplný seznam povinných a volitelných IOCTLs naleznete v Biometric IOCTLs.

Ovladač WBDI dodaného dodavatelem by měl být připraven přijímat žádosti IOCTL v následujícím pořadí ze služby WBS (Windows Biometric Service). Příklady obslužných rutin pro tyto IOCTL naleznete v Device.cpp v WudfBioUsbSample.

  1. Biometrická služba Systému Windows nebo adaptér snímače inicializuje biometrické zařízení a ověří, že je připraven k použití. Služba nebo adaptér odešle požadavek IOCTL_BIOMETRIC_GET_ATTRIBUTES.

    Ovladač obdrží ukazatel na strukturu WINBIO_SENSOR_ATTRIBUTES. V obslužné funkci pro tento IOCTL by ovladač měl vyplnit příslušné členy této struktury a dokončit požadavek voláním IWDFIoRequest::Complete.

  2. Dále ovladač obdrží IOCTL_BIOMETRIC_GET_SENSOR_STATUS. Řidič by měl vyplnit příslušné členy struktury WINBIO_DIAGNOSTICS a dokončit žádost.

  3. Pokud ovladač v členu SensorStatus struktury WINBIO_DIAGNOSTICS indikuje, že je kalibrace nezbytná, a tato informace byla vrácena z požadavku IOCTL_BIOMETRIC_GET_SENSOR_STATUS, následujícím krokem je, že ovladač obdrží požadavek IOCTL_BIOMETRIC_CALIBRATE. Ovladač musí poskytnout obslužnou rutinu pro tento IOCTL. Po kalibraci zařízení by zpětné volání mělo vrátit strukturu WINBIO_CALIBRATION_INFO.

  4. Ovladač nyní může očekávat, že obdrží požadavky IOCTL_BIOMETRIC_CAPTURE_DATA. Vzhledem k tomu, že kdykoli může být čekající pouze jeden záznam, obslužná rutina pro tento požadavek by nejprve měla potvrdit, že žádný požadavek čeká na vyřízení. Pokud žádost čeká na vyřízení, dokončete žádost pomocí WINBIO_E_DATA_COLLECTION_IN_PROGRESS.

    Služba WinBio nebo aplikace může kdykoli zrušit probíhající požadavek zachycení voláním rutin zrušení Win32, jako jsou CancelIo, CancelIoExnebo CancelSynchronousIo. Ovladače WBDI musí také podporovat zrušení.

    Ovladač zpracovává zrušení voláním IWDFIoRequest::MarkCancelable pro zaregistrování rozhraní IRequestCallbackCancel.

    Obslužná rutina pak naprogramuje zařízení pro režim zachycení a vrátí se ze zpětného volání. Požadavek by měl zůstat čekající na vyřízení, dokud ho nezruší nebo ovladač zjistí, že je zachytávání dokončené. Po dokončení tohoto V/V požadavku se zařízení může vrátit do stavu nečinnosti. Klient může provést počáteční volání IOCTL_BIOMETRIC_CAPTURE_DATA, aby určil správnou velikost vyrovnávací paměti pro skutečné zachycení dat.

  5. Obslužná rutina pro IOCTL_BIOMETRIC_RESET by měla fyzicky resetovat zařízení do známého stavu nebo stavu nečinnosti. Obslužná rutina pro tento požadavek musí také zrušit všechny vstupně-výstupní operace shromažďování dat čekající na vyřízení a vyplnit strukturu WINBIO_BLANK_PAYLOAD. Zpracovatel pak požadavek dokončí. Klienti nemusí provést reset mezi voláními IOCTL_BIOMETRIC_CAPTURE_DATA.