PIBIO_ENGINE_EXPORT_ENGINE_DATA_FN fonction de rappel (winbio_adapter.h)
Appelé par l’infrastructure biométrique Windows pour récupérer une copie de l’ensemble de fonctionnalités ou du modèle le plus récemment traité à partir du moteur mis en forme en tant que structure de WINBIO_BIR standard.
Syntaxe
PIBIO_ENGINE_EXPORT_ENGINE_DATA_FN PibioEngineExportEngineDataFn;
HRESULT PibioEngineExportEngineDataFn(
[in, out] PWINBIO_PIPELINE Pipeline,
[in] WINBIO_BIR_DATA_FLAGS Flags,
[out] PWINBIO_BIR *SampleBuffer,
[out] PSIZE_T SampleSize
)
{...}
Paramètres
[in, out] Pipeline
Pointeur vers une structure WINBIO_PIPELINE associée à l’unité biométrique effectuant l’opération.
[in] Flags
Valeur qui spécifie les propriétés de la structure WINBIO_BIR retournée par le moteur. Il peut s’agir d’un OR au niveau du bit des indicateurs de niveau de sécurité et de traitement suivants :
WINBIO_DATA_FLAG_PRIVACY
Les données sont chiffrées.
WINBIO_DATA_FLAG_INTEGRITY Les données sont signées numériquement ou protégées par un code d’authentification de message (MAC).
WINBIO_DATA_FLAG_SIGNED Si cet indicateur et l’indicateur WINBIO_DATA_FLAG_INTEGRITY sont définis, les données sont signées. Si cet indicateur n’est pas défini, mais que l’indicateur WINBIO_DATA_FLAG_INTEGRITY est défini, un MAC est calculé.
WINBIO_DATA_FLAG_RAW Les données sont dans le format avec lequel elles ont été capturées.
WINBIO_DATA_FLAG_INTERMEDIATE Les données ne sont pas brutes, mais n’ont pas été complètement traitées.
WINBIO_DATA_FLAG_PROCESSED Les données ont été traitées.
[out] SampleBuffer
Adresse d’une variable qui reçoit un pointeur vers une structure WINBIO_BIR qui contient l’ensemble de fonctionnalités ou le modèle.
[out] SampleSize
Pointeur vers une variable qui contient la taille, en octets, de la structure WINBIO_BIR retournée dans le paramètre SampleBuffer .
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’adaptateur moteur ne prend pas en charge la combinaison d’indicateurs spécifiée par le paramètre Flags . |
|
La mémoire disponible est insuffisante pour créer la structure WINBIO_BIR . |
|
Un paramètre de pointeur obligatoire est NULL. |
|
Le pipeline ne contient pas le type de données requis par le paramètre Flags . |
|
Cette méthode n'est pas implémentée à l'heure actuelle. |
Remarques
Vous devez allouer la mémoire tampon à retourner dans le paramètre SampleBuffer à partir du tas de processus à l’aide de la fonction HeapAlloc . Une fois la mémoire tampon créée, elle devient la propriété de l’infrastructure biométrique Windows. Étant donné que l’infrastructure libère cette mémoire quand elle a fini de l’utiliser, votre implémentation de cette fonction ne doit pas tenter de libérer la mémoire tampon ou d’enregistrer un pointeur vers celle-ci. En n’enregistrant pas le pointeur, vous empêchez d’autres parties de l’adaptateur moteur d’essayer d’utiliser la mémoire tampon après le retour de cette fonction.
Exemples
Le pseudo-code suivant montre une implémentation possible de cette fonction. L’exemple ne se compile pas. Vous devez l’adapter à votre objectif.
//////////////////////////////////////////////////////////////////////////////////////////
//
// EngineAdapterExportEngineData
//
// Purpose:
// Retrieves a copy of the most recently processed feature set or template.
//
// Parameters:
// Pipeline - Pointer to a WINBIO_PIPELINE structure associated
// with the biometric unit performing the operation
// Flags - Security and processing level flags
// SampleBuffer - Contains the feature set or template
// SampleSize - Size, in bytes, of the structure returned in the
// SampleBuffer parameter.
//
static HRESULT
WINAPI
EngineAdapterExportEngineData(
__inout PWINBIO_PIPELINE Pipeline,
__in WINBIO_BIR_DATA_FLAGS Flags,
__out PWINBIO_BIR *SampleBuffer,
__out PSIZE_T SampleSize
)
{
HRESULT hr = S_OK;
PWINBIO_BIR birAddress = NULL;
SIZE_T birSize = 0;
// Verify that pointer arguments are not NULL.
if (!ARGUMENT_PRESENT(Pipeline) ||
!ARGUMENT_PRESENT(SampleBuffer) ||
!ARGUMENT_PRESENT(SampleSize))
{
hr = E_POINTER;
goto cleanup;
}
// Retrieve the context from the pipeline.
PWINBIO_ENGINE_CONTEXT context =
(PWINBIO_ENGINE_CONTEXT)Pipeline->EngineContext;
// At least one processing level flag must be set. Your adapter can also
// place additional restrictions on supported export formats.
if (Flags & (WINBIO_DATA_FLAG_RAW |
WINBIO_DATA_FLAG_INTERMEDIATE |
WINBIO_DATA_FLAG_PROCESSED) == 0)
{
hr = E_INVALIDARG;
goto cleanup;
}
// You must implement the _CreateBirFromAdapterData function to extract
// data from the engine context and create a new WINBIO_BIR structure. The
// function passes ownership of the new biometric information record (BIR)
// to the EngineAdapterExportEngineData routine which then passes the BIR
// to the caller.
hr = _CreateBirFromAdapterData( context, Flags, &birAddress, &birSize);
if (SUCCEEDED(hr))
{
*SampleBuffer = birAddress;
*SampleSize = birSize;
}
cleanup:
return hr;
}
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