Freigeben über


PIBIO_ENGINE_CLEAR_CONTEXT_FN Rückruffunktion (winbio_adapter.h)

Wird vom Windows Biometric Framework aufgerufen, um die Verarbeitungspipeline der biometrischen Einheit für einen neuen Vorgang vorzubereiten. Diese Funktion sollte temporäre Daten aus dem Enginekontext löschen und den Engineadapter in einen klar definierten Anfangszustand versetzen.

Syntax

PIBIO_ENGINE_CLEAR_CONTEXT_FN PibioEngineClearContextFn;

HRESULT PibioEngineClearContextFn(
  [in, out] PWINBIO_PIPELINE Pipeline
)
{...}

Parameter

[in, out] Pipeline

Zeiger auf eine WINBIO_PIPELINE Struktur, die der biometrischen Einheit zugeordnet ist, die den Vorgang ausführt.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt sie S_OK zurück. Wenn die Funktion fehlschlägt, muss sie einen der folgenden HRESULT-Werte zurückgeben, um den Fehler anzugeben.

Rückgabecode Beschreibung
E_POINTER
Das Pipelineargument darf nicht NULL sein.

Hinweise

Dieser Zweck dieser Funktion besteht darin, den Kontext auf den Zustand zurückzusetzen, in dem er sich unmittelbar nach einem Aufruf der EngineAdapterAttach-Funktion befand. Der Kontext ist eine wiederverwendbare Struktur. Die EngineAdapterClearContext-Funktion initialisiert den Kontext neu, entfernt ihn jedoch nicht aus der Pipeline.

Zu den typischen Beispielen für die Objekte im Kontextbereich des Moduladapters, die gelöscht werden sollten, gehören folgendes.

Object BESCHREIBUNG
Funktionsumfang Enthält eine Beschreibung einer biometrischen Stichprobe
Registrierung Verfolgt den aktuellen Status einer Registrierungstransaktion.
Vorlage Biometrische Vorlage, die vom Featuresatz oder dem Registrierungsobjekt erstellt wurde.
Vergleich Enthält das Ergebnis eines Vergleichs zwischen der Vorlage und dem Featuresatz.
Indexvektor Enthält einen Satz von Indexwerten, die der Vorlage zugeordnet sind.
 

Beispiele

Der folgende Pseudocode zeigt eine mögliche Implementierung dieser Funktion. Das Beispiel wird nicht kompiliert. Sie müssen es an Ihren Zweck anpassen.

//////////////////////////////////////////////////////////////////////////////////////////
//
// EngineAdapterClearContext
//
// Purpose:
//      Prepares the processing pipeline of the biometric unit for a 
//      new operation.
//
// Parameters:
//      Pipeline -  Pointer to a WINBIO_PIPELINE structure associated with 
//                  the biometric unit.
//
static HRESULT
WINAPI
EngineAdapterClearContext(
    __inout PWINBIO_PIPELINE Pipeline
    )
{
    // Verify that the Pipeline parameter is not NULL.
    if (!ARGUMENT_PRESENT(Pipeline))
    {
        hr = E_POINTER;
        goto cleanup;
    }

    // Retrieve the context from the pipeline.
    PWINBIO_ENGINE_CONTEXT context = 
           (PWINBIO_ENGINE_CONTEXT)Pipeline->EngineContext;

    if (context == NULL)
    {
        goto cleanup;
    }

    // Change the engine adapter state and discard any partially completed
    // operations. Depending on the adapter, this can involve changes to state 
    // variables or actions implemented in hardware. The following example
    // assumes that your engine adapter context contains a ULONG data member 
    // and pointers to a feature set and an enrollment object.

    context->SomeField = 0L;

    if (context->FeatureSet != NULL)
    {
        // Zero the feature set if it contains unencrypted biometric data.
        SecureZeroMemory(
            context->FeatureSet,
            context->FeatureSetSize);

        // Release the feature set.
        _AdapterRelease(context->FeatureSet);
        context->FeatureSet = NULL;
        context->FeatureSetSize = 0;
    }

    if (context->Enrollment.Template != NULL)
    {
        // Zero the template if it contains unencrypted biometric data.
        SecureZeroMemory(
            context->Enrollment.Template,
            context->Enrollment.TemplateSize);

        // Release the template.
        _AdapterRelease(context->Enrollment.Template);
        context->Enrollment.Template = NULL;
        context->Enrollment.TemplateSize = 0;

        // Release other data members attached to the enrollment object.
        context->Enrollment.SampleCount = 0;
        context->Enrollment.InProgress = FALSE;
    }

cleanup:

    return S_OK;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbio_adapter.h (einschließlich Winbio_adapter.h)

Weitere Informationen

Plug-In-Funktionen

SensorAdapterClearContext

StorageAdapterClearContext