diff options
| author | J M Rossy <[email protected]> | 2015-07-29 15:40:09 -0700 |
|---|---|---|
| committer | J M Rossy <[email protected]> | 2015-07-29 16:34:40 -0700 |
| commit | 5d61a4a79a1e96dc5d9af1e5e712c84507307544 (patch) | |
| tree | 49ed270893578cd18758b74ffcca16dc7ab948d6 /biometrics/adapters/engine_adapter/EngineAdapter.cpp | |
| parent | 5d41613e26e147d2300c786bb2b34cb4b4067a25 (diff) | |
Samples update for public Windows 10 release
Fix #2 Enabling WPP Recorder in Sensors Samples causes errors
Fix #4 Add back fixed KMDOD sample
Add new BarcodeScanner sample in pos folder
Add new MagneticStripeReader sample in pos folder
Add new SynpaticsTouch sample in input folder
Add new Power Engine Plugin sample in pofx folder
Add new DeviceMft sample in avstream folder
Add new AvsCamera sample in root
Add new SimBatt sample in root
Add other pre-existing samples not yet released for Win10
Diffstat (limited to 'biometrics/adapters/engine_adapter/EngineAdapter.cpp')
| -rw-r--r-- | biometrics/adapters/engine_adapter/EngineAdapter.cpp | 665 |
1 files changed, 665 insertions, 0 deletions
diff --git a/biometrics/adapters/engine_adapter/EngineAdapter.cpp b/biometrics/adapters/engine_adapter/EngineAdapter.cpp new file mode 100644 index 00000000..22961124 --- /dev/null +++ b/biometrics/adapters/engine_adapter/EngineAdapter.cpp @@ -0,0 +1,665 @@ +/*++ + + THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF + ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A + PARTICULAR PURPOSE. + + Copyright (c) Microsoft Corporation. All rights reserved + +Module Name: + + EngineAdapter.cpp + +Abstract: + + This module contains a stub implementation of an Engine Adapter + plug-in for the Windows Biometric service. + +Author: + + - + +Environment: + + Win32, user mode only. + +Revision History: + +NOTES: + + (None) + +--*/ + +/////////////////////////////////////////////////////////////////////////////// +// +// Header files... +// +/////////////////////////////////////////////////////////////////////////////// +#include "precomp.h" +#include "winbio_adapter.h" +#include "EngineAdapter.h" + + +/////////////////////////////////////////////////////////////////////////////// +// +// Forward declarations for the Engine Adapter's interface routines... +// +/////////////////////////////////////////////////////////////////////////////// +static HRESULT +WINAPI +EngineAdapterAttach( + _Inout_ PWINBIO_PIPELINE Pipeline + ); + +static HRESULT +WINAPI +EngineAdapterDetach( + _Inout_ PWINBIO_PIPELINE Pipeline + ); + +static HRESULT +WINAPI +EngineAdapterClearContext( + _Inout_ PWINBIO_PIPELINE Pipeline + ); + +static HRESULT +WINAPI +EngineAdapterEndOperation( + _Inout_ PWINBIO_PIPELINE Pipeline + ); + +static HRESULT +WINAPI +EngineAdapterQueryPreferredFormat( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PWINBIO_REGISTERED_FORMAT StandardFormat, + _Out_ PWINBIO_UUID VendorFormat + ); + +static HRESULT +WINAPI +EngineAdapterQueryIndexVectorSize( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PSIZE_T IndexElementCount + ); + +static HRESULT +WINAPI +EngineAdapterQueryHashAlgorithms( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PSIZE_T AlgorithmCount, + _Out_ PSIZE_T AlgorithmBufferSize, + _Out_ PUCHAR *AlgorithmBuffer + ); + +static HRESULT +WINAPI +EngineAdapterSetHashAlgorithm( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ SIZE_T AlgorithmBufferSize, + _In_ PUCHAR AlgorithmBuffer + ); + +static HRESULT +WINAPI +EngineAdapterAcceptSampleHint( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PSIZE_T SampleHint + ); + +static HRESULT +WINAPI +EngineAdapterAcceptSampleData( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ PWINBIO_BIR SampleBuffer, + _In_ SIZE_T SampleSize, + _In_ WINBIO_BIR_PURPOSE Purpose, + _Out_ PWINBIO_REJECT_DETAIL RejectDetail + ); + +static HRESULT +WINAPI +EngineAdapterExportEngineData( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ WINBIO_BIR_DATA_FLAGS Flags, + _Out_ PWINBIO_BIR *SampleBuffer, + _Out_ PSIZE_T SampleSize + ); + +static HRESULT +WINAPI +EngineAdapterVerifyFeatureSet( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ PWINBIO_IDENTITY Identity, + _In_ WINBIO_BIOMETRIC_SUBTYPE SubFactor, + _Out_ PBOOLEAN Match, + _Out_ PUCHAR *PayloadBlob, + _Out_ PSIZE_T PayloadBlobSize, + _Out_ PUCHAR *HashValue, + _Out_ PSIZE_T HashSize, + _Out_ PWINBIO_REJECT_DETAIL RejectDetail + ); + +static HRESULT +WINAPI +EngineAdapterIdentifyFeatureSet( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PWINBIO_IDENTITY Identity, + _Out_ PWINBIO_BIOMETRIC_SUBTYPE SubFactor, + _Out_ PUCHAR *PayloadBlob, + _Out_ PSIZE_T PayloadBlobSize, + _Out_ PUCHAR *HashValue, + _Out_ PSIZE_T HashSize, + _Out_ PWINBIO_REJECT_DETAIL RejectDetail + ); + +static HRESULT +WINAPI +EngineAdapterCreateEnrollment( + _Inout_ PWINBIO_PIPELINE Pipeline + ); + +static HRESULT +WINAPI +EngineAdapterUpdateEnrollment( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PWINBIO_REJECT_DETAIL RejectDetail + ); + +static HRESULT +WINAPI +EngineAdapterGetEnrollmentStatus( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PWINBIO_REJECT_DETAIL RejectDetail + ); + +static HRESULT +WINAPI +EngineAdapterGetEnrollmentHash( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PUCHAR *HashValue, + _Out_ PSIZE_T HashSize + ); + +static HRESULT +WINAPI +EngineAdapterCheckForDuplicate( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PWINBIO_IDENTITY Identity, + _Out_ PWINBIO_BIOMETRIC_SUBTYPE SubFactor, + _Out_ PBOOLEAN Duplicate + ); + +static HRESULT +WINAPI +EngineAdapterCommitEnrollment( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ PWINBIO_IDENTITY Identity, + _In_ WINBIO_BIOMETRIC_SUBTYPE SubFactor, + _In_ PUCHAR PayloadBlob, + _In_ SIZE_T PayloadBlobSize + ); + +static HRESULT +WINAPI +EngineAdapterDiscardEnrollment( + _Inout_ PWINBIO_PIPELINE Pipeline + ); + +static HRESULT +WINAPI +EngineAdapterControlUnit( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ ULONG ControlCode, + _In_ PUCHAR SendBuffer, + _In_ SIZE_T SendBufferSize, + _In_ PUCHAR ReceiveBuffer, + _In_ SIZE_T ReceiveBufferSize, + _Out_ PSIZE_T ReceiveDataSize, + _Out_ PULONG OperationStatus + ); + +static HRESULT +WINAPI +EngineAdapterControlUnitPrivileged( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ ULONG ControlCode, + _In_ PUCHAR SendBuffer, + _In_ SIZE_T SendBufferSize, + _In_ PUCHAR ReceiveBuffer, + _In_ SIZE_T ReceiveBufferSize, + _Out_ PSIZE_T ReceiveDataSize, + _Out_ PULONG OperationStatus + ); +//----------------------------------------------------------------------------- + + +/////////////////////////////////////////////////////////////////////////////// +// +// Interface dispatch table +// +/////////////////////////////////////////////////////////////////////////////// +static WINBIO_ENGINE_INTERFACE g_EngineInterface = { + WINBIO_ENGINE_INTERFACE_VERSION_1, + WINBIO_ADAPTER_TYPE_ENGINE, + sizeof(WINBIO_ENGINE_INTERFACE), + {0xb876fdc8, 0x34e7, 0x471a, {0x82, 0xc8, 0x9c, 0xba, 0x6a, 0x35, 0x38, 0xec}}, + + EngineAdapterAttach, + EngineAdapterDetach, + EngineAdapterClearContext, + EngineAdapterQueryPreferredFormat, + EngineAdapterQueryIndexVectorSize, + EngineAdapterQueryHashAlgorithms, + EngineAdapterSetHashAlgorithm, + EngineAdapterAcceptSampleHint, + EngineAdapterAcceptSampleData, + EngineAdapterExportEngineData, + EngineAdapterVerifyFeatureSet, + EngineAdapterIdentifyFeatureSet, + EngineAdapterCreateEnrollment, + EngineAdapterUpdateEnrollment, + EngineAdapterGetEnrollmentStatus, + EngineAdapterGetEnrollmentHash, + EngineAdapterCheckForDuplicate, + EngineAdapterCommitEnrollment, + EngineAdapterDiscardEnrollment, + EngineAdapterControlUnit, + EngineAdapterControlUnitPrivileged +}; +//----------------------------------------------------------------------------- + + +/////////////////////////////////////////////////////////////////////////////// +// +// Mandatory DLL entrypoint function. +// +/////////////////////////////////////////////////////////////////////////////// +BOOL APIENTRY +DllMain( + HANDLE ModuleHandle, + DWORD ReasonForCall, + LPVOID Reserved + ) +{ + UNREFERENCED_PARAMETER(ModuleHandle); + UNREFERENCED_PARAMETER(ReasonForCall); + UNREFERENCED_PARAMETER(Reserved); + + return TRUE; +} +//----------------------------------------------------------------------------- + + +/////////////////////////////////////////////////////////////////////////////// +// +// Well-known interface-discovery function exported by the Engine Adapter +// +/////////////////////////////////////////////////////////////////////////////// +HRESULT +WINAPI +WbioQueryEngineInterface( + _Out_ PWINBIO_ENGINE_INTERFACE *EngineInterface + ) +{ + *EngineInterface = &g_EngineInterface; + return S_OK; +} +//----------------------------------------------------------------------------- + + +/////////////////////////////////////////////////////////////////////////////// +// +// Engine Adapter action routines +// +/////////////////////////////////////////////////////////////////////////////// +static HRESULT +WINAPI +EngineAdapterAttach( + _Inout_ PWINBIO_PIPELINE Pipeline + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterDetach( + _Inout_ PWINBIO_PIPELINE Pipeline + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterClearContext( + _Inout_ PWINBIO_PIPELINE Pipeline + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterQueryPreferredFormat( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PWINBIO_REGISTERED_FORMAT StandardFormat, + _Out_ PWINBIO_UUID VendorFormat + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(StandardFormat); + UNREFERENCED_PARAMETER(VendorFormat); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterQueryIndexVectorSize( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PSIZE_T IndexElementCount + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(IndexElementCount); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterQueryHashAlgorithms( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PSIZE_T AlgorithmCount, + _Out_ PSIZE_T AlgorithmBufferSize, + _Out_ PUCHAR *AlgorithmBuffer + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(AlgorithmCount); + UNREFERENCED_PARAMETER(AlgorithmBufferSize); + UNREFERENCED_PARAMETER(AlgorithmBuffer); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterSetHashAlgorithm( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ SIZE_T AlgorithmBufferSize, + _In_ PUCHAR AlgorithmBuffer + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(AlgorithmBufferSize); + UNREFERENCED_PARAMETER(AlgorithmBuffer); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterAcceptSampleHint( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PSIZE_T SampleHint + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(SampleHint); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterAcceptSampleData( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ PWINBIO_BIR SampleBuffer, + _In_ SIZE_T SampleSize, + _In_ WINBIO_BIR_PURPOSE Purpose, + _Out_ PWINBIO_REJECT_DETAIL RejectDetail + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(SampleBuffer); + UNREFERENCED_PARAMETER(SampleSize); + UNREFERENCED_PARAMETER(Purpose); + UNREFERENCED_PARAMETER(RejectDetail); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterExportEngineData( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ WINBIO_BIR_DATA_FLAGS Flags, + _Out_ PWINBIO_BIR *SampleBuffer, + _Out_ PSIZE_T SampleSize + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(Flags); + UNREFERENCED_PARAMETER(SampleBuffer); + UNREFERENCED_PARAMETER(SampleSize); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterVerifyFeatureSet( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ PWINBIO_IDENTITY Identity, + _In_ WINBIO_BIOMETRIC_SUBTYPE SubFactor, + _Out_ PBOOLEAN Match, + _Out_ PUCHAR *PayloadBlob, + _Out_ PSIZE_T PayloadBlobSize, + _Out_ PUCHAR *HashValue, + _Out_ PSIZE_T HashSize, + _Out_ PWINBIO_REJECT_DETAIL RejectDetail + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(Identity); + UNREFERENCED_PARAMETER(SubFactor); + UNREFERENCED_PARAMETER(Match); + UNREFERENCED_PARAMETER(PayloadBlob); + UNREFERENCED_PARAMETER(PayloadBlobSize); + UNREFERENCED_PARAMETER(HashValue); + UNREFERENCED_PARAMETER(HashSize); + UNREFERENCED_PARAMETER(RejectDetail); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterIdentifyFeatureSet( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PWINBIO_IDENTITY Identity, + _Out_ PWINBIO_BIOMETRIC_SUBTYPE SubFactor, + _Out_ PUCHAR *PayloadBlob, + _Out_ PSIZE_T PayloadBlobSize, + _Out_ PUCHAR *HashValue, + _Out_ PSIZE_T HashSize, + _Out_ PWINBIO_REJECT_DETAIL RejectDetail + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(Identity); + UNREFERENCED_PARAMETER(SubFactor); + UNREFERENCED_PARAMETER(PayloadBlob); + UNREFERENCED_PARAMETER(PayloadBlobSize); + UNREFERENCED_PARAMETER(HashValue); + UNREFERENCED_PARAMETER(HashSize); + UNREFERENCED_PARAMETER(RejectDetail); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterCreateEnrollment( + _Inout_ PWINBIO_PIPELINE Pipeline + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterUpdateEnrollment( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PWINBIO_REJECT_DETAIL RejectDetail + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(RejectDetail); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterGetEnrollmentStatus( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PWINBIO_REJECT_DETAIL RejectDetail + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(RejectDetail); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterGetEnrollmentHash( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PUCHAR *HashValue, + _Out_ PSIZE_T HashSize + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(HashValue); + UNREFERENCED_PARAMETER(HashSize); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterCheckForDuplicate( + _Inout_ PWINBIO_PIPELINE Pipeline, + _Out_ PWINBIO_IDENTITY Identity, + _Out_ PWINBIO_BIOMETRIC_SUBTYPE SubFactor, + _Out_ PBOOLEAN Duplicate + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(Identity); + UNREFERENCED_PARAMETER(SubFactor); + UNREFERENCED_PARAMETER(Duplicate); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterCommitEnrollment( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ PWINBIO_IDENTITY Identity, + _In_ WINBIO_BIOMETRIC_SUBTYPE SubFactor, + _In_ PUCHAR PayloadBlob, + _In_ SIZE_T PayloadBlobSize + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(Identity); + UNREFERENCED_PARAMETER(SubFactor); + UNREFERENCED_PARAMETER(PayloadBlob); + UNREFERENCED_PARAMETER(PayloadBlobSize); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterDiscardEnrollment( + _Inout_ PWINBIO_PIPELINE Pipeline + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterControlUnit( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ ULONG ControlCode, + _In_ PUCHAR SendBuffer, + _In_ SIZE_T SendBufferSize, + _In_ PUCHAR ReceiveBuffer, + _In_ SIZE_T ReceiveBufferSize, + _Out_ PSIZE_T ReceiveDataSize, + _Out_ PULONG OperationStatus + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(ControlCode); + UNREFERENCED_PARAMETER(SendBuffer); + UNREFERENCED_PARAMETER(SendBufferSize); + UNREFERENCED_PARAMETER(ReceiveBuffer); + UNREFERENCED_PARAMETER(ReceiveBufferSize); + UNREFERENCED_PARAMETER(ReceiveDataSize); + UNREFERENCED_PARAMETER(OperationStatus); + + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + +static HRESULT +WINAPI +EngineAdapterControlUnitPrivileged( + _Inout_ PWINBIO_PIPELINE Pipeline, + _In_ ULONG ControlCode, + _In_ PUCHAR SendBuffer, + _In_ SIZE_T SendBufferSize, + _In_ PUCHAR ReceiveBuffer, + _In_ SIZE_T ReceiveBufferSize, + _Out_ PSIZE_T ReceiveDataSize, + _Out_ PULONG OperationStatus + ) +{ + UNREFERENCED_PARAMETER(Pipeline); + UNREFERENCED_PARAMETER(ControlCode); + UNREFERENCED_PARAMETER(SendBuffer); + UNREFERENCED_PARAMETER(SendBufferSize); + UNREFERENCED_PARAMETER(ReceiveBuffer); + UNREFERENCED_PARAMETER(ReceiveBufferSize); + UNREFERENCED_PARAMETER(ReceiveDataSize); + UNREFERENCED_PARAMETER(OperationStatus); + + return E_NOTIMPL; +} +//----------------------------------------------------------------------------- + |
