Win32 API 日本語リファレンス
ホームDevices.BiometricFramework › WINBIO_ENGINE_INTERFACE

WINBIO_ENGINE_INTERFACE

構造体
サイズx64: 360 バイト / x86: 192 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
VersionWINBIO_ADAPTER_INTERFACE_VERSION4+0+0このエンジンアダプタインターフェースのバージョン。
TypeDWORD4+4+4アダプタの種別(エンジン)を示す値。
SizeUINT_PTR8/4+8+8この構造体のサイズ(バイト)。
AdapterIdGUID16+16+12アダプタを一意に識別するGUID。
AttachPIBIO_ENGINE_ATTACH_FN8/4+32+28ユニットへのアタッチ時に呼ばれる関数ポインタ。
DetachPIBIO_ENGINE_DETACH_FN8/4+40+32ユニットからのデタッチ時に呼ばれる関数ポインタ。
ClearContextPIBIO_ENGINE_CLEAR_CONTEXT_FN8/4+48+36コンテキストをクリアする関数ポインタ。
QueryPreferredFormatPIBIO_ENGINE_QUERY_PREFERRED_FORMAT_FN8/4+56+40優先データ形式を問い合わせる関数ポインタ。
QueryIndexVectorSizePIBIO_ENGINE_QUERY_INDEX_VECTOR_SIZE_FN8/4+64+44インデックスベクタのサイズを問い合わせる関数ポインタ。
QueryHashAlgorithmsPIBIO_ENGINE_QUERY_HASH_ALGORITHMS_FN8/4+72+48対応ハッシュアルゴリズムを問い合わせる関数ポインタ。
SetHashAlgorithmPIBIO_ENGINE_SET_HASH_ALGORITHM_FN8/4+80+52使用するハッシュアルゴリズムを設定する関数ポインタ。
QuerySampleHintPIBIO_ENGINE_QUERY_SAMPLE_HINT_FN8/4+88+56登録に必要なサンプル数の目安を問い合わせる関数ポインタ。
AcceptSampleDataPIBIO_ENGINE_ACCEPT_SAMPLE_DATA_FN8/4+96+60サンプルデータを受け取り特徴抽出する関数ポインタ。
ExportEngineDataPIBIO_ENGINE_EXPORT_ENGINE_DATA_FN8/4+104+64エンジンデータをエクスポートする関数ポインタ。
VerifyFeatureSetPIBIO_ENGINE_VERIFY_FEATURE_SET_FN8/4+112+68特徴量を1対1で照合(検証)する関数ポインタ。
IdentifyFeatureSetPIBIO_ENGINE_IDENTIFY_FEATURE_SET_FN8/4+120+72特徴量を1対多で照合(識別)する関数ポインタ。
CreateEnrollmentPIBIO_ENGINE_CREATE_ENROLLMENT_FN8/4+128+76新規登録処理を開始する関数ポインタ。
UpdateEnrollmentPIBIO_ENGINE_UPDATE_ENROLLMENT_FN8/4+136+80登録にサンプルを追加する関数ポインタ。
GetEnrollmentStatusPIBIO_ENGINE_GET_ENROLLMENT_STATUS_FN8/4+144+84登録の進捗状態を取得する関数ポインタ。
GetEnrollmentHashPIBIO_ENGINE_GET_ENROLLMENT_HASH_FN8/4+152+88登録テンプレートのハッシュを取得する関数ポインタ。
CheckForDuplicatePIBIO_ENGINE_CHECK_FOR_DUPLICATE_FN8/4+160+92重複登録の有無を確認する関数ポインタ。
CommitEnrollmentPIBIO_ENGINE_COMMIT_ENROLLMENT_FN8/4+168+96登録を確定(保存)する関数ポインタ。
DiscardEnrollmentPIBIO_ENGINE_DISCARD_ENROLLMENT_FN8/4+176+100進行中の登録を破棄する関数ポインタ。
ControlUnitPIBIO_ENGINE_CONTROL_UNIT_FN8/4+184+104ユニットへ制御コマンドを送る関数ポインタ。
ControlUnitPrivilegedPIBIO_ENGINE_CONTROL_UNIT_PRIVILEGED_FN8/4+192+108特権付きの制御コマンドを送る関数ポインタ。
NotifyPowerChangePIBIO_ENGINE_NOTIFY_POWER_CHANGE_FN8/4+200+112電源状態変化を通知する関数ポインタ。
Reserved_1PIBIO_ENGINE_RESERVED_1_FN8/4+208+116将来の拡張用に予約された関数ポインタ。
PipelineInitPIBIO_ENGINE_PIPELINE_INIT_FN8/4+216+120パイプラインを初期化する関数ポインタ。
PipelineCleanupPIBIO_ENGINE_PIPELINE_CLEANUP_FN8/4+224+124パイプラインを後始末する関数ポインタ。
ActivatePIBIO_ENGINE_ACTIVATE_FN8/4+232+128エンジンを有効化する関数ポインタ。
DeactivatePIBIO_ENGINE_DEACTIVATE_FN8/4+240+132エンジンを無効化する関数ポインタ。
QueryExtendedInfoPIBIO_ENGINE_QUERY_EXTENDED_INFO_FN8/4+248+136拡張エンジン情報を問い合わせる関数ポインタ。
IdentifyAllPIBIO_ENGINE_IDENTIFY_ALL_FN8/4+256+140全登録に対し識別を行う関数ポインタ。
SetEnrollmentSelectorPIBIO_ENGINE_SET_ENROLLMENT_SELECTOR_FN8/4+264+144登録セレクタを設定する関数ポインタ。
SetEnrollmentParametersPIBIO_ENGINE_SET_ENROLLMENT_PARAMETERS_FN8/4+272+148登録パラメータを設定する関数ポインタ。
QueryExtendedEnrollmentStatusPIBIO_ENGINE_QUERY_EXTENDED_ENROLLMENT_STATUS_FN8/4+280+152拡張登録状態を問い合わせる関数ポインタ。
RefreshCachePIBIO_ENGINE_REFRESH_CACHE_FN8/4+288+156エンジン内キャッシュを更新する関数ポインタ。
SelectCalibrationFormatPIBIO_ENGINE_SELECT_CALIBRATION_FORMAT_FN8/4+296+160校正形式を選択する関数ポインタ。
QueryCalibrationDataPIBIO_ENGINE_QUERY_CALIBRATION_DATA_FN8/4+304+164校正データを問い合わせる関数ポインタ。
SetAccountPolicyPIBIO_ENGINE_SET_ACCOUNT_POLICY_FN8/4+312+168アカウントポリシを設定する関数ポインタ。
CreateKeyPIBIO_ENGINE_CREATE_KEY_FN8/4+320+172鍵を生成する関数ポインタ。
IdentifyFeatureSetSecurePIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN8/4+328+176セキュアに特徴量の識別を行う関数ポインタ。
AcceptPrivateSensorTypeInfoPIBIO_ENGINE_ACCEPT_PRIVATE_SENSOR_TYPE_INFO_FN8/4+336+180プライベートセンサ種別情報を受け取る関数ポインタ。
CreateEnrollmentAuthenticatedPIBIO_ENGINE_CREATE_ENROLLMENT_AUTHENTICATED_FN8/4+344+184認証付きで新規登録を作成する関数ポインタ。
IdentifyFeatureSetAuthenticatedPIBIO_ENGINE_IDENTIFY_FEATURE_SET_AUTHENTICATED_FN8/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 Structure
import 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: pointer
struct 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