private static extern WinBioErrorCode Verify( WinBioSessionHandle sessionHandle, IntPtr identity, WinBioBiometricSubType subFactor, out int unitId, out bool match, out WinBioRejectDetail rejectDetail);
private extern static WinBioErrorCode OpenSession( WinBioBiometricType factor, WinBioPoolType poolType, WinBioSessionFlag flags, int[] unitArray, int unitCount, IntPtr databaseId, out WinBioSessionHandle sessionHandle);
public static int LocateSensor(WinBioSessionHandle sessionHandle) { int unitId; var code = LocateSensor(sessionHandle, out unitId); WinBioException.ThrowOnError(code, "WinBioLocateSensor failed"); return(unitId); }
private extern static WinBioErrorCode CaptureSample( WinBioSessionHandle sessionHandle, WinBioBirPurpose purpose, WinBioBirDataFlags flags, out int unitId, out IntPtr sample, out int sampleSize, out WinBioRejectDetail rejectDetail);
private extern static WinBioErrorCode OpenSession( WinBioBiometricType factor, WinBioPoolType poolType, WinBioSessionFlag flags, int[] unitArray, int unitCount, [MarshalAs(UnmanagedType.LPStruct)] Guid databaseId, out WinBioSessionHandle sessionHandle);
public extern static WinBioErrorCode ControlUnit( WinBioSessionHandle sessionHandle, int unitId, WinBioComponentType componentType, uint controlCode, byte[] sendBuffer, int sendBufferSize, IntPtr receiveBuffer, int receiveBufferSize, ref int receiveDataSize, ref uint statusCode);
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 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 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 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); }
private extern static WinBioErrorCode WinBioCloseSession(WinBioSessionHandle sessionHandle);
public static extern WinBioErrorCode ReleaseFocus(WinBioSessionHandle sessionHandle);
public static extern WinBioErrorCode AcquireFocus(WinBioSessionHandle sessionHandle);
public static extern WinBioErrorCode LogonIdentifiedUser(WinBioSessionHandle sessionHandle);
public static void EnrollBegin(WinBioSessionHandle sessionHandle, WinBioBiometricSubType subType, int unitId) { var code = WinBioEnrollBegin(sessionHandle, subType, unitId); WinBioException.ThrowOnError(code, "WinBioEnrollBegin failed"); }
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"); }
private extern static WinBioErrorCode WinBioEnrollDiscard(WinBioSessionHandle sessionHandle);
private extern static WinBioErrorCode EnrollCommit(WinBioSessionHandle sessionHandle, IntPtr identity, out bool isNewTemplate);
private extern static WinBioErrorCode LocateSensor(WinBioSessionHandle sessionHandle, out int unitId);
public extern static WinBioErrorCode EnrollCapture(WinBioSessionHandle sessionHandle, out WinBioRejectDetail rejectDetail);
private extern static WinBioErrorCode EnumEnrollments( WinBioSessionHandle sessionHandle, int unitId, IntPtr identity, out IntPtr subFactorArray, out int subFactorCount);
private extern static WinBioErrorCode WinBioCancel(WinBioSessionHandle sessionHandle);
private static extern WinBioErrorCode DeleteTemplate( WinBioSessionHandle sessionHandle, int unitId, IntPtr identity, WinBioBiometricSubType subFactor);
private extern static WinBioErrorCode Identify( WinBioSessionHandle sessionHandle, out int unitId, IntPtr identity, out WinBioBiometricSubType subFactor, out WinBioRejectDetail rejectDetail);
private extern static WinBioErrorCode WinBioEnrollBegin(WinBioSessionHandle sessionHandle, WinBioBiometricSubType subType, int unitId);