PIBIO_ENGINE_DETACH_FN fonction de rappel (winbio_adapter.h)
Appelé par l’infrastructure biométrique Windows immédiatement avant qu’un adaptateur moteur ne soit supprimé du pipeline de traitement de l’unité biométrique. L’objectif de cette fonction est de libérer les ressources spécifiques à l’adaptateur attachées au pipeline.
Syntaxe
PIBIO_ENGINE_DETACH_FN PibioEngineDetachFn;
HRESULT PibioEngineDetachFn(
[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 |
---|---|
|
Le paramètre Pipeline ne peut pas avoir la valeur NULL. |
|
Le champ EngineContext de la structure WINBIO_PIPELINE ne peut pas être NULL. |
Remarques
Pour éviter les fuites de mémoire, votre implémentation de la fonction EngineAdapterDetach doit libérer la structure de WINBIO_ENGINE_CONTEXT privée pointée par le membre EngineContext du pipeline, ainsi que toutes les autres ressources attachées au contexte du moteur.
Si le champ EngineContext dans l’objet pipeline a la valeur NULL lorsque cette fonction est appelée, le pipeline n’a pas été correctement initialisé et vous devez retourner WINBIO_E_INVALID_DEVICE_STATE pour informer l’infrastructure biométrique Windows du problème.
Avant de retourner S_OK, la fonction EngineAdapterDetach doit définir le champ EngineContext de la structure WINBIO_PIPELINE sur NULL et le champ EngineHandle sur INVALID_HANDLE_VALUE.
Cette fonction est appelée après la suppression de l’adaptateur de stockage du pipeline. Par conséquent, cette fonction ne doit pas appeler les fonctions référencées par la structure WINBIO_STORAGE_INTERFACE pointée par le membre StorageInterface de l’objet pipeline.
Exemples
Le pseudocode suivant montre une implémentation possible de cette fonction. L’exemple ne se compile pas. Vous devez l’adapter à votre objectif.
//////////////////////////////////////////////////////////////////////////////////////////
//
// EngineAdapterDetach
//
// Purpose:
// Releases adapter specific resources attached to the pipeline.
//
// Parameters:
// Pipeline - Pointer to a WINBIO_PIPELINE structure associated with
// the biometric unit.
//
static HRESULT
WINAPI
EngineAdapterDetach(
__inout PWINBIO_PIPELINE Pipeline
)
{
PWINBIO_ENGINE_CONTEXT context = NULL;
// Verify that the Pipeline parameter is not NULL.
if (!ARGUMENT_PRESENT(Pipeline))
{
hr = E_POINTER;
goto cleanup;
}
// Retrieve the context from the pipeline and assign it to a local
// variable.
context = (PWINBIO_ENGINE_CONTEXT)Pipeline->EngineContext;
if (context == NULL)
{
goto cleanup;
}
// Set the context on the pipeline to NULL.
Pipeline->EngineContext = NULL;
// If your adapter supports software-based template hashing and you
// opened a Cryptography Next Generation (CNG) hash object handle
// during initialization, implement the following custom function to
// release the CNG resources.
_AdapterCleanupCrypto(context);
// Implement one or more custom routines to release any structures
// that remain attached to the context block. These structures can
// include the most recent feature set, the current enrollment template,
// and other custom defined objects.
if (context->FeatureSet != NULL)
{
_AdapterRelease(context->FeatureSet);
context->FeatureSet = NULL;
context->FeatureSetSize = 0;
}
if (context->Enrollment.Template != NULL)
{
_AdapterRelease(context->Enrollment.Template);
context->Enrollment.Template = NULL;
context->Enrollment.TemplateSize = 0;
context->Enrollment.SampleCount = 0;
}
if (context->SomePointerField != NULL)
{
_AdapterRelease(context->SomePointerField);
context->SomePointerField = NULL;
}
// Release the context block.
_AdapterRelease(context);
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) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour