PIBIO_ENGINE_CLEAR_CONTEXT_FN fonction de rappel (winbio_adapter.h)
Appelé par l’infrastructure biométrique Windows pour préparer le pipeline de traitement de l’unité biométrique pour une nouvelle opération. Cette fonction doit vider les données temporaires du contexte du moteur et placer l’adaptateur moteur dans un état initial bien défini.
Syntaxe
PIBIO_ENGINE_CLEAR_CONTEXT_FN PibioEngineClearContextFn;
HRESULT PibioEngineClearContextFn(
[in, out] PWINBIO_PIPELINE Pipeline
)
{...}
Paramètres
[in, out] Pipeline
Pointeur vers une structure WINBIO_PIPELINE associée à l’unité biométrique qui effectue l’opération.
Valeur retournée
Si la fonction réussit, elle retourne S_OK. Si la fonction échoue, elle doit retourner l’une des valeurs HRESULT suivantes pour indiquer l’erreur.
Code de retour | Description |
---|---|
|
L’argument Pipeline ne peut pas être NULL. |
Remarques
Cet objectif de cette fonction est de réinitialiser le contexte à l’état dans lequel il se trouvait immédiatement après un appel à la fonction EngineAdapterAttach . Le contexte est une structure réutilisable. La fonction EngineAdapterClearContext réinitialise le contexte, mais ne le supprime pas du pipeline.
Voici des exemples typiques des objets de la zone de contexte de l’adaptateur moteur qui doivent être effacés.
Object | Description |
---|---|
Ensemble des fonctionnalités | Contient une description d’un exemple biométrique |
Inscription | Suit l’état actuel d’une transaction d’inscription. |
Modèle | Modèle biométrique créé par l’ensemble de fonctionnalités ou l’objet d’inscription. |
Comparaison | Contient le résultat d’une comparaison entre le modèle et l’ensemble de fonctionnalités. |
Vecteur d’index | Contient un ensemble de valeurs d’index associées au modèle. |
Exemples
Le pseudocode suivant montre une implémentation possible de cette fonction. L’exemple ne se compile pas. Vous devez l’adapter à votre objectif.
//////////////////////////////////////////////////////////////////////////////////////////
//
// 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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 7 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 R2 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winbio_adapter.h (include Winbio_adapter.h) |