summaryrefslogtreecommitdiff
path: root/biometrics/adapters/engine_adapter/EngineAdapter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'biometrics/adapters/engine_adapter/EngineAdapter.cpp')
-rw-r--r--biometrics/adapters/engine_adapter/EngineAdapter.cpp665
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;
+}
+//-----------------------------------------------------------------------------
+