public static int LocateSensor(WinBioSessionHandle sessionHandle) { int unitId; var code = LocateSensor(sessionHandle, out unitId); WinBioException.ThrowOnError(code, "WinBioLocateSensor failed"); return(unitId); }
public static WinBioSessionHandle OpenSession(WinBioBiometricType factor, WinBioPoolType poolType, WinBioSessionFlag flags, int[] unitArray, Guid databaseId) { WinBioSessionHandle sessionHandle; var code = OpenSession(factor, poolType, flags, unitArray, unitArray.Length, databaseId, out sessionHandle); WinBioException.ThrowOnError(code, "WinBioOpenSession failed"); return(sessionHandle); }
public static WinBioStorageSchema[] EnumDatabases(WinBioBiometricType factor) { IntPtr pointer; int count; var code = EnumDatabases(factor, out pointer, out count); WinBioException.ThrowOnError(code, "WinBioEnumDatabases failed"); return(MarshalArray <WinBioStorageSchema>(pointer, count)); }
public static WinBioBspSchema[] EnumServiceProviders(WinBioBiometricType factor) { IntPtr bspSchemaArray; int bspCount; var code = EnumServiceProviders(factor, out bspSchemaArray, out bspCount); WinBioException.ThrowOnError(code, "WinBioEnumServiceProviders failed"); return(MarshalArray <WinBioBspSchema>(bspSchemaArray, bspCount)); }
public static void CloseSession(WinBioSessionHandle sessionHandle) { if (!sessionHandle.IsValid) { return; } var code = WinBioCloseSession(sessionHandle); WinBioException.ThrowOnError(code, "WinBioOpenSession failed"); sessionHandle.Invalidate(); }
public static int CaptureSample( WinBioSessionHandle sessionHandle, WinBioBirPurpose purpose, WinBioBirDataFlags flags, out int sampleSize, out WinBioRejectDetail rejectDetail) { int unitId; IntPtr pointer; var code = CaptureSample(sessionHandle, purpose, flags, out unitId, out pointer, out sampleSize, out rejectDetail); WinBioException.ThrowOnError(code, "WinBioCaptureSample failed"); //TODO: parse WINBIO_BIR structure at pointer Free(pointer); return(unitId); }
public static WinBioBiometricSubType[] EnumEnrollments(WinBioSessionHandle sessionHandle, int unitId, WinBioIdentity identity) { var handle = GCHandle.Alloc(identity.GetBytes(), GCHandleType.Pinned); try { IntPtr subFactorArray; int subFactorCount; var code = EnumEnrollments(sessionHandle, unitId, handle.AddrOfPinnedObject(), out subFactorArray, out subFactorCount); WinBioException.ThrowOnError(code, "WinBioEnumEnrollments failed"); return(MarshalArray <WinBioBiometricSubType>(subFactorArray, subFactorCount)); } finally { handle.Free(); } }
public static void DeleteTemplate( WinBioSessionHandle sessionHandle, int unitId, WinBioIdentity identity, WinBioBiometricSubType subFactor) { var handle = GCHandle.Alloc(identity.GetBytes(), GCHandleType.Pinned); try { var code = DeleteTemplate(sessionHandle, unitId, handle.AddrOfPinnedObject(), subFactor); WinBioException.ThrowOnError(code, "WinBioDeleteTemplate failed"); } finally { handle.Free(); } }
public static bool EnrollCommit(WinBioSessionHandle sessionHandle, out WinBioIdentity identity) { bool isNewTemplate; var bytes = new byte[WinBioIdentity.Size]; var handle = GCHandle.Alloc(bytes, GCHandleType.Pinned); try { var code = EnrollCommit(sessionHandle, handle.AddrOfPinnedObject(), out isNewTemplate); WinBioException.ThrowOnError(code, "WinBioEnrollCommit failed"); } finally { handle.Free(); } identity = new WinBioIdentity(bytes); return(isNewTemplate); }
public static int CaptureSample( WinBioSessionHandle sessionHandle, WinBioBirPurpose purpose, WinBioBirDataFlags flags, out WinBioRejectDetail rejectDetail, out Bitmap fingerprintImage) { int unitId; int sampleSize; IntPtr samplePointer; var code = CaptureSample(sessionHandle, purpose, flags, out unitId, out samplePointer, out sampleSize, out rejectDetail); WinBioException.ThrowOnError(code, "WinBioCaptureSample failed"); WinBioBir sample = (WinBioBir)Marshal.PtrToStructure(samplePointer, typeof(WinBioBir)); if (sample.StandardDataBlock.Size == 0) { throw new WinBioException("Your fingerprint sensor doesn't support StandardDataBlock"); } IntPtr birHeaderPointer = samplePointer + sample.HeaderBlock.Offset; IntPtr ansiHeaderPointer = samplePointer + sample.StandardDataBlock.Offset; IntPtr ansiRecordPointer = ansiHeaderPointer + Marshal.SizeOf(typeof(WinBioBdbAnsi381Header)); WinBioBdbAnsi381Record ansiRecord = (WinBioBdbAnsi381Record)Marshal.PtrToStructure( ansiRecordPointer, typeof(WinBioBdbAnsi381Record)); Size imageSize = new Size(ansiRecord.HorizontalLineLength, ansiRecord.VerticalLineLength); IntPtr firstPixelPointer = ansiRecordPointer + Marshal.SizeOf(typeof(WinBioBdbAnsi381Record)); fingerprintImage = new Bitmap(imageSize.Width, imageSize.Height, 1 * imageSize.Width, PixelFormat.Format8bppIndexed, firstPixelPointer); ColorPalette palette = fingerprintImage.Palette; for (int i = 0; i <= 255; i++) { palette.Entries[i] = Color.FromArgb(i, i, i); } fingerprintImage.Palette = palette; Free(samplePointer); return(unitId); }
public static bool Verify( WinBioSessionHandle sessionHandle, WinBioIdentity identity, WinBioBiometricSubType subFactor, out int unitId, out WinBioRejectDetail rejectDetail) { bool match; var handle = GCHandle.Alloc(identity.GetBytes(), GCHandleType.Pinned); try { var code = Verify(sessionHandle, handle.AddrOfPinnedObject(), subFactor, out unitId, out match, out rejectDetail); WinBioException.ThrowOnError(code, "WinBioVerify failed"); } finally { handle.Free(); } return(match); }
public static int Identify( WinBioSessionHandle sessionHandle, out WinBioIdentity identity, out WinBioBiometricSubType subFactor, out WinBioRejectDetail rejectDetail) { int unitId; var bytes = new byte[WinBioIdentity.Size]; var handle = GCHandle.Alloc(bytes, GCHandleType.Pinned); try { var code = Identify(sessionHandle, out unitId, handle.AddrOfPinnedObject(), out subFactor, out rejectDetail); WinBioException.ThrowOnError(code, "WinBioIdentify failed"); } finally { handle.Free(); } identity = new WinBioIdentity(bytes); return(unitId); }
public static void Cancel(WinBioSessionHandle sessionHandle) { var code = WinBioCancel(sessionHandle); WinBioException.ThrowOnError(code, "WinBioCancel failed"); }
public static void EnrollDiscard(WinBioSessionHandle sessionHandle) { var code = WinBioEnrollDiscard(sessionHandle); WinBioException.ThrowOnError(code, "WinBioEnrollDiscard failed"); }
public static void EnrollBegin(WinBioSessionHandle sessionHandle, WinBioBiometricSubType subType, int unitId) { var code = WinBioEnrollBegin(sessionHandle, subType, unitId); WinBioException.ThrowOnError(code, "WinBioEnrollBegin failed"); }
protected void Log(WinBioException exception) { Log(exception.Message); }