zigwin32/win32/devices/biometric_framework.zig

1922 lines
94 KiB
Zig

//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (104)
//--------------------------------------------------------------------------------
pub const WINBIO_MAX_STRING_LEN = @as(u32, 256);
pub const WINBIO_SCP_VERSION_1 = @as(u32, 1);
pub const WINBIO_SCP_RANDOM_SIZE_V1 = @as(u32, 32);
pub const WINBIO_SCP_DIGEST_SIZE_V1 = @as(u32, 32);
pub const WINBIO_SCP_CURVE_FIELD_SIZE_V1 = @as(u32, 32);
pub const WINBIO_SCP_PUBLIC_KEY_SIZE_V1 = @as(u32, 65);
pub const WINBIO_SCP_PRIVATE_KEY_SIZE_V1 = @as(u32, 32);
pub const WINBIO_SCP_SIGNATURE_SIZE_V1 = @as(u32, 64);
pub const WINBIO_SCP_ENCRYPTION_BLOCK_SIZE_V1 = @as(u32, 16);
pub const WINBIO_SCP_ENCRYPTION_KEY_SIZE_V1 = @as(u32, 32);
pub const WINBIO_BIR_ALIGN_SIZE = @as(u32, 8);
pub const WINBIO_BIR_ALGIN_SIZE = @as(u32, 8);
pub const FACILITY_WINBIO = @as(u32, 9);
pub const FACILITY_NONE = @as(u32, 0);
pub const WINBIO_E_UNSUPPORTED_FACTOR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861055));
pub const WINBIO_E_INVALID_UNIT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861054));
pub const WINBIO_E_UNKNOWN_ID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861053));
pub const WINBIO_E_CANCELED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861052));
pub const WINBIO_E_NO_MATCH = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861051));
pub const WINBIO_E_CAPTURE_ABORTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861050));
pub const WINBIO_E_ENROLLMENT_IN_PROGRESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861049));
pub const WINBIO_E_BAD_CAPTURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861048));
pub const WINBIO_E_INVALID_CONTROL_CODE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861047));
pub const WINBIO_E_DATA_COLLECTION_IN_PROGRESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861045));
pub const WINBIO_E_UNSUPPORTED_DATA_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861044));
pub const WINBIO_E_UNSUPPORTED_DATA_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861043));
pub const WINBIO_E_UNSUPPORTED_PURPOSE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861042));
pub const WINBIO_E_INVALID_DEVICE_STATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861041));
pub const WINBIO_E_DEVICE_BUSY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861040));
pub const WINBIO_E_DATABASE_CANT_CREATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861039));
pub const WINBIO_E_DATABASE_CANT_OPEN = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861038));
pub const WINBIO_E_DATABASE_CANT_CLOSE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861037));
pub const WINBIO_E_DATABASE_CANT_ERASE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861036));
pub const WINBIO_E_DATABASE_CANT_FIND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861035));
pub const WINBIO_E_DATABASE_ALREADY_EXISTS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861034));
pub const WINBIO_E_DATABASE_FULL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861032));
pub const WINBIO_E_DATABASE_LOCKED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861031));
pub const WINBIO_E_DATABASE_CORRUPTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861030));
pub const WINBIO_E_DATABASE_NO_SUCH_RECORD = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861029));
pub const WINBIO_E_DUPLICATE_ENROLLMENT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861028));
pub const WINBIO_E_DATABASE_READ_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861027));
pub const WINBIO_E_DATABASE_WRITE_ERROR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861026));
pub const WINBIO_E_DATABASE_NO_RESULTS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861025));
pub const WINBIO_E_DATABASE_NO_MORE_RECORDS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861024));
pub const WINBIO_E_DATABASE_EOF = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861023));
pub const WINBIO_E_DATABASE_BAD_INDEX_VECTOR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861022));
pub const WINBIO_E_INCORRECT_BSP = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861020));
pub const WINBIO_E_INCORRECT_SENSOR_POOL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861019));
pub const WINBIO_E_NO_CAPTURE_DATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861018));
pub const WINBIO_E_INVALID_SENSOR_MODE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861017));
pub const WINBIO_E_LOCK_VIOLATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861014));
pub const WINBIO_E_DUPLICATE_TEMPLATE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861013));
pub const WINBIO_E_INVALID_OPERATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861012));
pub const WINBIO_E_SESSION_BUSY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861011));
pub const WINBIO_E_CRED_PROV_DISABLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861008));
pub const WINBIO_E_CRED_PROV_NO_CREDENTIAL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861007));
pub const WINBIO_E_DISABLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861006));
pub const WINBIO_E_CONFIGURATION_FAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861005));
pub const WINBIO_E_SENSOR_UNAVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861004));
pub const WINBIO_E_SAS_ENABLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861003));
pub const WINBIO_E_DEVICE_FAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861002));
pub const WINBIO_E_FAST_USER_SWITCH_DISABLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861001));
pub const WINBIO_E_NOT_ACTIVE_CONSOLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146861000));
pub const WINBIO_E_EVENT_MONITOR_ACTIVE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860999));
pub const WINBIO_E_INVALID_PROPERTY_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860998));
pub const WINBIO_E_INVALID_PROPERTY_ID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860997));
pub const WINBIO_E_UNSUPPORTED_PROPERTY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860996));
pub const WINBIO_E_ADAPTER_INTEGRITY_FAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860995));
pub const WINBIO_E_INCORRECT_SESSION_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860994));
pub const WINBIO_E_SESSION_HANDLE_CLOSED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860993));
pub const WINBIO_E_DEADLOCK_DETECTED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860992));
pub const WINBIO_E_NO_PREBOOT_IDENTITY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860991));
pub const WINBIO_E_MAX_ERROR_COUNT_EXCEEDED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860990));
pub const WINBIO_E_AUTO_LOGON_DISABLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860989));
pub const WINBIO_E_INVALID_TICKET = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860988));
pub const WINBIO_E_TICKET_QUOTA_EXCEEDED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860987));
pub const WINBIO_E_DATA_PROTECTION_FAILURE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860986));
pub const WINBIO_E_CRED_PROV_SECURITY_LOCKOUT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860985));
pub const WINBIO_E_UNSUPPORTED_POOL_TYPE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860984));
pub const WINBIO_E_SELECTION_REQUIRED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860983));
pub const WINBIO_E_PRESENCE_MONITOR_ACTIVE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860982));
pub const WINBIO_E_INVALID_SUBFACTOR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860981));
pub const WINBIO_E_INVALID_CALIBRATION_FORMAT_ARRAY = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860980));
pub const WINBIO_E_NO_SUPPORTED_CALIBRATION_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860979));
pub const WINBIO_E_UNSUPPORTED_SENSOR_CALIBRATION_FORMAT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860978));
pub const WINBIO_E_CALIBRATION_BUFFER_TOO_SMALL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860977));
pub const WINBIO_E_CALIBRATION_BUFFER_TOO_LARGE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860976));
pub const WINBIO_E_CALIBRATION_BUFFER_INVALID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860975));
pub const WINBIO_E_INVALID_KEY_IDENTIFIER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860974));
pub const WINBIO_E_KEY_CREATION_FAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860973));
pub const WINBIO_E_KEY_IDENTIFIER_BUFFER_TOO_SMALL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860972));
pub const WINBIO_E_PROPERTY_UNAVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860971));
pub const WINBIO_E_POLICY_PROTECTION_UNAVAILABLE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860970));
pub const WINBIO_E_INSECURE_SENSOR = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860969));
pub const WINBIO_E_INVALID_BUFFER_ID = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860968));
pub const WINBIO_E_INVALID_BUFFER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860967));
pub const WINBIO_E_TRUSTLET_INTEGRITY_FAIL = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860966));
pub const WINBIO_E_ENROLLMENT_CANCELED_BY_SUSPEND = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2146860965));
pub const WINBIO_I_MORE_DATA = @import("../zig.zig").typedConst(HRESULT, @as(i32, 589825));
pub const WINBIO_I_EXTENDED_STATUS_INFORMATION = @import("../zig.zig").typedConst(HRESULT, @as(i32, 589826));
pub const GUID_DEVINTERFACE_BIOMETRIC_READER = Guid.initString("e2b5183a-99ea-4cc3-ad6b-80ca8d715b80");
pub const IOCTL_BIOMETRIC_VENDOR = @as(u32, 4464640);
pub const WINBIO_WBDI_MAJOR_VERSION = @as(u32, 1);
pub const WINBIO_WBDI_MINOR_VERSION = @as(u32, 0);
//--------------------------------------------------------------------------------
// Section: Types (192)
//--------------------------------------------------------------------------------
pub const WINBIO_SETTING_SOURCE = enum(u32) {
INVALID = 0,
DEFAULT = 1,
LOCAL = 3,
POLICY = 2,
};
pub const WINBIO_SETTING_SOURCE_INVALID = WINBIO_SETTING_SOURCE.INVALID;
pub const WINBIO_SETTING_SOURCE_DEFAULT = WINBIO_SETTING_SOURCE.DEFAULT;
pub const WINBIO_SETTING_SOURCE_LOCAL = WINBIO_SETTING_SOURCE.LOCAL;
pub const WINBIO_SETTING_SOURCE_POLICY = WINBIO_SETTING_SOURCE.POLICY;
pub const WINBIO_COMPONENT = enum(u32) {
SENSOR = 1,
ENGINE = 2,
STORAGE = 3,
};
pub const WINBIO_COMPONENT_SENSOR = WINBIO_COMPONENT.SENSOR;
pub const WINBIO_COMPONENT_ENGINE = WINBIO_COMPONENT.ENGINE;
pub const WINBIO_COMPONENT_STORAGE = WINBIO_COMPONENT.STORAGE;
pub const WINBIO_POOL = enum(u32) {
SYSTEM = 1,
PRIVATE = 2,
};
pub const WINBIO_POOL_SYSTEM = WINBIO_POOL.SYSTEM;
pub const WINBIO_POOL_PRIVATE = WINBIO_POOL.PRIVATE;
pub const WINBIO_VERSION = extern struct {
MajorVersion: u32,
MinorVersion: u32,
};
pub const WINBIO_IDENTITY = extern struct {
Type: u32,
Value: extern union {
Null: u32,
Wildcard: u32,
TemplateGuid: Guid,
AccountSid: extern struct {
Size: u32,
Data: [68]u8,
},
SecureId: [32]u8,
},
};
pub const WINBIO_SECURE_CONNECTION_PARAMS = extern struct {
PayloadSize: u32,
Version: u16,
Flags: u16,
};
pub const WINBIO_SECURE_CONNECTION_DATA = extern struct {
Size: u32,
Version: u16,
Flags: u16,
ModelCertificateSize: u32,
IntermediateCA1Size: u32,
IntermediateCA2Size: u32,
};
pub const WINBIO_BIR_DATA = extern struct {
Size: u32,
Offset: u32,
};
pub const WINBIO_BIR = extern struct {
HeaderBlock: WINBIO_BIR_DATA,
StandardDataBlock: WINBIO_BIR_DATA,
VendorDataBlock: WINBIO_BIR_DATA,
SignatureBlock: WINBIO_BIR_DATA,
};
pub const WINBIO_REGISTERED_FORMAT = extern struct {
Owner: u16,
Type: u16,
};
pub const WINBIO_BIR_HEADER = extern struct {
ValidFields: u16,
HeaderVersion: u8,
PatronHeaderVersion: u8,
DataFlags: u8,
Type: u32,
Subtype: u8,
Purpose: u8,
DataQuality: i8,
CreationDate: LARGE_INTEGER,
ValidityPeriod: extern struct {
BeginDate: LARGE_INTEGER,
EndDate: LARGE_INTEGER,
},
BiometricDataFormat: WINBIO_REGISTERED_FORMAT,
ProductId: WINBIO_REGISTERED_FORMAT,
};
pub const WINBIO_BDB_ANSI_381_HEADER = extern struct {
RecordLength: u64,
FormatIdentifier: u32,
VersionNumber: u32,
ProductId: WINBIO_REGISTERED_FORMAT,
CaptureDeviceId: u16,
ImageAcquisitionLevel: u16,
HorizontalScanResolution: u16,
VerticalScanResolution: u16,
HorizontalImageResolution: u16,
VerticalImageResolution: u16,
ElementCount: u8,
ScaleUnits: u8,
PixelDepth: u8,
ImageCompressionAlg: u8,
Reserved: u16,
};
pub const WINBIO_BDB_ANSI_381_RECORD = extern struct {
BlockLength: u32,
HorizontalLineLength: u16,
VerticalLineLength: u16,
Position: u8,
CountOfViews: u8,
ViewNumber: u8,
ImageQuality: u8,
ImpressionType: u8,
Reserved: u8,
};
pub const WINBIO_SECURE_BUFFER_HEADER_V1 = extern struct {
Type: u32,
Size: u32,
Flags: u32,
ValidationTag: u64,
};
pub const WINBIO_EVENT = extern struct {
Type: u32,
Parameters: extern union {
Unclaimed: extern struct {
UnitId: u32,
RejectDetail: u32,
},
UnclaimedIdentify: extern struct {
UnitId: u32,
Identity: WINBIO_IDENTITY,
SubFactor: u8,
RejectDetail: u32,
},
Error: extern struct {
ErrorCode: HRESULT,
},
},
};
pub const WINBIO_PRESENCE_PROPERTIES = extern union {
FacialFeatures: extern struct {
BoundingBox: RECT,
Distance: i32,
OpaqueEngineData: extern struct {
AdapterId: Guid,
Data: [78]u32,
},
},
Iris: extern struct {
EyeBoundingBox_1: RECT,
EyeBoundingBox_2: RECT,
PupilCenter_1: POINT,
PupilCenter_2: POINT,
Distance: i32,
},
};
pub const WINBIO_PRESENCE = extern struct {
Factor: u32,
SubFactor: u8,
Status: HRESULT,
RejectDetail: u32,
Identity: WINBIO_IDENTITY,
TrackingId: u64,
Ticket: u64,
Properties: WINBIO_PRESENCE_PROPERTIES,
Authorization: extern struct {
Size: u32,
Data: [32]u8,
},
};
pub const WINBIO_BSP_SCHEMA = extern struct {
BiometricFactor: u32,
BspId: Guid,
Description: [256]u16,
Vendor: [256]u16,
Version: WINBIO_VERSION,
};
pub const WINBIO_UNIT_SCHEMA = extern struct {
UnitId: u32,
PoolType: u32,
BiometricFactor: u32,
SensorSubType: u32,
Capabilities: u32,
DeviceInstanceId: [256]u16,
Description: [256]u16,
Manufacturer: [256]u16,
Model: [256]u16,
SerialNumber: [256]u16,
FirmwareVersion: WINBIO_VERSION,
};
pub const WINBIO_STORAGE_SCHEMA = extern struct {
BiometricFactor: u32,
DatabaseId: Guid,
DataFormat: Guid,
Attributes: u32,
FilePath: [256]u16,
ConnectionString: [256]u16,
};
pub const WINBIO_EXTENDED_SENSOR_INFO = extern struct {
GenericSensorCapabilities: u32,
Factor: u32,
Specific: extern union {
Null: u32,
FacialFeatures: extern struct {
FrameSize: RECT,
FrameOffset: POINT,
MandatoryOrientation: u32,
HardwareInfo: extern struct {
ColorSensorId: [260]u16,
InfraredSensorId: [260]u16,
InfraredSensorRotationAngle: u32,
},
},
Fingerprint: extern struct {
Reserved: u32,
},
Iris: extern struct {
FrameSize: RECT,
FrameOffset: POINT,
MandatoryOrientation: u32,
},
Voice: extern struct {
Reserved: u32,
},
},
};
pub const WINBIO_EXTENDED_ENGINE_INFO = extern struct {
GenericEngineCapabilities: u32,
Factor: u32,
Specific: extern union {
Null: u32,
FacialFeatures: extern struct {
Capabilities: u32,
EnrollmentRequirements: extern struct {
Null: u32,
},
},
Fingerprint: extern struct {
Capabilities: u32,
EnrollmentRequirements: extern struct {
GeneralSamples: u32,
Center: u32,
TopEdge: u32,
BottomEdge: u32,
LeftEdge: u32,
RightEdge: u32,
},
},
Iris: extern struct {
Capabilities: u32,
EnrollmentRequirements: extern struct {
Null: u32,
},
},
Voice: extern struct {
Capabilities: u32,
EnrollmentRequirements: extern struct {
Null: u32,
},
},
},
};
pub const WINBIO_EXTENDED_STORAGE_INFO = extern struct {
GenericStorageCapabilities: u32,
Factor: u32,
Specific: extern union {
Null: u32,
FacialFeatures: extern struct {
Capabilities: u32,
},
Fingerprint: extern struct {
Capabilities: u32,
},
Iris: extern struct {
Capabilities: u32,
},
Voice: extern struct {
Capabilities: u32,
},
},
};
pub const WINBIO_EXTENDED_ENROLLMENT_STATUS = extern struct {
TemplateStatus: HRESULT,
RejectDetail: u32,
PercentComplete: u32,
Factor: u32,
SubFactor: u8,
Specific: extern union {
Null: u32,
FacialFeatures: extern struct {
BoundingBox: RECT,
Distance: i32,
OpaqueEngineData: extern struct {
AdapterId: Guid,
Data: [78]u32,
},
},
Fingerprint: extern struct {
GeneralSamples: u32,
Center: u32,
TopEdge: u32,
BottomEdge: u32,
LeftEdge: u32,
RightEdge: u32,
},
Iris: extern struct {
EyeBoundingBox_1: RECT,
EyeBoundingBox_2: RECT,
PupilCenter_1: POINT,
PupilCenter_2: POINT,
Distance: i32,
GridPointCompletionPercent: u32,
GridPointIndex: u16,
Point3D: extern struct {
X: f64,
Y: f64,
Z: f64,
},
StopCaptureAndShowCriticalFeedback: BOOL,
},
Voice: extern struct {
Reserved: u32,
},
},
};
pub const WINBIO_EXTENDED_UNIT_STATUS = extern struct {
Availability: u32,
ReasonCode: u32,
};
pub const WINBIO_FP_BU_STATE = extern struct {
SensorAttached: BOOL,
CreationResult: HRESULT,
};
pub const WINBIO_ANTI_SPOOF_POLICY_ACTION = enum(i32) {
DISABLE = 0,
ENABLE = 1,
REMOVE = 2,
};
pub const WINBIO_ANTI_SPOOF_DISABLE = WINBIO_ANTI_SPOOF_POLICY_ACTION.DISABLE;
pub const WINBIO_ANTI_SPOOF_ENABLE = WINBIO_ANTI_SPOOF_POLICY_ACTION.ENABLE;
pub const WINBIO_ANTI_SPOOF_REMOVE = WINBIO_ANTI_SPOOF_POLICY_ACTION.REMOVE;
pub const WINBIO_POLICY_SOURCE = enum(i32) {
UNKNOWN = 0,
DEFAULT = 1,
LOCAL = 2,
ADMIN = 3,
};
pub const WINBIO_POLICY_UNKNOWN = WINBIO_POLICY_SOURCE.UNKNOWN;
pub const WINBIO_POLICY_DEFAULT = WINBIO_POLICY_SOURCE.DEFAULT;
pub const WINBIO_POLICY_LOCAL = WINBIO_POLICY_SOURCE.LOCAL;
pub const WINBIO_POLICY_ADMIN = WINBIO_POLICY_SOURCE.ADMIN;
pub const WINBIO_ANTI_SPOOF_POLICY = extern struct {
Action: WINBIO_ANTI_SPOOF_POLICY_ACTION,
Source: WINBIO_POLICY_SOURCE,
};
pub const WINBIO_CREDENTIAL_TYPE = enum(i32) {
PASSWORD = 1,
ALL = -1,
};
pub const WINBIO_CREDENTIAL_PASSWORD = WINBIO_CREDENTIAL_TYPE.PASSWORD;
pub const WINBIO_CREDENTIAL_ALL = WINBIO_CREDENTIAL_TYPE.ALL;
pub const WINBIO_CREDENTIAL_FORMAT = enum(i32) {
GENERIC = 1,
PACKED = 2,
PROTECTED = 3,
};
pub const WINBIO_PASSWORD_GENERIC = WINBIO_CREDENTIAL_FORMAT.GENERIC;
pub const WINBIO_PASSWORD_PACKED = WINBIO_CREDENTIAL_FORMAT.PACKED;
pub const WINBIO_PASSWORD_PROTECTED = WINBIO_CREDENTIAL_FORMAT.PROTECTED;
pub const WINBIO_CREDENTIAL_STATE = enum(i32) {
NOT_SET = 1,
SET = 2,
};
pub const WINBIO_CREDENTIAL_NOT_SET = WINBIO_CREDENTIAL_STATE.NOT_SET;
pub const WINBIO_CREDENTIAL_SET = WINBIO_CREDENTIAL_STATE.SET;
pub const WINBIO_EXTENDED_ENROLLMENT_PARAMETERS = extern struct {
Size: usize,
SubFactor: u8,
};
pub const WINBIO_ACCOUNT_POLICY = extern struct {
Identity: WINBIO_IDENTITY,
AntiSpoofBehavior: WINBIO_ANTI_SPOOF_POLICY_ACTION,
};
pub const WINBIO_PROTECTION_POLICY = extern struct {
Version: u32,
Identity: WINBIO_IDENTITY,
DatabaseId: Guid,
UserState: u64,
PolicySize: usize,
Policy: [128]u8,
};
pub const WINBIO_GESTURE_METADATA = extern struct {
Size: usize,
BiometricType: u32,
MatchType: u32,
ProtectionType: u32,
};
pub const WINBIO_ASYNC_NOTIFICATION_METHOD = enum(i32) {
NONE = 0,
CALLBACK = 1,
MESSAGE = 2,
MAXIMUM_VALUE = 3,
};
pub const WINBIO_ASYNC_NOTIFY_NONE = WINBIO_ASYNC_NOTIFICATION_METHOD.NONE;
pub const WINBIO_ASYNC_NOTIFY_CALLBACK = WINBIO_ASYNC_NOTIFICATION_METHOD.CALLBACK;
pub const WINBIO_ASYNC_NOTIFY_MESSAGE = WINBIO_ASYNC_NOTIFICATION_METHOD.MESSAGE;
pub const WINBIO_ASYNC_NOTIFY_MAXIMUM_VALUE = WINBIO_ASYNC_NOTIFICATION_METHOD.MAXIMUM_VALUE;
pub const WINBIO_ASYNC_RESULT = extern struct {
SessionHandle: u32,
Operation: u32,
SequenceNumber: u64,
TimeStamp: i64,
ApiStatus: HRESULT,
UnitId: u32,
UserData: ?*anyopaque,
Parameters: extern union {
Verify: extern struct {
Match: BOOLEAN,
RejectDetail: u32,
},
Identify: extern struct {
Identity: WINBIO_IDENTITY,
SubFactor: u8,
RejectDetail: u32,
},
EnrollBegin: extern struct {
SubFactor: u8,
},
EnrollCapture: extern struct {
RejectDetail: u32,
},
EnrollCommit: extern struct {
Identity: WINBIO_IDENTITY,
IsNewTemplate: BOOLEAN,
},
EnumEnrollments: extern struct {
Identity: WINBIO_IDENTITY,
SubFactorCount: usize,
SubFactorArray: ?*u8,
},
CaptureSample: extern struct {
Sample: ?*WINBIO_BIR,
SampleSize: usize,
RejectDetail: u32,
},
DeleteTemplate: extern struct {
Identity: WINBIO_IDENTITY,
SubFactor: u8,
},
GetProperty: extern struct {
PropertyType: u32,
PropertyId: u32,
Identity: WINBIO_IDENTITY,
SubFactor: u8,
PropertyBufferSize: usize,
PropertyBuffer: ?*anyopaque,
},
SetProperty: extern struct {
PropertyType: u32,
PropertyId: u32,
Identity: WINBIO_IDENTITY,
SubFactor: u8,
PropertyBufferSize: usize,
PropertyBuffer: ?*anyopaque,
},
GetEvent: extern struct {
Event: WINBIO_EVENT,
},
ControlUnit: extern struct {
Component: WINBIO_COMPONENT,
ControlCode: u32,
OperationStatus: u32,
SendBuffer: ?*u8,
SendBufferSize: usize,
ReceiveBuffer: ?*u8,
ReceiveBufferSize: usize,
ReceiveDataSize: usize,
},
EnumServiceProviders: extern struct {
BspCount: usize,
BspSchemaArray: ?*WINBIO_BSP_SCHEMA,
},
EnumBiometricUnits: extern struct {
UnitCount: usize,
UnitSchemaArray: ?*WINBIO_UNIT_SCHEMA,
},
EnumDatabases: extern struct {
StorageCount: usize,
StorageSchemaArray: ?*WINBIO_STORAGE_SCHEMA,
},
VerifyAndReleaseTicket: extern struct {
Match: BOOLEAN,
RejectDetail: u32,
Ticket: u64,
},
IdentifyAndReleaseTicket: extern struct {
Identity: WINBIO_IDENTITY,
SubFactor: u8,
RejectDetail: u32,
Ticket: u64,
},
EnrollSelect: extern struct {
SelectorValue: u64,
},
MonitorPresence: extern struct {
ChangeType: u32,
PresenceCount: usize,
PresenceArray: ?*WINBIO_PRESENCE,
},
GetProtectionPolicy: extern struct {
Identity: WINBIO_IDENTITY,
Policy: WINBIO_PROTECTION_POLICY,
},
NotifyUnitStatusChange: extern struct {
ExtendedStatus: WINBIO_EXTENDED_UNIT_STATUS,
},
},
};
pub const PWINBIO_ASYNC_COMPLETION_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
AsyncResult: ?*WINBIO_ASYNC_RESULT,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
AsyncResult: ?*WINBIO_ASYNC_RESULT,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const PWINBIO_VERIFY_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
VerifyCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
UnitId: u32,
Match: BOOLEAN,
RejectDetail: u32,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
VerifyCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
UnitId: u32,
Match: BOOLEAN,
RejectDetail: u32,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const PWINBIO_IDENTIFY_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
IdentifyCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
UnitId: u32,
Identity: ?*WINBIO_IDENTITY,
SubFactor: u8,
RejectDetail: u32,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
IdentifyCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
UnitId: u32,
Identity: ?*WINBIO_IDENTITY,
SubFactor: u8,
RejectDetail: u32,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const PWINBIO_LOCATE_SENSOR_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
LocateCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
UnitId: u32,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
LocateCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
UnitId: u32,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const PWINBIO_ENROLL_CAPTURE_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
EnrollCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
RejectDetail: u32,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
EnrollCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
RejectDetail: u32,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const PWINBIO_EVENT_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
EventCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
Event: ?*WINBIO_EVENT,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
EventCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
Event: ?*WINBIO_EVENT,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const PWINBIO_CAPTURE_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
CaptureCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
UnitId: u32,
// TODO: what to do with BytesParamIndex 4?
Sample: ?*WINBIO_BIR,
SampleSize: usize,
RejectDetail: u32,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
CaptureCallbackContext: ?*anyopaque,
OperationStatus: HRESULT,
UnitId: u32,
// TODO: what to do with BytesParamIndex 4?
Sample: ?*WINBIO_BIR,
SampleSize: usize,
RejectDetail: u32,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const _WINIBIO_SENSOR_CONTEXT = extern struct {
placeholder: usize, // TODO: why is this type empty?
};
pub const _WINIBIO_ENGINE_CONTEXT = extern struct {
placeholder: usize, // TODO: why is this type empty?
};
pub const _WINIBIO_STORAGE_CONTEXT = extern struct {
placeholder: usize, // TODO: why is this type empty?
};
pub const WINBIO_STORAGE_RECORD = extern struct {
Identity: ?*WINBIO_IDENTITY,
SubFactor: u8,
IndexVector: ?*u32,
IndexElementCount: usize,
TemplateBlob: ?*u8,
TemplateBlobSize: usize,
PayloadBlob: ?*u8,
PayloadBlobSize: usize,
};
pub const WINBIO_PIPELINE = extern struct {
SensorHandle: ?HANDLE,
EngineHandle: ?HANDLE,
StorageHandle: ?HANDLE,
SensorInterface: ?*WINBIO_SENSOR_INTERFACE,
EngineInterface: ?*WINBIO_ENGINE_INTERFACE,
StorageInterface: ?*WINBIO_STORAGE_INTERFACE,
SensorContext: ?*_WINIBIO_SENSOR_CONTEXT,
EngineContext: ?*_WINIBIO_ENGINE_CONTEXT,
StorageContext: ?*_WINIBIO_STORAGE_CONTEXT,
FrameworkInterface: ?*WINBIO_FRAMEWORK_INTERFACE,
};
pub const WINBIO_ADAPTER_INTERFACE_VERSION = extern struct {
MajorVersion: u16,
MinorVersion: u16,
};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_ATTACH_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_DETACH_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_CLEAR_CONTEXT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_QUERY_STATUS_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_RESET_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_SET_MODE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_SET_INDICATOR_STATUS_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_GET_INDICATOR_STATUS_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_START_CAPTURE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_FINISH_CAPTURE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_EXPORT_SENSOR_DATA_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_CANCEL_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_PUSH_DATA_TO_ENGINE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_CONTROL_UNIT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_CONTROL_UNIT_PRIVILEGED_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_NOTIFY_POWER_CHANGE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_PIPELINE_INIT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_PIPELINE_CLEANUP_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_ACTIVATE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_DEACTIVATE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_QUERY_EXTENDED_INFO_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_QUERY_CALIBRATION_FORMATS_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_SET_CALIBRATION_FORMAT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_ACCEPT_CALIBRATION_DATA_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_ASYNC_IMPORT_RAW_BUFFER_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_ASYNC_IMPORT_SECURE_BUFFER_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_QUERY_PRIVATE_SENSOR_TYPE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_CONNECT_SECURE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_START_CAPTURE_EX_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_START_NOTIFY_WAKE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_SENSOR_FINISH_NOTIFY_WAKE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
pub const WINBIO_SENSOR_INTERFACE = extern struct {
Version: WINBIO_ADAPTER_INTERFACE_VERSION,
Type: u32,
Size: usize,
AdapterId: Guid,
Attach: ?PIBIO_SENSOR_ATTACH_FN,
Detach: ?PIBIO_SENSOR_DETACH_FN,
ClearContext: ?PIBIO_SENSOR_CLEAR_CONTEXT_FN,
QueryStatus: ?PIBIO_SENSOR_QUERY_STATUS_FN,
Reset: ?PIBIO_SENSOR_RESET_FN,
SetMode: ?PIBIO_SENSOR_SET_MODE_FN,
SetIndicatorStatus: ?PIBIO_SENSOR_SET_INDICATOR_STATUS_FN,
GetIndicatorStatus: ?PIBIO_SENSOR_GET_INDICATOR_STATUS_FN,
StartCapture: ?PIBIO_SENSOR_START_CAPTURE_FN,
FinishCapture: ?PIBIO_SENSOR_FINISH_CAPTURE_FN,
ExportSensorData: ?PIBIO_SENSOR_EXPORT_SENSOR_DATA_FN,
Cancel: ?PIBIO_SENSOR_CANCEL_FN,
PushDataToEngine: ?PIBIO_SENSOR_PUSH_DATA_TO_ENGINE_FN,
ControlUnit: ?PIBIO_SENSOR_CONTROL_UNIT_FN,
ControlUnitPrivileged: ?PIBIO_SENSOR_CONTROL_UNIT_PRIVILEGED_FN,
NotifyPowerChange: ?PIBIO_SENSOR_NOTIFY_POWER_CHANGE_FN,
PipelineInit: ?PIBIO_SENSOR_PIPELINE_INIT_FN,
PipelineCleanup: ?PIBIO_SENSOR_PIPELINE_CLEANUP_FN,
Activate: ?PIBIO_SENSOR_ACTIVATE_FN,
Deactivate: ?PIBIO_SENSOR_DEACTIVATE_FN,
QueryExtendedInfo: ?PIBIO_SENSOR_QUERY_EXTENDED_INFO_FN,
QueryCalibrationFormats: ?PIBIO_SENSOR_QUERY_CALIBRATION_FORMATS_FN,
SetCalibrationFormat: ?PIBIO_SENSOR_SET_CALIBRATION_FORMAT_FN,
AcceptCalibrationData: ?PIBIO_SENSOR_ACCEPT_CALIBRATION_DATA_FN,
AsyncImportRawBuffer: ?PIBIO_SENSOR_ASYNC_IMPORT_RAW_BUFFER_FN,
AsyncImportSecureBuffer: ?PIBIO_SENSOR_ASYNC_IMPORT_SECURE_BUFFER_FN,
QueryPrivateSensorType: ?PIBIO_SENSOR_QUERY_PRIVATE_SENSOR_TYPE_FN,
ConnectSecure: ?PIBIO_SENSOR_CONNECT_SECURE_FN,
StartCaptureEx: ?PIBIO_SENSOR_START_CAPTURE_EX_FN,
StartNotifyWake: ?PIBIO_SENSOR_START_NOTIFY_WAKE_FN,
FinishNotifyWake: ?PIBIO_SENSOR_FINISH_NOTIFY_WAKE_FN,
};
pub const PWINBIO_QUERY_SENSOR_INTERFACE_FN = switch (@import("builtin").zig_backend) {
.stage1 => fn(
SensorInterface: ?*?*WINBIO_SENSOR_INTERFACE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
SensorInterface: ?*?*WINBIO_SENSOR_INTERFACE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
} ;
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_ATTACH_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_DETACH_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_CLEAR_CONTEXT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_QUERY_PREFERRED_FORMAT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_QUERY_INDEX_VECTOR_SIZE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_QUERY_HASH_ALGORITHMS_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_SET_HASH_ALGORITHM_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_QUERY_SAMPLE_HINT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_ACCEPT_SAMPLE_DATA_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_EXPORT_ENGINE_DATA_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_VERIFY_FEATURE_SET_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_IDENTIFY_FEATURE_SET_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_CREATE_ENROLLMENT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_UPDATE_ENROLLMENT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_GET_ENROLLMENT_STATUS_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_GET_ENROLLMENT_HASH_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_CHECK_FOR_DUPLICATE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_COMMIT_ENROLLMENT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_DISCARD_ENROLLMENT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_CONTROL_UNIT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_CONTROL_UNIT_PRIVILEGED_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_NOTIFY_POWER_CHANGE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_RESERVED_1_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_PIPELINE_INIT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_PIPELINE_CLEANUP_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_ACTIVATE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_DEACTIVATE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_QUERY_EXTENDED_INFO_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_IDENTIFY_ALL_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_SET_ENROLLMENT_SELECTOR_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_SET_ENROLLMENT_PARAMETERS_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_QUERY_EXTENDED_ENROLLMENT_STATUS_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_REFRESH_CACHE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_SELECT_CALIBRATION_FORMAT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_QUERY_CALIBRATION_DATA_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_SET_ACCOUNT_POLICY_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_CREATE_KEY_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_ACCEPT_PRIVATE_SENSOR_TYPE_INFO_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_CREATE_ENROLLMENT_AUTHENTICATED_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_ENGINE_IDENTIFY_FEATURE_SET_AUTHENTICATED_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
pub const WINBIO_ENGINE_INTERFACE = extern struct {
Version: WINBIO_ADAPTER_INTERFACE_VERSION,
Type: u32,
Size: usize,
AdapterId: Guid,
Attach: ?PIBIO_ENGINE_ATTACH_FN,
Detach: ?PIBIO_ENGINE_DETACH_FN,
ClearContext: ?PIBIO_ENGINE_CLEAR_CONTEXT_FN,
QueryPreferredFormat: ?PIBIO_ENGINE_QUERY_PREFERRED_FORMAT_FN,
QueryIndexVectorSize: ?PIBIO_ENGINE_QUERY_INDEX_VECTOR_SIZE_FN,
QueryHashAlgorithms: ?PIBIO_ENGINE_QUERY_HASH_ALGORITHMS_FN,
SetHashAlgorithm: ?PIBIO_ENGINE_SET_HASH_ALGORITHM_FN,
QuerySampleHint: ?PIBIO_ENGINE_QUERY_SAMPLE_HINT_FN,
AcceptSampleData: ?PIBIO_ENGINE_ACCEPT_SAMPLE_DATA_FN,
ExportEngineData: ?PIBIO_ENGINE_EXPORT_ENGINE_DATA_FN,
VerifyFeatureSet: ?PIBIO_ENGINE_VERIFY_FEATURE_SET_FN,
IdentifyFeatureSet: ?PIBIO_ENGINE_IDENTIFY_FEATURE_SET_FN,
CreateEnrollment: ?PIBIO_ENGINE_CREATE_ENROLLMENT_FN,
UpdateEnrollment: ?PIBIO_ENGINE_UPDATE_ENROLLMENT_FN,
GetEnrollmentStatus: ?PIBIO_ENGINE_GET_ENROLLMENT_STATUS_FN,
GetEnrollmentHash: ?PIBIO_ENGINE_GET_ENROLLMENT_HASH_FN,
CheckForDuplicate: ?PIBIO_ENGINE_CHECK_FOR_DUPLICATE_FN,
CommitEnrollment: ?PIBIO_ENGINE_COMMIT_ENROLLMENT_FN,
DiscardEnrollment: ?PIBIO_ENGINE_DISCARD_ENROLLMENT_FN,
ControlUnit: ?PIBIO_ENGINE_CONTROL_UNIT_FN,
ControlUnitPrivileged: ?PIBIO_ENGINE_CONTROL_UNIT_PRIVILEGED_FN,
NotifyPowerChange: ?PIBIO_ENGINE_NOTIFY_POWER_CHANGE_FN,
Reserved_1: ?PIBIO_ENGINE_RESERVED_1_FN,
PipelineInit: ?PIBIO_ENGINE_PIPELINE_INIT_FN,
PipelineCleanup: ?PIBIO_ENGINE_PIPELINE_CLEANUP_FN,
Activate: ?PIBIO_ENGINE_ACTIVATE_FN,
Deactivate: ?PIBIO_ENGINE_DEACTIVATE_FN,
QueryExtendedInfo: ?PIBIO_ENGINE_QUERY_EXTENDED_INFO_FN,
IdentifyAll: ?PIBIO_ENGINE_IDENTIFY_ALL_FN,
SetEnrollmentSelector: ?PIBIO_ENGINE_SET_ENROLLMENT_SELECTOR_FN,
SetEnrollmentParameters: ?PIBIO_ENGINE_SET_ENROLLMENT_PARAMETERS_FN,
QueryExtendedEnrollmentStatus: ?PIBIO_ENGINE_QUERY_EXTENDED_ENROLLMENT_STATUS_FN,
RefreshCache: ?PIBIO_ENGINE_REFRESH_CACHE_FN,
SelectCalibrationFormat: ?PIBIO_ENGINE_SELECT_CALIBRATION_FORMAT_FN,
QueryCalibrationData: ?PIBIO_ENGINE_QUERY_CALIBRATION_DATA_FN,
SetAccountPolicy: ?PIBIO_ENGINE_SET_ACCOUNT_POLICY_FN,
CreateKey: ?PIBIO_ENGINE_CREATE_KEY_FN,
IdentifyFeatureSetSecure: ?PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN,
AcceptPrivateSensorTypeInfo: ?PIBIO_ENGINE_ACCEPT_PRIVATE_SENSOR_TYPE_INFO_FN,
CreateEnrollmentAuthenticated: ?PIBIO_ENGINE_CREATE_ENROLLMENT_AUTHENTICATED_FN,
IdentifyFeatureSetAuthenticated: ?PIBIO_ENGINE_IDENTIFY_FEATURE_SET_AUTHENTICATED_FN,
};
pub const PWINBIO_QUERY_ENGINE_INTERFACE_FN = switch (@import("builtin").zig_backend) {
.stage1 => fn(
EngineInterface: ?*?*WINBIO_ENGINE_INTERFACE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
EngineInterface: ?*?*WINBIO_ENGINE_INTERFACE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
} ;
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_ATTACH_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_DETACH_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_CLEAR_CONTEXT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_CREATE_DATABASE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_ERASE_DATABASE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_OPEN_DATABASE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_CLOSE_DATABASE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_GET_DATA_FORMAT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_GET_DATABASE_SIZE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_ADD_RECORD_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_DELETE_RECORD_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_QUERY_BY_SUBJECT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_QUERY_BY_CONTENT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_GET_RECORD_COUNT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_FIRST_RECORD_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_NEXT_RECORD_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_GET_CURRENT_RECORD_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_CONTROL_UNIT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_CONTROL_UNIT_PRIVILEGED_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_NOTIFY_POWER_CHANGE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_PIPELINE_INIT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_PIPELINE_CLEANUP_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_ACTIVATE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_DEACTIVATE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_QUERY_EXTENDED_INFO_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_NOTIFY_DATABASE_CHANGE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_RESERVED_1_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_RESERVED_2_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_UPDATE_RECORD_BEGIN_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_STORAGE_UPDATE_RECORD_COMMIT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
pub const WINBIO_STORAGE_INTERFACE = extern struct {
Version: WINBIO_ADAPTER_INTERFACE_VERSION,
Type: u32,
Size: usize,
AdapterId: Guid,
Attach: ?PIBIO_STORAGE_ATTACH_FN,
Detach: ?PIBIO_STORAGE_DETACH_FN,
ClearContext: ?PIBIO_STORAGE_CLEAR_CONTEXT_FN,
CreateDatabase: ?PIBIO_STORAGE_CREATE_DATABASE_FN,
EraseDatabase: ?PIBIO_STORAGE_ERASE_DATABASE_FN,
OpenDatabase: ?PIBIO_STORAGE_OPEN_DATABASE_FN,
CloseDatabase: ?PIBIO_STORAGE_CLOSE_DATABASE_FN,
GetDataFormat: ?PIBIO_STORAGE_GET_DATA_FORMAT_FN,
GetDatabaseSize: ?PIBIO_STORAGE_GET_DATABASE_SIZE_FN,
AddRecord: ?PIBIO_STORAGE_ADD_RECORD_FN,
DeleteRecord: ?PIBIO_STORAGE_DELETE_RECORD_FN,
QueryBySubject: ?PIBIO_STORAGE_QUERY_BY_SUBJECT_FN,
QueryByContent: ?PIBIO_STORAGE_QUERY_BY_CONTENT_FN,
GetRecordCount: ?PIBIO_STORAGE_GET_RECORD_COUNT_FN,
FirstRecord: ?PIBIO_STORAGE_FIRST_RECORD_FN,
NextRecord: ?PIBIO_STORAGE_NEXT_RECORD_FN,
GetCurrentRecord: ?PIBIO_STORAGE_GET_CURRENT_RECORD_FN,
ControlUnit: ?PIBIO_STORAGE_CONTROL_UNIT_FN,
ControlUnitPrivileged: ?PIBIO_STORAGE_CONTROL_UNIT_PRIVILEGED_FN,
NotifyPowerChange: ?PIBIO_STORAGE_NOTIFY_POWER_CHANGE_FN,
PipelineInit: ?PIBIO_STORAGE_PIPELINE_INIT_FN,
PipelineCleanup: ?PIBIO_STORAGE_PIPELINE_CLEANUP_FN,
Activate: ?PIBIO_STORAGE_ACTIVATE_FN,
Deactivate: ?PIBIO_STORAGE_DEACTIVATE_FN,
QueryExtendedInfo: ?PIBIO_STORAGE_QUERY_EXTENDED_INFO_FN,
NotifyDatabaseChange: ?PIBIO_STORAGE_NOTIFY_DATABASE_CHANGE_FN,
Reserved1: ?PIBIO_STORAGE_RESERVED_1_FN,
Reserved2: ?PIBIO_STORAGE_RESERVED_2_FN,
UpdateRecordBegin: ?PIBIO_STORAGE_UPDATE_RECORD_BEGIN_FN,
UpdateRecordCommit: ?PIBIO_STORAGE_UPDATE_RECORD_COMMIT_FN,
};
pub const PWINBIO_QUERY_STORAGE_INTERFACE_FN = switch (@import("builtin").zig_backend) {
.stage1 => fn(
StorageInterface: ?*?*WINBIO_STORAGE_INTERFACE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
StorageInterface: ?*?*WINBIO_STORAGE_INTERFACE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
} ;
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_SET_UNIT_STATUS_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_CACHE_CLEAR_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_BEGIN_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_NEXT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_END_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_BEGIN_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_NEXT_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_END_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_1_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_2_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_3_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_ALLOCATE_MEMORY_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_FREE_MEMORY_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_GET_PROPERTY_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_LOCK_AND_VALIDATE_SECURE_BUFFER_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_RELEASE_SECURE_BUFFER_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_QUERY_AUTHORIZED_ENROLLMENTS_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
// TODO: this function pointer causes dependency loop problems, so it's stubbed out
pub const PIBIO_FRAMEWORK_VSM_DECRYPT_SAMPLE_FN = switch (@import("builtin").zig_backend) { .stage1 => fn() callconv(@import("std").os.windows.WINAPI) void, else => *const fn() callconv(@import("std").os.windows.WINAPI) void};
pub const WINBIO_FRAMEWORK_INTERFACE = extern struct {
Version: WINBIO_ADAPTER_INTERFACE_VERSION,
Type: u32,
Size: usize,
AdapterId: Guid,
SetUnitStatus: ?PIBIO_FRAMEWORK_SET_UNIT_STATUS_FN,
VsmStorageAttach: ?PIBIO_STORAGE_ATTACH_FN,
VsmStorageDetach: ?PIBIO_STORAGE_DETACH_FN,
VsmStorageClearContext: ?PIBIO_STORAGE_CLEAR_CONTEXT_FN,
VsmStorageCreateDatabase: ?PIBIO_STORAGE_CREATE_DATABASE_FN,
VsmStorageOpenDatabase: ?PIBIO_STORAGE_OPEN_DATABASE_FN,
VsmStorageCloseDatabase: ?PIBIO_STORAGE_CLOSE_DATABASE_FN,
VsmStorageDeleteRecord: ?PIBIO_STORAGE_DELETE_RECORD_FN,
VsmStorageNotifyPowerChange: ?PIBIO_STORAGE_NOTIFY_POWER_CHANGE_FN,
VsmStoragePipelineInit: ?PIBIO_STORAGE_PIPELINE_INIT_FN,
VsmStoragePipelineCleanup: ?PIBIO_STORAGE_PIPELINE_CLEANUP_FN,
VsmStorageActivate: ?PIBIO_STORAGE_ACTIVATE_FN,
VsmStorageDeactivate: ?PIBIO_STORAGE_DEACTIVATE_FN,
VsmStorageQueryExtendedInfo: ?PIBIO_STORAGE_QUERY_EXTENDED_INFO_FN,
VsmStorageCacheClear: ?PIBIO_FRAMEWORK_VSM_CACHE_CLEAR_FN,
VsmStorageCacheImportBegin: ?PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_BEGIN_FN,
VsmStorageCacheImportNext: ?PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_NEXT_FN,
VsmStorageCacheImportEnd: ?PIBIO_FRAMEWORK_VSM_CACHE_IMPORT_END_FN,
VsmStorageCacheExportBegin: ?PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_BEGIN_FN,
VsmStorageCacheExportNext: ?PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_NEXT_FN,
VsmStorageCacheExportEnd: ?PIBIO_FRAMEWORK_VSM_CACHE_EXPORT_END_FN,
VsmSensorAttach: ?PIBIO_SENSOR_ATTACH_FN,
VsmSensorDetach: ?PIBIO_SENSOR_DETACH_FN,
VsmSensorClearContext: ?PIBIO_SENSOR_CLEAR_CONTEXT_FN,
VsmSensorPushDataToEngine: ?PIBIO_SENSOR_PUSH_DATA_TO_ENGINE_FN,
VsmSensorNotifyPowerChange: ?PIBIO_SENSOR_NOTIFY_POWER_CHANGE_FN,
VsmSensorPipelineInit: ?PIBIO_SENSOR_PIPELINE_INIT_FN,
VsmSensorPipelineCleanup: ?PIBIO_SENSOR_PIPELINE_CLEANUP_FN,
VsmSensorActivate: ?PIBIO_SENSOR_ACTIVATE_FN,
VsmSensorDeactivate: ?PIBIO_SENSOR_DEACTIVATE_FN,
VsmSensorAsyncImportRawBuffer: ?PIBIO_SENSOR_ASYNC_IMPORT_RAW_BUFFER_FN,
VsmSensorAsyncImportSecureBuffer: ?PIBIO_SENSOR_ASYNC_IMPORT_SECURE_BUFFER_FN,
Reserved1: ?PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_1_FN,
Reserved2: ?PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_2_FN,
Reserved3: ?PIBIO_FRAMEWORK_VSM_STORAGE_RESERVED_3_FN,
Reserved4: ?PIBIO_STORAGE_RESERVED_1_FN,
Reserved5: ?PIBIO_STORAGE_RESERVED_2_FN,
AllocateMemory: ?PIBIO_FRAMEWORK_ALLOCATE_MEMORY_FN,
FreeMemory: ?PIBIO_FRAMEWORK_FREE_MEMORY_FN,
GetProperty: ?PIBIO_FRAMEWORK_GET_PROPERTY_FN,
LockAndValidateSecureBuffer: ?PIBIO_FRAMEWORK_LOCK_AND_VALIDATE_SECURE_BUFFER_FN,
ReleaseSecureBuffer: ?PIBIO_FRAMEWORK_RELEASE_SECURE_BUFFER_FN,
QueryAuthorizedEnrollments: ?PIBIO_FRAMEWORK_VSM_QUERY_AUTHORIZED_ENROLLMENTS_FN,
DecryptSample: ?PIBIO_FRAMEWORK_VSM_DECRYPT_SAMPLE_FN,
};
pub const WINBIO_SENSOR_ATTRIBUTES = extern struct {
PayloadSize: u32,
WinBioHresult: HRESULT,
WinBioVersion: WINBIO_VERSION,
SensorType: u32,
SensorSubType: u32,
Capabilities: u32,
ManufacturerName: [256]u16,
ModelName: [256]u16,
SerialNumber: [256]u16,
FirmwareVersion: WINBIO_VERSION,
SupportedFormatEntries: u32,
SupportedFormat: [1]WINBIO_REGISTERED_FORMAT,
};
pub const WINBIO_DATA = extern struct {
Size: u32,
Data: [1]u8,
};
pub const WINBIO_UPDATE_FIRMWARE = extern struct {
PayloadSize: u32,
FirmwareData: WINBIO_DATA,
};
pub const WINBIO_CALIBRATION_INFO = extern struct {
PayloadSize: u32,
WinBioHresult: HRESULT,
CalibrationData: WINBIO_DATA,
};
pub const WINBIO_DIAGNOSTICS = extern struct {
PayloadSize: u32,
WinBioHresult: HRESULT,
SensorStatus: u32,
VendorDiagnostics: WINBIO_DATA,
};
pub const WINBIO_BLANK_PAYLOAD = extern struct {
PayloadSize: u32,
WinBioHresult: HRESULT,
};
pub const WINBIO_CAPTURE_PARAMETERS = extern struct {
PayloadSize: u32,
Purpose: u8,
Format: WINBIO_REGISTERED_FORMAT,
VendorFormat: Guid,
Flags: u8,
};
pub const WINBIO_CAPTURE_DATA = extern struct {
PayloadSize: u32,
WinBioHresult: HRESULT,
SensorStatus: u32,
RejectDetail: u32,
CaptureData: WINBIO_DATA,
};
pub const WINBIO_SUPPORTED_ALGORITHMS = extern struct {
PayloadSize: u32,
WinBioHresult: HRESULT,
NumberOfAlgorithms: u32,
AlgorithmData: WINBIO_DATA,
};
pub const WINBIO_GET_INDICATOR = extern struct {
PayloadSize: u32,
WinBioHresult: HRESULT,
IndicatorStatus: u32,
};
pub const WINBIO_SET_INDICATOR = extern struct {
PayloadSize: u32,
IndicatorStatus: u32,
};
pub const WINBIO_PRIVATE_SENSOR_TYPE_INFO = extern struct {
PayloadSize: u32,
WinBioHresult: HRESULT,
PrivateSensorTypeInfo: WINBIO_DATA,
};
pub const WINBIO_ENCRYPTED_CAPTURE_PARAMS = extern struct {
PayloadSize: u32,
Purpose: u8,
Format: WINBIO_REGISTERED_FORMAT,
VendorFormat: Guid,
Flags: u8,
NonceSize: u32,
};
pub const WINBIO_NOTIFY_WAKE = extern struct {
PayloadSize: u32,
WinBioHresult: HRESULT,
Reason: u32,
};
//--------------------------------------------------------------------------------
// Section: Functions (54)
//--------------------------------------------------------------------------------
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioEnumServiceProviders(
Factor: u32,
BspSchemaArray: ?*?*WINBIO_BSP_SCHEMA,
BspCount: ?*usize,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioEnumBiometricUnits(
Factor: u32,
UnitSchemaArray: ?*?*WINBIO_UNIT_SCHEMA,
UnitCount: ?*usize,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioEnumDatabases(
Factor: u32,
StorageSchemaArray: ?*?*WINBIO_STORAGE_SCHEMA,
StorageCount: ?*usize,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows8.0'
pub extern "winbio" fn WinBioAsyncOpenFramework(
NotificationMethod: WINBIO_ASYNC_NOTIFICATION_METHOD,
TargetWindow: ?HWND,
MessageCode: u32,
CallbackRoutine: ?PWINBIO_ASYNC_COMPLETION_CALLBACK,
UserData: ?*anyopaque,
AsynchronousOpen: BOOL,
FrameworkHandle: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows8.0'
pub extern "winbio" fn WinBioCloseFramework(
FrameworkHandle: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows8.0'
pub extern "winbio" fn WinBioAsyncEnumServiceProviders(
FrameworkHandle: u32,
Factor: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows8.0'
pub extern "winbio" fn WinBioAsyncEnumBiometricUnits(
FrameworkHandle: u32,
Factor: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows8.0'
pub extern "winbio" fn WinBioAsyncEnumDatabases(
FrameworkHandle: u32,
Factor: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows8.0'
pub extern "winbio" fn WinBioAsyncMonitorFrameworkChanges(
FrameworkHandle: u32,
ChangeTypes: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioOpenSession(
Factor: u32,
PoolType: WINBIO_POOL,
Flags: u32,
UnitArray: ?[*]u32,
UnitCount: usize,
DatabaseId: ?*Guid,
SessionHandle: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows8.0'
pub extern "winbio" fn WinBioAsyncOpenSession(
Factor: u32,
PoolType: WINBIO_POOL,
Flags: u32,
UnitArray: ?[*]u32,
UnitCount: usize,
DatabaseId: ?*Guid,
NotificationMethod: WINBIO_ASYNC_NOTIFICATION_METHOD,
TargetWindow: ?HWND,
MessageCode: u32,
CallbackRoutine: ?PWINBIO_ASYNC_COMPLETION_CALLBACK,
UserData: ?*anyopaque,
AsynchronousOpen: BOOL,
SessionHandle: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioCloseSession(
SessionHandle: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioVerify(
SessionHandle: u32,
Identity: ?*WINBIO_IDENTITY,
SubFactor: u8,
UnitId: ?*u32,
Match: ?*u8,
RejectDetail: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioVerifyWithCallback(
SessionHandle: u32,
Identity: ?*WINBIO_IDENTITY,
SubFactor: u8,
VerifyCallback: ?PWINBIO_VERIFY_CALLBACK,
VerifyCallbackContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioIdentify(
SessionHandle: u32,
UnitId: ?*u32,
Identity: ?*WINBIO_IDENTITY,
SubFactor: ?*u8,
RejectDetail: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioIdentifyWithCallback(
SessionHandle: u32,
IdentifyCallback: ?PWINBIO_IDENTIFY_CALLBACK,
IdentifyCallbackContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioWait(
SessionHandle: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioCancel(
SessionHandle: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioLocateSensor(
SessionHandle: u32,
UnitId: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioLocateSensorWithCallback(
SessionHandle: u32,
LocateCallback: ?PWINBIO_LOCATE_SENSOR_CALLBACK,
LocateCallbackContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioEnrollBegin(
SessionHandle: u32,
SubFactor: u8,
UnitId: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.10240'
pub extern "winbio" fn WinBioEnrollSelect(
SessionHandle: u32,
SelectorValue: u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioEnrollCapture(
SessionHandle: u32,
RejectDetail: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioEnrollCaptureWithCallback(
SessionHandle: u32,
EnrollCallback: ?PWINBIO_ENROLL_CAPTURE_CALLBACK,
EnrollCallbackContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioEnrollCommit(
SessionHandle: u32,
Identity: ?*WINBIO_IDENTITY,
IsNewTemplate: ?*u8,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioEnrollDiscard(
SessionHandle: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioEnumEnrollments(
SessionHandle: u32,
UnitId: u32,
Identity: ?*WINBIO_IDENTITY,
SubFactorArray: ?*?*u8,
SubFactorCount: ?*usize,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
pub extern "winbio" fn WinBioImproveBegin(
SessionHandle: u32,
UnitId: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
pub extern "winbio" fn WinBioImproveEnd(
SessionHandle: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioRegisterEventMonitor(
SessionHandle: u32,
EventMask: u32,
EventCallback: ?PWINBIO_EVENT_CALLBACK,
EventCallbackContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioUnregisterEventMonitor(
SessionHandle: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.10240'
pub extern "winbio" fn WinBioMonitorPresence(
SessionHandle: u32,
UnitId: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioCaptureSample(
SessionHandle: u32,
Purpose: u8,
Flags: u8,
UnitId: ?*u32,
Sample: ?*?*WINBIO_BIR,
SampleSize: ?*usize,
RejectDetail: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioCaptureSampleWithCallback(
SessionHandle: u32,
Purpose: u8,
Flags: u8,
CaptureCallback: ?PWINBIO_CAPTURE_CALLBACK,
CaptureCallbackContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioDeleteTemplate(
SessionHandle: u32,
UnitId: u32,
Identity: ?*WINBIO_IDENTITY,
SubFactor: u8,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioLockUnit(
SessionHandle: u32,
UnitId: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioUnlockUnit(
SessionHandle: u32,
UnitId: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioControlUnit(
SessionHandle: u32,
UnitId: u32,
Component: WINBIO_COMPONENT,
ControlCode: u32,
// TODO: what to do with BytesParamIndex 5?
SendBuffer: ?*u8,
SendBufferSize: usize,
// TODO: what to do with BytesParamIndex 7?
ReceiveBuffer: ?*u8,
ReceiveBufferSize: usize,
ReceiveDataSize: ?*usize,
OperationStatus: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioControlUnitPrivileged(
SessionHandle: u32,
UnitId: u32,
Component: WINBIO_COMPONENT,
ControlCode: u32,
// TODO: what to do with BytesParamIndex 5?
SendBuffer: ?*u8,
SendBufferSize: usize,
// TODO: what to do with BytesParamIndex 7?
ReceiveBuffer: ?*u8,
ReceiveBufferSize: usize,
ReceiveDataSize: ?*usize,
OperationStatus: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioGetProperty(
SessionHandle: u32,
PropertyType: u32,
PropertyId: u32,
UnitId: u32,
Identity: ?*WINBIO_IDENTITY,
SubFactor: u8,
PropertyBuffer: ?*?*anyopaque,
PropertyBufferSize: ?*usize,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.10240'
pub extern "winbio" fn WinBioSetProperty(
SessionHandle: u32,
PropertyType: u32,
PropertyId: u32,
UnitId: u32,
Identity: ?*WINBIO_IDENTITY,
SubFactor: u8,
// TODO: what to do with BytesParamIndex 7?
PropertyBuffer: ?*anyopaque,
PropertyBufferSize: usize,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioFree(
Address: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows8.1'
pub extern "winbio" fn WinBioSetCredential(
Type: WINBIO_CREDENTIAL_TYPE,
// TODO: what to do with BytesParamIndex 2?
Credential: ?*u8,
CredentialSize: usize,
Format: WINBIO_CREDENTIAL_FORMAT,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioRemoveCredential(
Identity: WINBIO_IDENTITY,
Type: WINBIO_CREDENTIAL_TYPE,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioRemoveAllCredentials(
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioRemoveAllDomainCredentials(
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioGetCredentialState(
Identity: WINBIO_IDENTITY,
Type: WINBIO_CREDENTIAL_TYPE,
CredentialState: ?*WINBIO_CREDENTIAL_STATE,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioLogonIdentifiedUser(
SessionHandle: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.10240'
pub extern "winbio" fn WinBioGetEnrolledFactors(
AccountOwner: ?*WINBIO_IDENTITY,
EnrolledFactors: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioGetEnabledSetting(
Value: ?*u8,
Source: ?*WINBIO_SETTING_SOURCE,
) callconv(@import("std").os.windows.WINAPI) void;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioGetLogonSetting(
Value: ?*u8,
Source: ?*WINBIO_SETTING_SOURCE,
) callconv(@import("std").os.windows.WINAPI) void;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioGetDomainLogonSetting(
Value: ?*u8,
Source: ?*WINBIO_SETTING_SOURCE,
) callconv(@import("std").os.windows.WINAPI) void;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioAcquireFocus(
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "winbio" fn WinBioReleaseFocus(
) callconv(@import("std").os.windows.WINAPI) HRESULT;
//--------------------------------------------------------------------------------
// Section: Unicode Aliases (0)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
.ansi => struct {
},
.wide => struct {
},
.unspecified => if (@import("builtin").is_test) struct {
} else struct {
},
};
//--------------------------------------------------------------------------------
// Section: Imports (9)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const BOOL = @import("../foundation.zig").BOOL;
const BOOLEAN = @import("../foundation.zig").BOOLEAN;
const HANDLE = @import("../foundation.zig").HANDLE;
const HRESULT = @import("../foundation.zig").HRESULT;
const HWND = @import("../foundation.zig").HWND;
const LARGE_INTEGER = @import("../foundation.zig").LARGE_INTEGER;
const POINT = @import("../foundation.zig").POINT;
const RECT = @import("../foundation.zig").RECT;
test {
// The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
if (@hasDecl(@This(), "PWINBIO_ASYNC_COMPLETION_CALLBACK")) { _ = PWINBIO_ASYNC_COMPLETION_CALLBACK; }
if (@hasDecl(@This(), "PWINBIO_VERIFY_CALLBACK")) { _ = PWINBIO_VERIFY_CALLBACK; }
if (@hasDecl(@This(), "PWINBIO_IDENTIFY_CALLBACK")) { _ = PWINBIO_IDENTIFY_CALLBACK; }
if (@hasDecl(@This(), "PWINBIO_LOCATE_SENSOR_CALLBACK")) { _ = PWINBIO_LOCATE_SENSOR_CALLBACK; }
if (@hasDecl(@This(), "PWINBIO_ENROLL_CAPTURE_CALLBACK")) { _ = PWINBIO_ENROLL_CAPTURE_CALLBACK; }
if (@hasDecl(@This(), "PWINBIO_EVENT_CALLBACK")) { _ = PWINBIO_EVENT_CALLBACK; }
if (@hasDecl(@This(), "PWINBIO_CAPTURE_CALLBACK")) { _ = PWINBIO_CAPTURE_CALLBACK; }
if (@hasDecl(@This(), "PWINBIO_QUERY_SENSOR_INTERFACE_FN")) { _ = PWINBIO_QUERY_SENSOR_INTERFACE_FN; }
if (@hasDecl(@This(), "PWINBIO_QUERY_ENGINE_INTERFACE_FN")) { _ = PWINBIO_QUERY_ENGINE_INTERFACE_FN; }
if (@hasDecl(@This(), "PWINBIO_QUERY_STORAGE_INTERFACE_FN")) { _ = PWINBIO_QUERY_STORAGE_INTERFACE_FN; }
@setEvalBranchQuota(
comptime @import("std").meta.declarations(@This()).len * 3
);
// reference all the pub declarations
if (!@import("builtin").is_test) return;
inline for (comptime @import("std").meta.declarations(@This())) |decl| {
_ = @field(@This(), decl.name);
}
}