Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erfasst eine biometrische Probe und füllt einen biometrischen Informationsdatensatz (BIR) mit den rohen oder verarbeiteten Daten aus.
Syntax
HRESULT WinBioCaptureSample(
[in] WINBIO_SESSION_HANDLE SessionHandle,
[in] WINBIO_BIR_PURPOSE Purpose,
[in] WINBIO_BIR_DATA_FLAGS Flags,
[out, optional] WINBIO_UNIT_ID *UnitId,
PWINBIO_BIR *Sample,
[out, optional] SIZE_T *SampleSize,
[out, optional] WINBIO_REJECT_DETAIL *RejectDetail
);
Die Parameter
[in] SessionHandle
Ein WINBIO_SESSION_HANDLE Wert, der eine geöffnete biometrische Sitzung identifiziert. Öffnen Sie ein synchrones Sitzungshandle, indem Sie WinBioOpenSession aufrufen. Öffnen Sie ein asynchrones Sitzungshandle, indem Sie WinBioAsyncOpenSession aufrufen.
[in] Purpose
Eine WINBIO_BIR_PURPOSE Bitmaske, die die beabsichtigte Verwendung des Beispiels angibt. Dies kann ein bisschen ODER der folgenden Werte sein:
- WINBIO_PURPOSE_VERIFY
- WINBIO_PURPOSE_IDENTIFY
- WINBIO_PURPOSE_ENROLL
- WINBIO_PURPOSE_ENROLL_FOR_VERIFICATION
- WINBIO_PURPOSE_ENROLL_FOR_IDENTIFICATION
[in] Flags
Ein Wert, der den Typ der Verarbeitung angibt, die auf das erfasste Beispiel angewendet werden soll. Dies kann ein bitweiser OR der folgenden Flags auf Sicherheits- und Verarbeitungsebene sein:
- WINBIO_DATA_FLAG_PRIVACY
Verschlüsseln Sie das Beispiel.
- WINBIO_DATA_FLAG_INTEGRITY
Signieren sie das Beispiel, oder schützen Sie es mithilfe eines Nachrichtenauthentifizierungscodes (MAC)
- WINBIO_DATA_FLAG_SIGNED
Wenn dieses Kennzeichen und das WINBIO_DATA_FLAG_INTEGRITY Flag festgelegt sind, signieren Sie das Beispiel. Wenn dieses Flag nicht festgelegt ist, aber das WINBIO_DATA_FLAG_INTEGRITY Flag festgelegt ist, berechnen Sie einen MAC.
- WINBIO_DATA_FLAG_RAW
Geben Sie das Beispiel genau so zurück, wie es vom Sensor erfasst wurde.
- WINBIO_DATA_FLAG_INTERMEDIATE
Geben Sie das Beispiel zurück, nachdem es bereinigt und gefiltert wurde.
- WINBIO_DATA_FLAG_PROCESSED
Geben Sie das Beispiel zurück, nachdem es für den vom Parameter Purpose angegebenen Zweck verwendet werden kann.
[out, optional] UnitId
Ein Zeiger auf einen WINBIO_UNIT_ID Wert, der die ID der biometrischen Einheit enthält, die das Beispiel generiert hat.
Sample
Adresse einer Variablen, die einen Zeiger auf eine WINBIO_BIR Struktur empfängt, die das Beispiel enthält. Wenn Sie die Verwendung der Struktur abgeschlossen haben, müssen Sie den Zeiger an WinBioFree übergeben, um den für das Beispiel zugewiesenen Speicher freizugeben.
[out, optional] SampleSize
Ein Zeiger auf einen SIZE_T Wert, der die Größe der im Sample-Parameter zurückgegebenen WINBIO_BIR Struktur in Byte enthält.
[out, optional] RejectDetail
Ein Zeiger auf einen WINBIO_REJECT_DETAIL Wert, der zusätzliche Informationen zum Fehler beim Erfassen einer biometrischen Stichprobe enthält. Wenn die Aufnahme erfolgreich war, wird dieser Parameter auf Null festgelegt. Die folgenden Werte sind für die Fingerabdruckerfassung definiert:
- WINBIO_FP_TOO_HIGH
- WINBIO_FP_TOO_LOW
- WINBIO_FP_TOO_LEFT
- WINBIO_FP_TOO_RIGHT
- WINBIO_FP_TOO_FAST
- WINBIO_FP_TOO_SLOW
- WINBIO_FP_POOR_QUALITY
- WINBIO_FP_TOO_SKEWED
- WINBIO_FP_TOO_SHORT
- WINBIO_FP_MERGE_FAILURE
Rückgabewert
Wenn die Funktion erfolgreich ist, wird S_OK zurückgegeben. Wenn die Funktion fehlschlägt, wird ein HRESULT-Wert zurückgegeben, der den Fehler angibt. Mögliche Werte sind die Werte in der folgenden Tabelle, sind jedoch nicht beschränkt. Eine Liste allgemeiner Fehlercodes finden Sie unter "Allgemeine HRESULT-Werte".
| Rückgabecode | Description |
|---|---|
|
Der Aufrufer verfügt nicht über die Berechtigung zum Erfassen von Rohbeispielen, oder die Sitzung wurde nicht mithilfe des WINBIO_FLAG_RAW Flags geöffnet. |
|
Das Sitzungshandle ist ungültig. |
|
Die biometrische Einheit unterstützt den angeforderten Vorgang nicht. |
|
Die Zeiger "UnitId", " Sample", " SampleSize" und "RejectDetail " dürfen nicht NULL sein. |
|
Der Vorgang konnte nicht abgeschlossen werden, da die biometrische Einheit derzeit für eine Registrierungstransaktion verwendet wird (nur Systempool). |
|
Der Vorgang konnte nicht abgeschlossen werden, da ein sicherer Sensor im Sensorpool vorhanden ist. |
Bemerkungen
Um diese Funktion erfolgreich aufzurufen, müssen Sie das Sitzungshandle öffnen, indem Sie WINBIO_FLAG_RAW im Flags-Parameter der WinBioOpenSession - oder WinBioAsyncOpenSession-Funktionen angeben. Derzeit verfügen nur Anwendungen, die unter den Administratoren und lokalen Systemkonten ausgeführt werden, über die erforderlichen Berechtigungen.
Gültige Kombinationen der Parameter "Zweck" und "Kennzeichen" hängen von den Funktionen der verwendeten biometrischen Einheit ab. In der Sensordokumentation des Herstellers können Sie ermitteln, welche Kombinationen gültiger Zweck - und Flagswerte unterstützt werden und wie sie sich auf die erfassten Daten auswirken. Nachdem Sie das Beispiel verwendet haben, muss Ihre Anwendung WinBioFree aufrufen, um den von der WinBioCaptureSample-Funktion zugewiesenen Speicher freizugeben.
Um WinBioCaptureSample synchron zu verwenden, rufen Sie die Funktion mit einem Sitzungshandle auf, das durch Aufrufen von WinBioOpenSession erstellt wurde. Die Funktionsblöcke, bis ein Beispiel erfasst wurde oder ein Fehler auftritt. Aufrufe von WinBioCaptureSample mithilfe des Systempools werden blockiert, bis die aufrufende Anwendung den Fensterfokus hat und der Benutzer ein Beispiel für einen der Sensoren im Pool bereitstellt. Wenn der vom Benutzer ausgewählte Sensor bereits für eine Registrierungstransaktion verwendet wird, schlägt die Funktion fehl und gibt WINBIO_E_ENROLLMENT_IN_PROGRESS zurück.
Um WinBioCaptureSample asynchron zu verwenden, rufen Sie die Funktion mit einem Sitzungshandle auf, das durch Aufrufen von WinBioAsyncOpenSession erstellt wurde. Das Framework weist eine WINBIO_ASYNC_RESULT Struktur zu und verwendet es, um Informationen zum Erfolg oder Fehler des Vorgangs zurückzugeben. Wenn der Erfassungsvorgang erfolgreich ist, gibt das Framework Informationen zum Beispiel in einer geschachtelten CaptureSample-Struktur zurück. Wenn der Vorgang nicht erfolgreich ist, gibt das Framework Fehlerinformationen zurück. Die WINBIO_ASYNC_RESULT Struktur wird an den Anwendungsrückruf oder an die Anwendungsnachrichtenwarteschlange zurückgegeben, abhängig vom Wert, den Sie im Parameter NotificationMethod der WinBioAsyncOpenSession-Funktion festgelegt haben:
- Wenn Sie sich für den Empfang von Abschlussbenachrichtigungen mithilfe eines Rückrufs entscheiden, müssen Sie eine PWINBIO_ASYNC_COMPLETION_CALLBACK-Funktion implementieren und den Parameter NotificationMethod auf WINBIO_ASYNC_NOTIFY_CALLBACK festlegen.
- Wenn Sie mithilfe der Anwendungsnachrichtenwarteschlange Abschlussbenachrichtigungen empfangen möchten, müssen Sie den Parameter NotificationMethod auf WINBIO_ASYNC_NOTIFY_MESSAGE festlegen. Das Framework gibt einen WINBIO_ASYNC_RESULT Zeiger auf das LPARAM-Feld der Fenstermeldung zurück.
Windows 7: Sie können diesen Vorgang asynchron ausführen, indem Sie die WinBioCaptureSampleWithCallback-Funktion verwenden. Die Funktion überprüft die Eingabeargumente und gibt sofort zurück. Wenn die Eingabeargumente ungültig sind, gibt die Funktion einen Fehlercode zurück. Andernfalls startet das Framework den Vorgang in einem anderen Thread. Wenn der asynchrone Vorgang abgeschlossen ist oder ein Fehler auftritt, sendet das Framework die Ergebnisse an die von Der Anwendung implementierte PWINBIO_CAPTURE_CALLBACK-Funktion .
Examples
Die folgende Funktion ruft WinBioCaptureSample auf, um ein biometrisches Beispiel von einem Benutzer zu erfassen. Verknüpfen Sie die statische Winbio.lib-Bibliothek, und fügen Sie die folgenden Headerdateien ein:
- Windows.h
- Stdio.h
- Conio.h
- Winbio.h
HRESULT CaptureSample()
{
HRESULT hr = S_OK;
WINBIO_SESSION_HANDLE sessionHandle = NULL;
WINBIO_UNIT_ID unitId = 0;
WINBIO_REJECT_DETAIL rejectDetail = 0;
PWINBIO_BIR sample = NULL;
SIZE_T sampleSize = 0;
// Connect to the system pool.
hr = WinBioOpenSession(
WINBIO_TYPE_FINGERPRINT, // Service provider
WINBIO_POOL_SYSTEM, // Pool type
WINBIO_FLAG_RAW, // Access: Capture raw data
NULL, // Array of biometric unit IDs
0, // Count of biometric unit IDs
WINBIO_DB_DEFAULT, // Default database
&sessionHandle // [out] Session handle
);
if (FAILED(hr))
{
wprintf_s(L"\n WinBioOpenSession failed. hr = 0x%x\n", hr);
goto e_Exit;
}
// Capture a biometric sample.
wprintf_s(L"\n Calling WinBioCaptureSample - Swipe sensor...\n");
hr = WinBioCaptureSample(
sessionHandle,
WINBIO_NO_PURPOSE_AVAILABLE,
WINBIO_DATA_FLAG_RAW,
&unitId,
&sample,
&sampleSize,
&rejectDetail
);
if (FAILED(hr))
{
if (hr == WINBIO_E_BAD_CAPTURE)
{
wprintf_s(L"\n Bad capture; reason: %d\n", rejectDetail);
}
else
{
wprintf_s(L"\n WinBioCaptureSample failed. hr = 0x%x\n", hr);
}
goto e_Exit;
}
wprintf_s(L"\n Swipe processed - Unit ID: %d\n", unitId);
wprintf_s(L"\n Captured %d bytes.\n", sampleSize);
e_Exit:
if (sample != NULL)
{
WinBioFree(sample);
sample = NULL;
}
if (sessionHandle != NULL)
{
WinBioCloseSession(sessionHandle);
sessionHandle = NULL;
}
wprintf_s(L"\n Press any key to exit...");
_getch();
return hr;
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützter Client | Windows 7 [nur Desktop-Apps] |
| Mindestanforderungen für unterstützte Server | Windows Server 2008 R2 [nur Desktop-Apps] |
| Zielplattform | Fenster |
| Header | winbio.h (enthalten Winbio.h) |
| Library | Winbio.lib |
| DLL | Winbio.dll |