ホーム › Devices.BiometricFramework › WINBIO_ENGINE_INTERFACE
WINBIO_ENGINE_INTERFACE
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Version | WINBIO_ADAPTER_INTERFACE_VERSION | 4 | +0 | +0 | このエンジンアダプタインターフェースのバージョン。 |
| Type | DWORD | 4 | +4 | +4 | アダプタの種別(エンジン)を示す値。 |
| Size | UINT_PTR | 8/4 | +8 | +8 | この構造体のサイズ(バイト)。 |
| AdapterId | GUID | 16 | +16 | +12 | アダプタを一意に識別するGUID。 |
| Attach | PIBIO_ENGINE_ATTACH_FN | 8/4 | +32 | +28 | ユニットへのアタッチ時に呼ばれる関数ポインタ。 |
| Detach | PIBIO_ENGINE_DETACH_FN | 8/4 | +40 | +32 | ユニットからのデタッチ時に呼ばれる関数ポインタ。 |
| ClearContext | PIBIO_ENGINE_CLEAR_CONTEXT_FN | 8/4 | +48 | +36 | コンテキストをクリアする関数ポインタ。 |
| QueryPreferredFormat | PIBIO_ENGINE_QUERY_PREFERRED_FORMAT_FN | 8/4 | +56 | +40 | 優先データ形式を問い合わせる関数ポインタ。 |
| QueryIndexVectorSize | PIBIO_ENGINE_QUERY_INDEX_VECTOR_SIZE_FN | 8/4 | +64 | +44 | インデックスベクタのサイズを問い合わせる関数ポインタ。 |
| QueryHashAlgorithms | PIBIO_ENGINE_QUERY_HASH_ALGORITHMS_FN | 8/4 | +72 | +48 | 対応ハッシュアルゴリズムを問い合わせる関数ポインタ。 |
| SetHashAlgorithm | PIBIO_ENGINE_SET_HASH_ALGORITHM_FN | 8/4 | +80 | +52 | 使用するハッシュアルゴリズムを設定する関数ポインタ。 |
| QuerySampleHint | PIBIO_ENGINE_QUERY_SAMPLE_HINT_FN | 8/4 | +88 | +56 | 登録に必要なサンプル数の目安を問い合わせる関数ポインタ。 |
| AcceptSampleData | PIBIO_ENGINE_ACCEPT_SAMPLE_DATA_FN | 8/4 | +96 | +60 | サンプルデータを受け取り特徴抽出する関数ポインタ。 |
| ExportEngineData | PIBIO_ENGINE_EXPORT_ENGINE_DATA_FN | 8/4 | +104 | +64 | エンジンデータをエクスポートする関数ポインタ。 |
| VerifyFeatureSet | PIBIO_ENGINE_VERIFY_FEATURE_SET_FN | 8/4 | +112 | +68 | 特徴量を1対1で照合(検証)する関数ポインタ。 |
| IdentifyFeatureSet | PIBIO_ENGINE_IDENTIFY_FEATURE_SET_FN | 8/4 | +120 | +72 | 特徴量を1対多で照合(識別)する関数ポインタ。 |
| CreateEnrollment | PIBIO_ENGINE_CREATE_ENROLLMENT_FN | 8/4 | +128 | +76 | 新規登録処理を開始する関数ポインタ。 |
| UpdateEnrollment | PIBIO_ENGINE_UPDATE_ENROLLMENT_FN | 8/4 | +136 | +80 | 登録にサンプルを追加する関数ポインタ。 |
| GetEnrollmentStatus | PIBIO_ENGINE_GET_ENROLLMENT_STATUS_FN | 8/4 | +144 | +84 | 登録の進捗状態を取得する関数ポインタ。 |
| GetEnrollmentHash | PIBIO_ENGINE_GET_ENROLLMENT_HASH_FN | 8/4 | +152 | +88 | 登録テンプレートのハッシュを取得する関数ポインタ。 |
| CheckForDuplicate | PIBIO_ENGINE_CHECK_FOR_DUPLICATE_FN | 8/4 | +160 | +92 | 重複登録の有無を確認する関数ポインタ。 |
| CommitEnrollment | PIBIO_ENGINE_COMMIT_ENROLLMENT_FN | 8/4 | +168 | +96 | 登録を確定(保存)する関数ポインタ。 |
| DiscardEnrollment | PIBIO_ENGINE_DISCARD_ENROLLMENT_FN | 8/4 | +176 | +100 | 進行中の登録を破棄する関数ポインタ。 |
| ControlUnit | PIBIO_ENGINE_CONTROL_UNIT_FN | 8/4 | +184 | +104 | ユニットへ制御コマンドを送る関数ポインタ。 |
| ControlUnitPrivileged | PIBIO_ENGINE_CONTROL_UNIT_PRIVILEGED_FN | 8/4 | +192 | +108 | 特権付きの制御コマンドを送る関数ポインタ。 |
| NotifyPowerChange | PIBIO_ENGINE_NOTIFY_POWER_CHANGE_FN | 8/4 | +200 | +112 | 電源状態変化を通知する関数ポインタ。 |
| Reserved_1 | PIBIO_ENGINE_RESERVED_1_FN | 8/4 | +208 | +116 | 将来の拡張用に予約された関数ポインタ。 |
| PipelineInit | PIBIO_ENGINE_PIPELINE_INIT_FN | 8/4 | +216 | +120 | パイプラインを初期化する関数ポインタ。 |
| PipelineCleanup | PIBIO_ENGINE_PIPELINE_CLEANUP_FN | 8/4 | +224 | +124 | パイプラインを後始末する関数ポインタ。 |
| Activate | PIBIO_ENGINE_ACTIVATE_FN | 8/4 | +232 | +128 | エンジンを有効化する関数ポインタ。 |
| Deactivate | PIBIO_ENGINE_DEACTIVATE_FN | 8/4 | +240 | +132 | エンジンを無効化する関数ポインタ。 |
| QueryExtendedInfo | PIBIO_ENGINE_QUERY_EXTENDED_INFO_FN | 8/4 | +248 | +136 | 拡張エンジン情報を問い合わせる関数ポインタ。 |
| IdentifyAll | PIBIO_ENGINE_IDENTIFY_ALL_FN | 8/4 | +256 | +140 | 全登録に対し識別を行う関数ポインタ。 |
| SetEnrollmentSelector | PIBIO_ENGINE_SET_ENROLLMENT_SELECTOR_FN | 8/4 | +264 | +144 | 登録セレクタを設定する関数ポインタ。 |
| SetEnrollmentParameters | PIBIO_ENGINE_SET_ENROLLMENT_PARAMETERS_FN | 8/4 | +272 | +148 | 登録パラメータを設定する関数ポインタ。 |
| QueryExtendedEnrollmentStatus | PIBIO_ENGINE_QUERY_EXTENDED_ENROLLMENT_STATUS_FN | 8/4 | +280 | +152 | 拡張登録状態を問い合わせる関数ポインタ。 |
| RefreshCache | PIBIO_ENGINE_REFRESH_CACHE_FN | 8/4 | +288 | +156 | エンジン内キャッシュを更新する関数ポインタ。 |
| SelectCalibrationFormat | PIBIO_ENGINE_SELECT_CALIBRATION_FORMAT_FN | 8/4 | +296 | +160 | 校正形式を選択する関数ポインタ。 |
| QueryCalibrationData | PIBIO_ENGINE_QUERY_CALIBRATION_DATA_FN | 8/4 | +304 | +164 | 校正データを問い合わせる関数ポインタ。 |
| SetAccountPolicy | PIBIO_ENGINE_SET_ACCOUNT_POLICY_FN | 8/4 | +312 | +168 | アカウントポリシを設定する関数ポインタ。 |
| CreateKey | PIBIO_ENGINE_CREATE_KEY_FN | 8/4 | +320 | +172 | 鍵を生成する関数ポインタ。 |
| IdentifyFeatureSetSecure | PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN | 8/4 | +328 | +176 | セキュアに特徴量の識別を行う関数ポインタ。 |
| AcceptPrivateSensorTypeInfo | PIBIO_ENGINE_ACCEPT_PRIVATE_SENSOR_TYPE_INFO_FN | 8/4 | +336 | +180 | プライベートセンサ種別情報を受け取る関数ポインタ。 |
| CreateEnrollmentAuthenticated | PIBIO_ENGINE_CREATE_ENROLLMENT_AUTHENTICATED_FN | 8/4 | +344 | +184 | 認証付きで新規登録を作成する関数ポインタ。 |
| IdentifyFeatureSetAuthenticated | PIBIO_ENGINE_IDENTIFY_FEATURE_SET_AUTHENTICATED_FN | 8/4 | +352 | +188 | 認証付きで特徴量の識別を行う関数ポインタ。 |
各言語での定義
#include <windows.h>
// WINBIO_ADAPTER_INTERFACE_VERSION (x64 4 / x86 4 バイト)
typedef struct WINBIO_ADAPTER_INTERFACE_VERSION {
WORD MajorVersion;
WORD MinorVersion;
} WINBIO_ADAPTER_INTERFACE_VERSION;
// WINBIO_ENGINE_INTERFACE (x64 360 / x86 192 バイト)
typedef struct WINBIO_ENGINE_INTERFACE {
WINBIO_ADAPTER_INTERFACE_VERSION Version;
DWORD Type;
UINT_PTR Size;
GUID AdapterId;
PIBIO_ENGINE_ATTACH_FN Attach;
PIBIO_ENGINE_DETACH_FN Detach;
PIBIO_ENGINE_CLEAR_CONTEXT_FN ClearContext;
PIBIO_ENGINE_QUERY_PREFERRED_FORMAT_FN QueryPreferredFormat;
PIBIO_ENGINE_QUERY_INDEX_VECTOR_SIZE_FN QueryIndexVectorSize;
PIBIO_ENGINE_QUERY_HASH_ALGORITHMS_FN QueryHashAlgorithms;
PIBIO_ENGINE_SET_HASH_ALGORITHM_FN SetHashAlgorithm;
PIBIO_ENGINE_QUERY_SAMPLE_HINT_FN QuerySampleHint;
PIBIO_ENGINE_ACCEPT_SAMPLE_DATA_FN AcceptSampleData;
PIBIO_ENGINE_EXPORT_ENGINE_DATA_FN ExportEngineData;
PIBIO_ENGINE_VERIFY_FEATURE_SET_FN VerifyFeatureSet;
PIBIO_ENGINE_IDENTIFY_FEATURE_SET_FN IdentifyFeatureSet;
PIBIO_ENGINE_CREATE_ENROLLMENT_FN CreateEnrollment;
PIBIO_ENGINE_UPDATE_ENROLLMENT_FN UpdateEnrollment;
PIBIO_ENGINE_GET_ENROLLMENT_STATUS_FN GetEnrollmentStatus;
PIBIO_ENGINE_GET_ENROLLMENT_HASH_FN GetEnrollmentHash;
PIBIO_ENGINE_CHECK_FOR_DUPLICATE_FN CheckForDuplicate;
PIBIO_ENGINE_COMMIT_ENROLLMENT_FN CommitEnrollment;
PIBIO_ENGINE_DISCARD_ENROLLMENT_FN DiscardEnrollment;
PIBIO_ENGINE_CONTROL_UNIT_FN ControlUnit;
PIBIO_ENGINE_CONTROL_UNIT_PRIVILEGED_FN ControlUnitPrivileged;
PIBIO_ENGINE_NOTIFY_POWER_CHANGE_FN NotifyPowerChange;
PIBIO_ENGINE_RESERVED_1_FN Reserved_1;
PIBIO_ENGINE_PIPELINE_INIT_FN PipelineInit;
PIBIO_ENGINE_PIPELINE_CLEANUP_FN PipelineCleanup;
PIBIO_ENGINE_ACTIVATE_FN Activate;
PIBIO_ENGINE_DEACTIVATE_FN Deactivate;
PIBIO_ENGINE_QUERY_EXTENDED_INFO_FN QueryExtendedInfo;
PIBIO_ENGINE_IDENTIFY_ALL_FN IdentifyAll;
PIBIO_ENGINE_SET_ENROLLMENT_SELECTOR_FN SetEnrollmentSelector;
PIBIO_ENGINE_SET_ENROLLMENT_PARAMETERS_FN SetEnrollmentParameters;
PIBIO_ENGINE_QUERY_EXTENDED_ENROLLMENT_STATUS_FN QueryExtendedEnrollmentStatus;
PIBIO_ENGINE_REFRESH_CACHE_FN RefreshCache;
PIBIO_ENGINE_SELECT_CALIBRATION_FORMAT_FN SelectCalibrationFormat;
PIBIO_ENGINE_QUERY_CALIBRATION_DATA_FN QueryCalibrationData;
PIBIO_ENGINE_SET_ACCOUNT_POLICY_FN SetAccountPolicy;
PIBIO_ENGINE_CREATE_KEY_FN CreateKey;
PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN IdentifyFeatureSetSecure;
PIBIO_ENGINE_ACCEPT_PRIVATE_SENSOR_TYPE_INFO_FN AcceptPrivateSensorTypeInfo;
PIBIO_ENGINE_CREATE_ENROLLMENT_AUTHENTICATED_FN CreateEnrollmentAuthenticated;
PIBIO_ENGINE_IDENTIFY_FEATURE_SET_AUTHENTICATED_FN IdentifyFeatureSetAuthenticated;
} WINBIO_ENGINE_INTERFACE;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WINBIO_ADAPTER_INTERFACE_VERSION
{
public ushort MajorVersion;
public ushort MinorVersion;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WINBIO_ENGINE_INTERFACE
{
public WINBIO_ADAPTER_INTERFACE_VERSION Version;
public uint Type;
public UIntPtr Size;
public Guid AdapterId;
public IntPtr Attach;
public IntPtr Detach;
public IntPtr ClearContext;
public IntPtr QueryPreferredFormat;
public IntPtr QueryIndexVectorSize;
public IntPtr QueryHashAlgorithms;
public IntPtr SetHashAlgorithm;
public IntPtr QuerySampleHint;
public IntPtr AcceptSampleData;
public IntPtr ExportEngineData;
public IntPtr VerifyFeatureSet;
public IntPtr IdentifyFeatureSet;
public IntPtr CreateEnrollment;
public IntPtr UpdateEnrollment;
public IntPtr GetEnrollmentStatus;
public IntPtr GetEnrollmentHash;
public IntPtr CheckForDuplicate;
public IntPtr CommitEnrollment;
public IntPtr DiscardEnrollment;
public IntPtr ControlUnit;
public IntPtr ControlUnitPrivileged;
public IntPtr NotifyPowerChange;
public IntPtr Reserved_1;
public IntPtr PipelineInit;
public IntPtr PipelineCleanup;
public IntPtr Activate;
public IntPtr Deactivate;
public IntPtr QueryExtendedInfo;
public IntPtr IdentifyAll;
public IntPtr SetEnrollmentSelector;
public IntPtr SetEnrollmentParameters;
public IntPtr QueryExtendedEnrollmentStatus;
public IntPtr RefreshCache;
public IntPtr SelectCalibrationFormat;
public IntPtr QueryCalibrationData;
public IntPtr SetAccountPolicy;
public IntPtr CreateKey;
public IntPtr IdentifyFeatureSetSecure;
public IntPtr AcceptPrivateSensorTypeInfo;
public IntPtr CreateEnrollmentAuthenticated;
public IntPtr IdentifyFeatureSetAuthenticated;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure WINBIO_ADAPTER_INTERFACE_VERSION
Public MajorVersion As UShort
Public MinorVersion As UShort
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure WINBIO_ENGINE_INTERFACE
Public Version As WINBIO_ADAPTER_INTERFACE_VERSION
Public Type As UInteger
Public Size As UIntPtr
Public AdapterId As Guid
Public Attach As IntPtr
Public Detach As IntPtr
Public ClearContext As IntPtr
Public QueryPreferredFormat As IntPtr
Public QueryIndexVectorSize As IntPtr
Public QueryHashAlgorithms As IntPtr
Public SetHashAlgorithm As IntPtr
Public QuerySampleHint As IntPtr
Public AcceptSampleData As IntPtr
Public ExportEngineData As IntPtr
Public VerifyFeatureSet As IntPtr
Public IdentifyFeatureSet As IntPtr
Public CreateEnrollment As IntPtr
Public UpdateEnrollment As IntPtr
Public GetEnrollmentStatus As IntPtr
Public GetEnrollmentHash As IntPtr
Public CheckForDuplicate As IntPtr
Public CommitEnrollment As IntPtr
Public DiscardEnrollment As IntPtr
Public ControlUnit As IntPtr
Public ControlUnitPrivileged As IntPtr
Public NotifyPowerChange As IntPtr
Public Reserved_1 As IntPtr
Public PipelineInit As IntPtr
Public PipelineCleanup As IntPtr
Public Activate As IntPtr
Public Deactivate As IntPtr
Public QueryExtendedInfo As IntPtr
Public IdentifyAll As IntPtr
Public SetEnrollmentSelector As IntPtr
Public SetEnrollmentParameters As IntPtr
Public QueryExtendedEnrollmentStatus As IntPtr
Public RefreshCache As IntPtr
Public SelectCalibrationFormat As IntPtr
Public QueryCalibrationData As IntPtr
Public SetAccountPolicy As IntPtr
Public CreateKey As IntPtr
Public IdentifyFeatureSetSecure As IntPtr
Public AcceptPrivateSensorTypeInfo As IntPtr
Public CreateEnrollmentAuthenticated As IntPtr
Public IdentifyFeatureSetAuthenticated As IntPtr
End Structureimport ctypes
from ctypes import wintypes
class WINBIO_ADAPTER_INTERFACE_VERSION(ctypes.Structure):
_fields_ = [
("MajorVersion", ctypes.c_ushort),
("MinorVersion", ctypes.c_ushort),
]
class WINBIO_ENGINE_INTERFACE(ctypes.Structure):
_fields_ = [
("Version", WINBIO_ADAPTER_INTERFACE_VERSION),
("Type", wintypes.DWORD),
("Size", ctypes.c_size_t),
("AdapterId", GUID),
("Attach", ctypes.c_void_p),
("Detach", ctypes.c_void_p),
("ClearContext", ctypes.c_void_p),
("QueryPreferredFormat", ctypes.c_void_p),
("QueryIndexVectorSize", ctypes.c_void_p),
("QueryHashAlgorithms", ctypes.c_void_p),
("SetHashAlgorithm", ctypes.c_void_p),
("QuerySampleHint", ctypes.c_void_p),
("AcceptSampleData", ctypes.c_void_p),
("ExportEngineData", ctypes.c_void_p),
("VerifyFeatureSet", ctypes.c_void_p),
("IdentifyFeatureSet", ctypes.c_void_p),
("CreateEnrollment", ctypes.c_void_p),
("UpdateEnrollment", ctypes.c_void_p),
("GetEnrollmentStatus", ctypes.c_void_p),
("GetEnrollmentHash", ctypes.c_void_p),
("CheckForDuplicate", ctypes.c_void_p),
("CommitEnrollment", ctypes.c_void_p),
("DiscardEnrollment", ctypes.c_void_p),
("ControlUnit", ctypes.c_void_p),
("ControlUnitPrivileged", ctypes.c_void_p),
("NotifyPowerChange", ctypes.c_void_p),
("Reserved_1", ctypes.c_void_p),
("PipelineInit", ctypes.c_void_p),
("PipelineCleanup", ctypes.c_void_p),
("Activate", ctypes.c_void_p),
("Deactivate", ctypes.c_void_p),
("QueryExtendedInfo", ctypes.c_void_p),
("IdentifyAll", ctypes.c_void_p),
("SetEnrollmentSelector", ctypes.c_void_p),
("SetEnrollmentParameters", ctypes.c_void_p),
("QueryExtendedEnrollmentStatus", ctypes.c_void_p),
("RefreshCache", ctypes.c_void_p),
("SelectCalibrationFormat", ctypes.c_void_p),
("QueryCalibrationData", ctypes.c_void_p),
("SetAccountPolicy", ctypes.c_void_p),
("CreateKey", ctypes.c_void_p),
("IdentifyFeatureSetSecure", ctypes.c_void_p),
("AcceptPrivateSensorTypeInfo", ctypes.c_void_p),
("CreateEnrollmentAuthenticated", ctypes.c_void_p),
("IdentifyFeatureSetAuthenticated", ctypes.c_void_p),
]#[repr(C)]
pub struct WINBIO_ADAPTER_INTERFACE_VERSION {
pub MajorVersion: u16,
pub MinorVersion: u16,
}
#[repr(C)]
pub struct WINBIO_ENGINE_INTERFACE {
pub Version: WINBIO_ADAPTER_INTERFACE_VERSION,
pub Type: u32,
pub Size: usize,
pub AdapterId: GUID,
pub Attach: *mut core::ffi::c_void,
pub Detach: *mut core::ffi::c_void,
pub ClearContext: *mut core::ffi::c_void,
pub QueryPreferredFormat: *mut core::ffi::c_void,
pub QueryIndexVectorSize: *mut core::ffi::c_void,
pub QueryHashAlgorithms: *mut core::ffi::c_void,
pub SetHashAlgorithm: *mut core::ffi::c_void,
pub QuerySampleHint: *mut core::ffi::c_void,
pub AcceptSampleData: *mut core::ffi::c_void,
pub ExportEngineData: *mut core::ffi::c_void,
pub VerifyFeatureSet: *mut core::ffi::c_void,
pub IdentifyFeatureSet: *mut core::ffi::c_void,
pub CreateEnrollment: *mut core::ffi::c_void,
pub UpdateEnrollment: *mut core::ffi::c_void,
pub GetEnrollmentStatus: *mut core::ffi::c_void,
pub GetEnrollmentHash: *mut core::ffi::c_void,
pub CheckForDuplicate: *mut core::ffi::c_void,
pub CommitEnrollment: *mut core::ffi::c_void,
pub DiscardEnrollment: *mut core::ffi::c_void,
pub ControlUnit: *mut core::ffi::c_void,
pub ControlUnitPrivileged: *mut core::ffi::c_void,
pub NotifyPowerChange: *mut core::ffi::c_void,
pub Reserved_1: *mut core::ffi::c_void,
pub PipelineInit: *mut core::ffi::c_void,
pub PipelineCleanup: *mut core::ffi::c_void,
pub Activate: *mut core::ffi::c_void,
pub Deactivate: *mut core::ffi::c_void,
pub QueryExtendedInfo: *mut core::ffi::c_void,
pub IdentifyAll: *mut core::ffi::c_void,
pub SetEnrollmentSelector: *mut core::ffi::c_void,
pub SetEnrollmentParameters: *mut core::ffi::c_void,
pub QueryExtendedEnrollmentStatus: *mut core::ffi::c_void,
pub RefreshCache: *mut core::ffi::c_void,
pub SelectCalibrationFormat: *mut core::ffi::c_void,
pub QueryCalibrationData: *mut core::ffi::c_void,
pub SetAccountPolicy: *mut core::ffi::c_void,
pub CreateKey: *mut core::ffi::c_void,
pub IdentifyFeatureSetSecure: *mut core::ffi::c_void,
pub AcceptPrivateSensorTypeInfo: *mut core::ffi::c_void,
pub CreateEnrollmentAuthenticated: *mut core::ffi::c_void,
pub IdentifyFeatureSetAuthenticated: *mut core::ffi::c_void,
}import "golang.org/x/sys/windows"
type WINBIO_ADAPTER_INTERFACE_VERSION struct {
MajorVersion uint16
MinorVersion uint16
}
type WINBIO_ENGINE_INTERFACE struct {
Version WINBIO_ADAPTER_INTERFACE_VERSION
Type uint32
Size uintptr
AdapterId windows.GUID
Attach uintptr
Detach uintptr
ClearContext uintptr
QueryPreferredFormat uintptr
QueryIndexVectorSize uintptr
QueryHashAlgorithms uintptr
SetHashAlgorithm uintptr
QuerySampleHint uintptr
AcceptSampleData uintptr
ExportEngineData uintptr
VerifyFeatureSet uintptr
IdentifyFeatureSet uintptr
CreateEnrollment uintptr
UpdateEnrollment uintptr
GetEnrollmentStatus uintptr
GetEnrollmentHash uintptr
CheckForDuplicate uintptr
CommitEnrollment uintptr
DiscardEnrollment uintptr
ControlUnit uintptr
ControlUnitPrivileged uintptr
NotifyPowerChange uintptr
Reserved_1 uintptr
PipelineInit uintptr
PipelineCleanup uintptr
Activate uintptr
Deactivate uintptr
QueryExtendedInfo uintptr
IdentifyAll uintptr
SetEnrollmentSelector uintptr
SetEnrollmentParameters uintptr
QueryExtendedEnrollmentStatus uintptr
RefreshCache uintptr
SelectCalibrationFormat uintptr
QueryCalibrationData uintptr
SetAccountPolicy uintptr
CreateKey uintptr
IdentifyFeatureSetSecure uintptr
AcceptPrivateSensorTypeInfo uintptr
CreateEnrollmentAuthenticated uintptr
IdentifyFeatureSetAuthenticated uintptr
}type
WINBIO_ADAPTER_INTERFACE_VERSION = record
MajorVersion: Word;
MinorVersion: Word;
end;
WINBIO_ENGINE_INTERFACE = record
Version: WINBIO_ADAPTER_INTERFACE_VERSION;
Type: DWORD;
Size: NativeUInt;
AdapterId: TGUID;
Attach: Pointer;
Detach: Pointer;
ClearContext: Pointer;
QueryPreferredFormat: Pointer;
QueryIndexVectorSize: Pointer;
QueryHashAlgorithms: Pointer;
SetHashAlgorithm: Pointer;
QuerySampleHint: Pointer;
AcceptSampleData: Pointer;
ExportEngineData: Pointer;
VerifyFeatureSet: Pointer;
IdentifyFeatureSet: Pointer;
CreateEnrollment: Pointer;
UpdateEnrollment: Pointer;
GetEnrollmentStatus: Pointer;
GetEnrollmentHash: Pointer;
CheckForDuplicate: Pointer;
CommitEnrollment: Pointer;
DiscardEnrollment: Pointer;
ControlUnit: Pointer;
ControlUnitPrivileged: Pointer;
NotifyPowerChange: Pointer;
Reserved_1: Pointer;
PipelineInit: Pointer;
PipelineCleanup: Pointer;
Activate: Pointer;
Deactivate: Pointer;
QueryExtendedInfo: Pointer;
IdentifyAll: Pointer;
SetEnrollmentSelector: Pointer;
SetEnrollmentParameters: Pointer;
QueryExtendedEnrollmentStatus: Pointer;
RefreshCache: Pointer;
SelectCalibrationFormat: Pointer;
QueryCalibrationData: Pointer;
SetAccountPolicy: Pointer;
CreateKey: Pointer;
IdentifyFeatureSetSecure: Pointer;
AcceptPrivateSensorTypeInfo: Pointer;
CreateEnrollmentAuthenticated: Pointer;
IdentifyFeatureSetAuthenticated: Pointer;
end;const WINBIO_ADAPTER_INTERFACE_VERSION = extern struct {
MajorVersion: u16,
MinorVersion: u16,
};
const WINBIO_ENGINE_INTERFACE = extern struct {
Version: WINBIO_ADAPTER_INTERFACE_VERSION,
Type: u32,
Size: usize,
AdapterId: GUID,
Attach: ?*anyopaque,
Detach: ?*anyopaque,
ClearContext: ?*anyopaque,
QueryPreferredFormat: ?*anyopaque,
QueryIndexVectorSize: ?*anyopaque,
QueryHashAlgorithms: ?*anyopaque,
SetHashAlgorithm: ?*anyopaque,
QuerySampleHint: ?*anyopaque,
AcceptSampleData: ?*anyopaque,
ExportEngineData: ?*anyopaque,
VerifyFeatureSet: ?*anyopaque,
IdentifyFeatureSet: ?*anyopaque,
CreateEnrollment: ?*anyopaque,
UpdateEnrollment: ?*anyopaque,
GetEnrollmentStatus: ?*anyopaque,
GetEnrollmentHash: ?*anyopaque,
CheckForDuplicate: ?*anyopaque,
CommitEnrollment: ?*anyopaque,
DiscardEnrollment: ?*anyopaque,
ControlUnit: ?*anyopaque,
ControlUnitPrivileged: ?*anyopaque,
NotifyPowerChange: ?*anyopaque,
Reserved_1: ?*anyopaque,
PipelineInit: ?*anyopaque,
PipelineCleanup: ?*anyopaque,
Activate: ?*anyopaque,
Deactivate: ?*anyopaque,
QueryExtendedInfo: ?*anyopaque,
IdentifyAll: ?*anyopaque,
SetEnrollmentSelector: ?*anyopaque,
SetEnrollmentParameters: ?*anyopaque,
QueryExtendedEnrollmentStatus: ?*anyopaque,
RefreshCache: ?*anyopaque,
SelectCalibrationFormat: ?*anyopaque,
QueryCalibrationData: ?*anyopaque,
SetAccountPolicy: ?*anyopaque,
CreateKey: ?*anyopaque,
IdentifyFeatureSetSecure: ?*anyopaque,
AcceptPrivateSensorTypeInfo: ?*anyopaque,
CreateEnrollmentAuthenticated: ?*anyopaque,
IdentifyFeatureSetAuthenticated: ?*anyopaque,
};type
WINBIO_ADAPTER_INTERFACE_VERSION {.bycopy.} = object
MajorVersion: uint16
MinorVersion: uint16
WINBIO_ENGINE_INTERFACE {.bycopy.} = object
Version: WINBIO_ADAPTER_INTERFACE_VERSION
Type: uint32
Size: uint
AdapterId: GUID
Attach: pointer
Detach: pointer
ClearContext: pointer
QueryPreferredFormat: pointer
QueryIndexVectorSize: pointer
QueryHashAlgorithms: pointer
SetHashAlgorithm: pointer
QuerySampleHint: pointer
AcceptSampleData: pointer
ExportEngineData: pointer
VerifyFeatureSet: pointer
IdentifyFeatureSet: pointer
CreateEnrollment: pointer
UpdateEnrollment: pointer
GetEnrollmentStatus: pointer
GetEnrollmentHash: pointer
CheckForDuplicate: pointer
CommitEnrollment: pointer
DiscardEnrollment: pointer
ControlUnit: pointer
ControlUnitPrivileged: pointer
NotifyPowerChange: pointer
Reserved_1: pointer
PipelineInit: pointer
PipelineCleanup: pointer
Activate: pointer
Deactivate: pointer
QueryExtendedInfo: pointer
IdentifyAll: pointer
SetEnrollmentSelector: pointer
SetEnrollmentParameters: pointer
QueryExtendedEnrollmentStatus: pointer
RefreshCache: pointer
SelectCalibrationFormat: pointer
QueryCalibrationData: pointer
SetAccountPolicy: pointer
CreateKey: pointer
IdentifyFeatureSetSecure: pointer
AcceptPrivateSensorTypeInfo: pointer
CreateEnrollmentAuthenticated: pointer
IdentifyFeatureSetAuthenticated: pointerstruct WINBIO_ADAPTER_INTERFACE_VERSION
{
ushort MajorVersion;
ushort MinorVersion;
}
struct WINBIO_ENGINE_INTERFACE
{
WINBIO_ADAPTER_INTERFACE_VERSION Version;
uint Type;
size_t Size;
GUID AdapterId;
void* Attach;
void* Detach;
void* ClearContext;
void* QueryPreferredFormat;
void* QueryIndexVectorSize;
void* QueryHashAlgorithms;
void* SetHashAlgorithm;
void* QuerySampleHint;
void* AcceptSampleData;
void* ExportEngineData;
void* VerifyFeatureSet;
void* IdentifyFeatureSet;
void* CreateEnrollment;
void* UpdateEnrollment;
void* GetEnrollmentStatus;
void* GetEnrollmentHash;
void* CheckForDuplicate;
void* CommitEnrollment;
void* DiscardEnrollment;
void* ControlUnit;
void* ControlUnitPrivileged;
void* NotifyPowerChange;
void* Reserved_1;
void* PipelineInit;
void* PipelineCleanup;
void* Activate;
void* Deactivate;
void* QueryExtendedInfo;
void* IdentifyAll;
void* SetEnrollmentSelector;
void* SetEnrollmentParameters;
void* QueryExtendedEnrollmentStatus;
void* RefreshCache;
void* SelectCalibrationFormat;
void* QueryCalibrationData;
void* SetAccountPolicy;
void* CreateKey;
void* IdentifyFeatureSetSecure;
void* AcceptPrivateSensorTypeInfo;
void* CreateEnrollmentAuthenticated;
void* IdentifyFeatureSetAuthenticated;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; WINBIO_ENGINE_INTERFACE サイズ: 192 バイト(x86)
dim st, 48 ; 4byte整数×48(構造体サイズ 192 / 4 切り上げ)
; Version : WINBIO_ADAPTER_INTERFACE_VERSION (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; Type : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; Size : UINT_PTR (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; AdapterId : GUID (+12, 16byte) varptr(st)+12 を基点に操作(16byte:入れ子/配列)
; Attach : PIBIO_ENGINE_ATTACH_FN (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; Detach : PIBIO_ENGINE_DETACH_FN (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; ClearContext : PIBIO_ENGINE_CLEAR_CONTEXT_FN (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; QueryPreferredFormat : PIBIO_ENGINE_QUERY_PREFERRED_FORMAT_FN (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; QueryIndexVectorSize : PIBIO_ENGINE_QUERY_INDEX_VECTOR_SIZE_FN (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; QueryHashAlgorithms : PIBIO_ENGINE_QUERY_HASH_ALGORITHMS_FN (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; SetHashAlgorithm : PIBIO_ENGINE_SET_HASH_ALGORITHM_FN (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; QuerySampleHint : PIBIO_ENGINE_QUERY_SAMPLE_HINT_FN (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; AcceptSampleData : PIBIO_ENGINE_ACCEPT_SAMPLE_DATA_FN (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; ExportEngineData : PIBIO_ENGINE_EXPORT_ENGINE_DATA_FN (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; VerifyFeatureSet : PIBIO_ENGINE_VERIFY_FEATURE_SET_FN (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; IdentifyFeatureSet : PIBIO_ENGINE_IDENTIFY_FEATURE_SET_FN (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; CreateEnrollment : PIBIO_ENGINE_CREATE_ENROLLMENT_FN (+76, 4byte) st.19 = 値 / 値 = st.19 (lpoke/lpeek も可)
; UpdateEnrollment : PIBIO_ENGINE_UPDATE_ENROLLMENT_FN (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; GetEnrollmentStatus : PIBIO_ENGINE_GET_ENROLLMENT_STATUS_FN (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; GetEnrollmentHash : PIBIO_ENGINE_GET_ENROLLMENT_HASH_FN (+88, 4byte) st.22 = 値 / 値 = st.22 (lpoke/lpeek も可)
; CheckForDuplicate : PIBIO_ENGINE_CHECK_FOR_DUPLICATE_FN (+92, 4byte) st.23 = 値 / 値 = st.23 (lpoke/lpeek も可)
; CommitEnrollment : PIBIO_ENGINE_COMMIT_ENROLLMENT_FN (+96, 4byte) st.24 = 値 / 値 = st.24 (lpoke/lpeek も可)
; DiscardEnrollment : PIBIO_ENGINE_DISCARD_ENROLLMENT_FN (+100, 4byte) st.25 = 値 / 値 = st.25 (lpoke/lpeek も可)
; ControlUnit : PIBIO_ENGINE_CONTROL_UNIT_FN (+104, 4byte) st.26 = 値 / 値 = st.26 (lpoke/lpeek も可)
; ControlUnitPrivileged : PIBIO_ENGINE_CONTROL_UNIT_PRIVILEGED_FN (+108, 4byte) st.27 = 値 / 値 = st.27 (lpoke/lpeek も可)
; NotifyPowerChange : PIBIO_ENGINE_NOTIFY_POWER_CHANGE_FN (+112, 4byte) st.28 = 値 / 値 = st.28 (lpoke/lpeek も可)
; Reserved_1 : PIBIO_ENGINE_RESERVED_1_FN (+116, 4byte) st.29 = 値 / 値 = st.29 (lpoke/lpeek も可)
; PipelineInit : PIBIO_ENGINE_PIPELINE_INIT_FN (+120, 4byte) st.30 = 値 / 値 = st.30 (lpoke/lpeek も可)
; PipelineCleanup : PIBIO_ENGINE_PIPELINE_CLEANUP_FN (+124, 4byte) st.31 = 値 / 値 = st.31 (lpoke/lpeek も可)
; Activate : PIBIO_ENGINE_ACTIVATE_FN (+128, 4byte) st.32 = 値 / 値 = st.32 (lpoke/lpeek も可)
; Deactivate : PIBIO_ENGINE_DEACTIVATE_FN (+132, 4byte) st.33 = 値 / 値 = st.33 (lpoke/lpeek も可)
; QueryExtendedInfo : PIBIO_ENGINE_QUERY_EXTENDED_INFO_FN (+136, 4byte) st.34 = 値 / 値 = st.34 (lpoke/lpeek も可)
; IdentifyAll : PIBIO_ENGINE_IDENTIFY_ALL_FN (+140, 4byte) st.35 = 値 / 値 = st.35 (lpoke/lpeek も可)
; SetEnrollmentSelector : PIBIO_ENGINE_SET_ENROLLMENT_SELECTOR_FN (+144, 4byte) st.36 = 値 / 値 = st.36 (lpoke/lpeek も可)
; SetEnrollmentParameters : PIBIO_ENGINE_SET_ENROLLMENT_PARAMETERS_FN (+148, 4byte) st.37 = 値 / 値 = st.37 (lpoke/lpeek も可)
; QueryExtendedEnrollmentStatus : PIBIO_ENGINE_QUERY_EXTENDED_ENROLLMENT_STATUS_FN (+152, 4byte) st.38 = 値 / 値 = st.38 (lpoke/lpeek も可)
; RefreshCache : PIBIO_ENGINE_REFRESH_CACHE_FN (+156, 4byte) st.39 = 値 / 値 = st.39 (lpoke/lpeek も可)
; SelectCalibrationFormat : PIBIO_ENGINE_SELECT_CALIBRATION_FORMAT_FN (+160, 4byte) st.40 = 値 / 値 = st.40 (lpoke/lpeek も可)
; QueryCalibrationData : PIBIO_ENGINE_QUERY_CALIBRATION_DATA_FN (+164, 4byte) st.41 = 値 / 値 = st.41 (lpoke/lpeek も可)
; SetAccountPolicy : PIBIO_ENGINE_SET_ACCOUNT_POLICY_FN (+168, 4byte) st.42 = 値 / 値 = st.42 (lpoke/lpeek も可)
; CreateKey : PIBIO_ENGINE_CREATE_KEY_FN (+172, 4byte) st.43 = 値 / 値 = st.43 (lpoke/lpeek も可)
; IdentifyFeatureSetSecure : PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN (+176, 4byte) st.44 = 値 / 値 = st.44 (lpoke/lpeek も可)
; AcceptPrivateSensorTypeInfo : PIBIO_ENGINE_ACCEPT_PRIVATE_SENSOR_TYPE_INFO_FN (+180, 4byte) st.45 = 値 / 値 = st.45 (lpoke/lpeek も可)
; CreateEnrollmentAuthenticated : PIBIO_ENGINE_CREATE_ENROLLMENT_AUTHENTICATED_FN (+184, 4byte) st.46 = 値 / 値 = st.46 (lpoke/lpeek も可)
; IdentifyFeatureSetAuthenticated : PIBIO_ENGINE_IDENTIFY_FEATURE_SET_AUTHENTICATED_FN (+188, 4byte) st.47 = 値 / 値 = st.47 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; WINBIO_ENGINE_INTERFACE サイズ: 360 バイト(x64)
dim st, 90 ; 4byte整数×90(構造体サイズ 360 / 4 切り上げ)
; Version : WINBIO_ADAPTER_INTERFACE_VERSION (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; Type : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; Size : UINT_PTR (+8, 8byte) qpoke st,8,値 / qpeek(st,8) ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; AdapterId : GUID (+16, 16byte) varptr(st)+16 を基点に操作(16byte:入れ子/配列)
; Attach : PIBIO_ENGINE_ATTACH_FN (+32, 8byte) qpoke st,32,値 / qpeek(st,32) ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; Detach : PIBIO_ENGINE_DETACH_FN (+40, 8byte) qpoke st,40,値 / qpeek(st,40) ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; ClearContext : PIBIO_ENGINE_CLEAR_CONTEXT_FN (+48, 8byte) qpoke st,48,値 / qpeek(st,48) ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; QueryPreferredFormat : PIBIO_ENGINE_QUERY_PREFERRED_FORMAT_FN (+56, 8byte) qpoke st,56,値 / qpeek(st,56) ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; QueryIndexVectorSize : PIBIO_ENGINE_QUERY_INDEX_VECTOR_SIZE_FN (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; QueryHashAlgorithms : PIBIO_ENGINE_QUERY_HASH_ALGORITHMS_FN (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; SetHashAlgorithm : PIBIO_ENGINE_SET_HASH_ALGORITHM_FN (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; QuerySampleHint : PIBIO_ENGINE_QUERY_SAMPLE_HINT_FN (+88, 8byte) qpoke st,88,値 / qpeek(st,88) ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; AcceptSampleData : PIBIO_ENGINE_ACCEPT_SAMPLE_DATA_FN (+96, 8byte) qpoke st,96,値 / qpeek(st,96) ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; ExportEngineData : PIBIO_ENGINE_EXPORT_ENGINE_DATA_FN (+104, 8byte) qpoke st,104,値 / qpeek(st,104) ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; VerifyFeatureSet : PIBIO_ENGINE_VERIFY_FEATURE_SET_FN (+112, 8byte) qpoke st,112,値 / qpeek(st,112) ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; IdentifyFeatureSet : PIBIO_ENGINE_IDENTIFY_FEATURE_SET_FN (+120, 8byte) qpoke st,120,値 / qpeek(st,120) ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; CreateEnrollment : PIBIO_ENGINE_CREATE_ENROLLMENT_FN (+128, 8byte) qpoke st,128,値 / qpeek(st,128) ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; UpdateEnrollment : PIBIO_ENGINE_UPDATE_ENROLLMENT_FN (+136, 8byte) qpoke st,136,値 / qpeek(st,136) ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; GetEnrollmentStatus : PIBIO_ENGINE_GET_ENROLLMENT_STATUS_FN (+144, 8byte) qpoke st,144,値 / qpeek(st,144) ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; GetEnrollmentHash : PIBIO_ENGINE_GET_ENROLLMENT_HASH_FN (+152, 8byte) qpoke st,152,値 / qpeek(st,152) ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; CheckForDuplicate : PIBIO_ENGINE_CHECK_FOR_DUPLICATE_FN (+160, 8byte) qpoke st,160,値 / qpeek(st,160) ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; CommitEnrollment : PIBIO_ENGINE_COMMIT_ENROLLMENT_FN (+168, 8byte) qpoke st,168,値 / qpeek(st,168) ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; DiscardEnrollment : PIBIO_ENGINE_DISCARD_ENROLLMENT_FN (+176, 8byte) qpoke st,176,値 / qpeek(st,176) ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; ControlUnit : PIBIO_ENGINE_CONTROL_UNIT_FN (+184, 8byte) qpoke st,184,値 / qpeek(st,184) ※IronHSPのみ。3.7/3.8は lpoke st,184,下位 : lpoke st,188,上位
; ControlUnitPrivileged : PIBIO_ENGINE_CONTROL_UNIT_PRIVILEGED_FN (+192, 8byte) qpoke st,192,値 / qpeek(st,192) ※IronHSPのみ。3.7/3.8は lpoke st,192,下位 : lpoke st,196,上位
; NotifyPowerChange : PIBIO_ENGINE_NOTIFY_POWER_CHANGE_FN (+200, 8byte) qpoke st,200,値 / qpeek(st,200) ※IronHSPのみ。3.7/3.8は lpoke st,200,下位 : lpoke st,204,上位
; Reserved_1 : PIBIO_ENGINE_RESERVED_1_FN (+208, 8byte) qpoke st,208,値 / qpeek(st,208) ※IronHSPのみ。3.7/3.8は lpoke st,208,下位 : lpoke st,212,上位
; PipelineInit : PIBIO_ENGINE_PIPELINE_INIT_FN (+216, 8byte) qpoke st,216,値 / qpeek(st,216) ※IronHSPのみ。3.7/3.8は lpoke st,216,下位 : lpoke st,220,上位
; PipelineCleanup : PIBIO_ENGINE_PIPELINE_CLEANUP_FN (+224, 8byte) qpoke st,224,値 / qpeek(st,224) ※IronHSPのみ。3.7/3.8は lpoke st,224,下位 : lpoke st,228,上位
; Activate : PIBIO_ENGINE_ACTIVATE_FN (+232, 8byte) qpoke st,232,値 / qpeek(st,232) ※IronHSPのみ。3.7/3.8は lpoke st,232,下位 : lpoke st,236,上位
; Deactivate : PIBIO_ENGINE_DEACTIVATE_FN (+240, 8byte) qpoke st,240,値 / qpeek(st,240) ※IronHSPのみ。3.7/3.8は lpoke st,240,下位 : lpoke st,244,上位
; QueryExtendedInfo : PIBIO_ENGINE_QUERY_EXTENDED_INFO_FN (+248, 8byte) qpoke st,248,値 / qpeek(st,248) ※IronHSPのみ。3.7/3.8は lpoke st,248,下位 : lpoke st,252,上位
; IdentifyAll : PIBIO_ENGINE_IDENTIFY_ALL_FN (+256, 8byte) qpoke st,256,値 / qpeek(st,256) ※IronHSPのみ。3.7/3.8は lpoke st,256,下位 : lpoke st,260,上位
; SetEnrollmentSelector : PIBIO_ENGINE_SET_ENROLLMENT_SELECTOR_FN (+264, 8byte) qpoke st,264,値 / qpeek(st,264) ※IronHSPのみ。3.7/3.8は lpoke st,264,下位 : lpoke st,268,上位
; SetEnrollmentParameters : PIBIO_ENGINE_SET_ENROLLMENT_PARAMETERS_FN (+272, 8byte) qpoke st,272,値 / qpeek(st,272) ※IronHSPのみ。3.7/3.8は lpoke st,272,下位 : lpoke st,276,上位
; QueryExtendedEnrollmentStatus : PIBIO_ENGINE_QUERY_EXTENDED_ENROLLMENT_STATUS_FN (+280, 8byte) qpoke st,280,値 / qpeek(st,280) ※IronHSPのみ。3.7/3.8は lpoke st,280,下位 : lpoke st,284,上位
; RefreshCache : PIBIO_ENGINE_REFRESH_CACHE_FN (+288, 8byte) qpoke st,288,値 / qpeek(st,288) ※IronHSPのみ。3.7/3.8は lpoke st,288,下位 : lpoke st,292,上位
; SelectCalibrationFormat : PIBIO_ENGINE_SELECT_CALIBRATION_FORMAT_FN (+296, 8byte) qpoke st,296,値 / qpeek(st,296) ※IronHSPのみ。3.7/3.8は lpoke st,296,下位 : lpoke st,300,上位
; QueryCalibrationData : PIBIO_ENGINE_QUERY_CALIBRATION_DATA_FN (+304, 8byte) qpoke st,304,値 / qpeek(st,304) ※IronHSPのみ。3.7/3.8は lpoke st,304,下位 : lpoke st,308,上位
; SetAccountPolicy : PIBIO_ENGINE_SET_ACCOUNT_POLICY_FN (+312, 8byte) qpoke st,312,値 / qpeek(st,312) ※IronHSPのみ。3.7/3.8は lpoke st,312,下位 : lpoke st,316,上位
; CreateKey : PIBIO_ENGINE_CREATE_KEY_FN (+320, 8byte) qpoke st,320,値 / qpeek(st,320) ※IronHSPのみ。3.7/3.8は lpoke st,320,下位 : lpoke st,324,上位
; IdentifyFeatureSetSecure : PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN (+328, 8byte) qpoke st,328,値 / qpeek(st,328) ※IronHSPのみ。3.7/3.8は lpoke st,328,下位 : lpoke st,332,上位
; AcceptPrivateSensorTypeInfo : PIBIO_ENGINE_ACCEPT_PRIVATE_SENSOR_TYPE_INFO_FN (+336, 8byte) qpoke st,336,値 / qpeek(st,336) ※IronHSPのみ。3.7/3.8は lpoke st,336,下位 : lpoke st,340,上位
; CreateEnrollmentAuthenticated : PIBIO_ENGINE_CREATE_ENROLLMENT_AUTHENTICATED_FN (+344, 8byte) qpoke st,344,値 / qpeek(st,344) ※IronHSPのみ。3.7/3.8は lpoke st,344,下位 : lpoke st,348,上位
; IdentifyFeatureSetAuthenticated : PIBIO_ENGINE_IDENTIFY_FEATURE_SET_AUTHENTICATED_FN (+352, 8byte) qpoke st,352,値 / qpeek(st,352) ※IronHSPのみ。3.7/3.8は lpoke st,352,下位 : lpoke st,356,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global WINBIO_ADAPTER_INTERFACE_VERSION
#field short MajorVersion
#field short MinorVersion
#endstruct
#defstruct global GUID, pack=1
#field int Data1
#field short Data2
#field short Data3
#field byte Data4 8
#endstruct
#defstruct global WINBIO_ENGINE_INTERFACE
#field WINBIO_ADAPTER_INTERFACE_VERSION Version
#field int Type
#field intptr Size
#field GUID AdapterId
#field intptr Attach
#field intptr Detach
#field intptr ClearContext
#field intptr QueryPreferredFormat
#field intptr QueryIndexVectorSize
#field intptr QueryHashAlgorithms
#field intptr SetHashAlgorithm
#field intptr QuerySampleHint
#field intptr AcceptSampleData
#field intptr ExportEngineData
#field intptr VerifyFeatureSet
#field intptr IdentifyFeatureSet
#field intptr CreateEnrollment
#field intptr UpdateEnrollment
#field intptr GetEnrollmentStatus
#field intptr GetEnrollmentHash
#field intptr CheckForDuplicate
#field intptr CommitEnrollment
#field intptr DiscardEnrollment
#field intptr ControlUnit
#field intptr ControlUnitPrivileged
#field intptr NotifyPowerChange
#field intptr Reserved_1
#field intptr PipelineInit
#field intptr PipelineCleanup
#field intptr Activate
#field intptr Deactivate
#field intptr QueryExtendedInfo
#field intptr IdentifyAll
#field intptr SetEnrollmentSelector
#field intptr SetEnrollmentParameters
#field intptr QueryExtendedEnrollmentStatus
#field intptr RefreshCache
#field intptr SelectCalibrationFormat
#field intptr QueryCalibrationData
#field intptr SetAccountPolicy
#field intptr CreateKey
#field intptr IdentifyFeatureSetSecure
#field intptr AcceptPrivateSensorTypeInfo
#field intptr CreateEnrollmentAuthenticated
#field intptr IdentifyFeatureSetAuthenticated
#endstruct
stdim st, WINBIO_ENGINE_INTERFACE ; NSTRUCT 変数を確保
st->Type = 100
mes "Type=" + st->Type