The CSSM Framework uses these pointers to dispatch corresponding application programming interface functions to the HRS Service Provider for processing.
-
-
#define CSSMHRI CSSMAPI
typedef struct cssm_spi_hrs_funcs {
CSSM_RETURN (CSSMAPI *FreeBIRHandle)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_BIR_HANDLE Handle);
CSSM_RETURN (CSSMAPI *GetBIRFromHandle)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_BIR_HANDLE Handle,
CSSM_HRS_BIR_PTR *BIR);
CSSM_RETURN (CSSMAPI *GetHeaderFromHandle)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_BIR_HANDLE Handle,
CSSM_HRS_BIR_HEADER_PTR Header);
CSSM_RETURN (CSSMAPI *EnableEvents)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_MODULE_EVENT_MASK *Events);
CSSM_RETURN (CSSMAPI *SetGUICallbacks)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_GUI_STREAMING_CALLBACK GuiStreamingCallback,
void *GuiStreamingCallbackCtx,
CSSM_HRS_GUI_STATE_CALLBACK GuiStateCallback,
void *GuiStateCallbackCtx);
CSSM_RETURN (CSSMAPI *CancelGUICallbacks)
(CSSM_HRS_HANDLE ModuleHandle);
CSSM_RETURN (CSSMAPI *SetStreamCallback)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_STREAM_CALLBACK StreamCallback,
void *StreamCallbackCtx);
CSSM_RETURN (CSSMAPI *CancelStreamCallbacks)
(CSSM_HRS_HANDLE ModuleHandle);
CSSM_RETURN (CSSMAPI *StreamInputOutput)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_DATA_PTR InMessage,
CSSM_DATA_PTR OutMessage);
CSSM_RETURN (CSSMAPI *Capture)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_BIR_PURPOSE Purpose,
CSSM_HRS_BIR_HANDLE_PTR CapturedBIR,
sint32 Timeout,
CSSM_HRS_BIR_HANDLE_PTR AuditData);
CSSM_RETURN (CSSMAPI *CreateTemplate)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_BIR_PURPOSE Purpose,
const CSSM_HRS_INPUT_BIR *CapturedBIR,
const CSSM_HRS_INPUT_BIR *StoredTemplate,
CSSM_HRS_BIR_HANDLE_PTR NewTemplate,
const CSSM_DATA *Payload);
CSSM_RETURN (CSSMAPI *Process)
(CSSM_HRS_HANDLE ModuleHandle,
const CSSM_HRS_INPUT_BIR *CapturedBIR,
CSSM_HRS_BIR_HANDLE_PTR ProcessedBIR);
CSSM_RETURN (CSSMAPI *VerifyMatch)
(CSSM_HRS_HANDLE ModuleHandle,
const CSSM_HRS_FAR *MaxFARRequested,
const CSSM_HRS_FRR *MaxFRRRequested,
const CSSM_BOOL *FARPrecedence,
const CSSM_HRS_INPUT_BIR *ProcessedBIR,
const CSSM_HRS_INPUT_BIR *StoredTemplate,
CSSM_HRS_BIR_HANDLE *AdaptedBIR,
CSSM_BOOL *Result,
CSSM_HRS_FAR_PTR FARAchieved,
CSSM_HRS_FRR_PTR FRRAchieved,
CSSM_DATA_PTR *Payload);
CSSM_RETURN (CSSMAPI *IdentifyMatch)
(CSSM_HRS_HANDLE ModuleHandle,
const CSSM_HRS_FAR *MaxFARRequested,
const CSSM_HRS_FRR *MaxFRRRequested,
const CSSM_BOOL *FARPrecedence,
const CSSM_HRS_INPUT_BIR *ProcessedBIR,
const CSSM_HRS_IDENTIFY_POPULATION *Population,
CSSM_BOOL Binning,
uint32 MaxNumberOfResults,
uint32 *NumberOfResults,
CSSM_HRS_CANDIDATE_ARRAY_PTR *Candidates,
sint32 Timeout);
CSSM_RETURN (CSSMAPI *Enroll)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_BIR_PURPOSE Purpose,
const CSSM_HRS_INPUT_BIR *StoredTemplate,
CSSM_HRS_BIR_HANDLE_PTR NewTemplate,
const CSSM_DATA *Payload,
sint32 Timeout,
CSSM_HRS_BIR_HANDLE_PTR AuditData);
CSSM_RETURN (CSSMAPI *Verify)
(CSSM_HRS_HANDLE ModuleHandle,
const CSSM_HRS_FAR *MaxFARRequested,
const CSSM_HRS_FRR *MaxFRRRequested,
const CSSM_BOOL *FARPrecedence,
const CSSM_HRS_INPUT_BIR *StoredTemplate,
CSSM_HRS_BIR_HANDLE_PTR AdaptedBIR,
CSSM_BOOL *Result,
CSSM_HRS_FAR_PTR FARAchieved,
CSSM_HRS_FRR_PTR FRRAchieved,
CSSM_DATA_PTR *Payload,
sint32 Timeout,
CSSM_HRS_BIR_HANDLE_PTR AuditData);
CSSM_RETURN (CSSMAPI *Identify)
(CSSM_HRS_HANDLE ModuleHandle,
const CSSM_HRS_FAR *MaxFARRequested,
const CSSM_HRS_FRR *MaxFRRRequested,
const CSSM_BOOL *FARPrecedence,
const CSSM_HRS_INPUT_BIR *ProcessedBIR,
const CSSM_HRS_IDENTIFY_POPULATION *Population,
CSSM_BOOL Binning,
uint32 MaxNumberOfResults,
uint32 *NumberOfResults,
CSSM_HRS_CANDIDATE_ARRAY_PTR *Candidates,
sint32 Timeout,
CSSM_HRS_BIR_HANDLE_PTR AuditData);
CSSM_RETURN (CSSMAPI *Import)
(CSSM_HRS_HANDLE ModuleHandle,
const CSSM_DATA *InputData,
CSSM_HRS_BIR_BIOMETRIC_DATA_FORMAT InputFormat,
CSSM_HRS_BIR_PURPOSE Purpose,
CSSM_HRS_BIR_HANDLE_PTR ConstructedBIR);
CSSM_RETURN (CSSMAPI *SetPowerMode)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_POWER_MODE PowerMode);
CSSM_RETURN (CSMAPI *DbOpen)
(CSSM_HRS_HANDLE ModuleHandle,
const uint8 *DbName,
CSSM_HRS_DB_ACCESS_TYPE AccessRequest,
CSSM_HRS_DB_HANDLE_PTR DbHandle,
CSSM_HRS_DB_CURSOR_PTR Cursor);
CSSM_RETURN (CSSMAPI *DbClose)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_DB_HANDLE_PTR DbHandle);
CSSM_RETURN (HRS *DbCreate)
(CSSM_HRS_HANDLE ModuleHandle,
const uint8 *DbName,
CSSM_HRS_DB_ACCESS_TYPE AccessRequest,
CSSM_HRS_DB_HANDLE_PTR DbHandle);
CSSM_RETURN (CSSMAPI *DbDelete)
(CSSM_HRS_HANDLE ModuleHandle,
const uint8 *DbName);
CSSM_RETURN (CSSMAPI *DbSetCursor)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_DB_HANDLE DbHandle,
const CSSM_GUID *KeyValue,
CSSM_HRS_DB_CURSOR_PTR Cursor);
CSSM_RETURN (CSSMAPI *DbFreeCursor)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_DB_CURSOR_PTR Cursor);
CSSM_RETURN (CSSMAPI *DbStoreBIR)
(CSSM_HRS_HANDLE ModuleHandle,
const CSSM_HRS_INPUT_BIR *BIRToStore,
CSSM_HRS_DB_HANDLE DbHandle,
CSSM_GUID_PTR Guid);
CSSM_RETURN (CSSMAPI *DbGetBIR)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_DB_HANDLE DbHandle,
const CSSM_GUID *KeyValue,
CSSM_HRS_BIR_HANDLE_PTR RetrievedBIR,
CSSM_HRS_DB_CURSOR_PTR Cursor);
CSSM_RETURN (CSSMAPI *DbGetNextBIR)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_DB_CURSOR_PTR Cursor,
CSSM_HRS_BIR_HANDLE_PTR RetrievedBIR,
CSSM_GUID_PTR Guid);
CSSM_RETURN (CSSMAPI *DbQueryBIR)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_DB_HANDLE DbHandle,
const CSSM_HRS_INPUT_BIR *BIRToQuery,
CSSM_GUID_PTR Guid);
CSSM_RETURN (CSSMAPI *DbDeleteBIR)
(CSSM_HRS_HANDLE ModuleHandle,
CSSM_HRS_DB_HANDLE DbHandle,
const CSSM_GUID *KeyValue);
} CSSM_SPI_HRS_FUNCS, *CSSM_SPI_HRS_FUNCS_PTR;
Contents | Next section | Index |