diff --git a/lib/EAPBase/include/Module.h b/lib/EAPBase/include/Module.h index 5378cd4..c802b4e 100644 --- a/lib/EAPBase/include/Module.h +++ b/lib/EAPBase/include/Module.h @@ -88,6 +88,11 @@ namespace eap /// EAP_ERROR* make_error(_In_ std::exception &err) const; + /// + /// Allocate a EAP_ERROR and fill it according to another EAP_ERROR + /// + EAP_ERROR* make_error(_In_ const EAP_ERROR *err) const; + /// /// Allocate BLOB /// diff --git a/lib/EAPBase/src/Module.cpp b/lib/EAPBase/src/Module.cpp index a62600f..2cb2ce2 100644 --- a/lib/EAPBase/src/Module.cpp +++ b/lib/EAPBase/src/Module.cpp @@ -128,6 +128,19 @@ EAP_ERROR* eap::module::make_error(_In_ std::exception &err) const } +EAP_ERROR* eap::module::make_error(_In_ const EAP_ERROR *err) const +{ + return make_error( + err->dwWinError, + err->pRootCauseString, + err->pRepairString, + err->dwReasonCode, + &(err->rootCauseGuid), + &(err->repairGuid), + &(err->helpLinkGuid)); +} + + BYTE* eap::module::alloc_memory(_In_ size_t size) { BYTE *p = (BYTE*)HeapAlloc(m_heap, 0, size);