diff --git a/Source/GmmLib/CMakeLists.txt b/Source/GmmLib/CMakeLists.txt
index c3fa2ff..2e634eb 100644
--- a/Source/GmmLib/CMakeLists.txt
+++ b/Source/GmmLib/CMakeLists.txt
@@ -24,11 +24,11 @@
 project(igfx_gmmumd)
 
 # GmmLib Api Version used for so naming
-set(GMMLIB_API_MAJOR_VERSION 11)
+set(GMMLIB_API_MAJOR_VERSION 12)
 set(GMMLIB_API_MINOR_VERSION 0)
 
 if(NOT DEFINED MAJOR_VERSION)
-	set(MAJOR_VERSION 11)
+	set(MAJOR_VERSION 12)
 endif()
 
 if(NOT DEFINED MINOR_VERSION)
diff --git a/Source/GmmLib/GlobalInfo/GmmLibDllMain.cpp b/Source/GmmLib/GlobalInfo/GmmLibDllMain.cpp
index 14c14f8..1036f85 100755
--- a/Source/GmmLib/GlobalInfo/GmmLibDllMain.cpp
+++ b/Source/GmmLib/GlobalInfo/GmmLibDllMain.cpp
@@ -85,46 +85,36 @@
 }
 
 /////////////////////////////////////////////////////////////////////////////////////
-/// First Call to GMM Lib DLL/so to initialize singleton global context
-/// and create client context
-///
+// First Call to GMM Lib DLL/so to initialize singleton global context
+// and create client context
 /////////////////////////////////////////////////////////////////////////////////////
-#ifdef _WIN32
-extern "C" GMM_LIB_API GMM_CLIENT_CONTEXT *GMM_STDCALL GmmInit(const PLATFORM           Platform,
-                                                               const SKU_FEATURE_TABLE *pSkuTable,
-                                                               const WA_TABLE *         pWaTable,
-                                                               const GT_SYSTEM_INFO *   pGtSysInfo,
-                                                               GMM_CLIENT               ClientType)
-#else
-extern "C" GMM_LIB_API GMM_CLIENT_CONTEXT *GMM_STDCALL GmmInit(const PLATFORM Platform,
-                                                               const void *   pSkuTable,
-                                                               const void *   pWaTable,
-                                                               const void *   pGtSysInfo,
-                                                               GMM_CLIENT     ClientType)
-#endif
+extern "C" GMM_LIB_API GMM_STATUS GMM_STDCALL InitializeGmm(GMM_INIT_IN_ARGS *pInArgs, GMM_INIT_OUT_ARGS *pOutArgs)
 {
-    GMM_STATUS          Status         = GMM_SUCCESS;
-    GMM_CLIENT_CONTEXT *pClientContext = NULL;
+    GMM_STATUS Status = GMM_ERROR;
 
-
-    Status = GmmCreateSingletonContext(Platform, pSkuTable, pWaTable, pGtSysInfo);
-
-    if(Status == GMM_SUCCESS)
+    if(pInArgs && pOutArgs)
     {
-        pClientContext = GmmCreateClientContext(ClientType);
+
+        Status = GmmCreateSingletonContext(pInArgs->Platform, pInArgs->pSkuTable, pInArgs->pWaTable, pInArgs->pGtSysInfo);
+
+        if(Status == GMM_SUCCESS)
+        {
+            pOutArgs->pGmmClientContext = GmmCreateClientContext(pInArgs->ClientType);
+        }
     }
 
-    return pClientContext;
+    return Status;
 }
 
-
 /////////////////////////////////////////////////////////////////////////////////////
-/// Destroys singleton global context and client context
-///
+// Destroys singleton global context and client context
 /////////////////////////////////////////////////////////////////////////////////////
-extern "C" GMM_LIB_API void GMM_STDCALL GmmDestroy(GMM_CLIENT_CONTEXT *pGmmClientContext)
+extern "C" GMM_LIB_API void GMM_STDCALL GmmDestroy(GMM_INIT_OUT_ARGS *pInArgs)
 {
-    GmmDestroySingletonContext();
-    GmmDeleteClientContext(pGmmClientContext);
+    if(pInArgs && pInArgs->pGmmClientContext)
+    {
+        GmmDeleteClientContext(pInArgs->pGmmClientContext);
+        GmmDestroySingletonContext();
+    }
 }
 #endif // GMM_LIB_DLL
diff --git a/Source/GmmLib/ULT/GmmCommonULT.cpp b/Source/GmmLib/ULT/GmmCommonULT.cpp
index 0498c78..2fa1172 100644
--- a/Source/GmmLib/ULT/GmmCommonULT.cpp
+++ b/Source/GmmLib/ULT/GmmCommonULT.cpp
@@ -57,6 +57,9 @@
 {
     printf("%s\n", __FUNCTION__);
 
+    GMM_INIT_IN_ARGS  InArgs;
+    GMM_INIT_OUT_ARGS OutArgs;
+
     if(GfxPlatform.eProductFamily == IGFX_UNKNOWN ||
        GfxPlatform.eRenderCoreFamily == IGFX_UNKNOWN_CORE)
     {
@@ -66,20 +69,23 @@
 
     AllocateAdapterInfo();
 
+    InArgs.ClientType = GMM_EXCITE_VISTA;
+    InArgs.pGtSysInfo = &pGfxAdapterInfo->SystemInfo;
+    InArgs.pSkuTable  = &pGfxAdapterInfo->SkuTable;
+    InArgs.pWaTable   = &pGfxAdapterInfo->WaTable;
+    InArgs.Platform   = GfxPlatform;
+
     hGmmLib = dlopen(GMM_UMD_DLL, RTLD_LAZY);
     ASSERT_TRUE(hGmmLib);
 
-    *(void **)(&pfnGmmInit)    = dlsym(hGmmLib, "GmmInit");
+    *(void **)(&pfnGmmInit)    = dlsym(hGmmLib, "InitializeGmm");
     *(void **)(&pfnGmmDestroy) = dlsym(hGmmLib, "GmmDestroy");
 
     ASSERT_TRUE(pfnGmmInit);
     ASSERT_TRUE(pfnGmmDestroy);
 
-    pGmmULTClientContext = pfnGmmInit(GfxPlatform,
-                                      &pGfxAdapterInfo->SkuTable,
-                                      &pGfxAdapterInfo->WaTable,
-                                      &pGfxAdapterInfo->SystemInfo,
-                                      GMM_EXCITE_VISTA);
+    pfnGmmInit(&InArgs, &OutArgs);
+    pGmmULTClientContext = OutArgs.pGmmClientContext;
 
     ASSERT_TRUE(pGmmULTClientContext);
 }
@@ -88,7 +94,10 @@
 {
     printf("%s\n", __FUNCTION__);
 
-    pfnGmmDestroy(static_cast<GMM_CLIENT_CONTEXT *>(pGmmULTClientContext));
+    GMM_INIT_OUT_ARGS OutArgs;
+    OutArgs.pGmmClientContext = static_cast<GMM_CLIENT_CONTEXT *>(pGmmULTClientContext);
+
+    pfnGmmDestroy(&OutArgs);
 
     if(hGmmLib)
     {
diff --git a/Source/GmmLib/ULT/GmmCommonULT.h b/Source/GmmLib/ULT/GmmCommonULT.h
index d62e3d3..2f07252 100644
--- a/Source/GmmLib/ULT/GmmCommonULT.h
+++ b/Source/GmmLib/ULT/GmmCommonULT.h
@@ -24,21 +24,8 @@
 
 #include "stdafx.h"
 
-typedef GMM_CLIENT_CONTEXT *(GMM_STDCALL * PFNGMMINIT)
-#ifdef _WIN32
-    (const PLATFORM,
-    const SKU_FEATURE_TABLE *,
-    const WA_TABLE *,
-    const GT_SYSTEM_INFO *,
-    GMM_CLIENT);
-#else
-    (const PLATFORM Platform,
-    const void *   pSkuTable,
-    const void *   pWaTable,
-    const void *   pGtSysInfo,
-    GMM_CLIENT ClientType);
-#endif
-typedef void(GMM_STDCALL *PFNGMMDESTROY)(GMM_CLIENT_CONTEXT *);
+typedef GMM_STATUS (GMM_STDCALL *PFNGMMINIT)(GMM_INIT_IN_ARGS *pInArgs, GMM_INIT_OUT_ARGS *pOutArgs);
+typedef void(GMM_STDCALL *PFNGMMDESTROY)(GMM_INIT_OUT_ARGS *pInArgs);
 
 class CommonULT : public testing::Test
 {
diff --git a/Source/GmmLib/inc/External/Common/GmmLibDll.h b/Source/GmmLib/inc/External/Common/GmmLibDll.h
index 3156d16..0d5cba3 100755
--- a/Source/GmmLib/inc/External/Common/GmmLibDll.h
+++ b/Source/GmmLib/inc/External/Common/GmmLibDll.h
@@ -24,6 +24,21 @@
 #include "GmmCommonExt.h"
 #include "GmmInfo.h"
 
+typedef struct _GMM_INIT_IN_ARGS_
+{
+    PLATFORM           Platform;
+    void              *pSkuTable;
+    void              *pWaTable;
+    void              *pGtSysInfo;
+    uint32_t           FileDescriptor;
+    GMM_CLIENT ClientType;
+} GMM_INIT_IN_ARGS;
+
+typedef struct _GMM_INIT_OUT_ARGS_
+{
+    GMM_CLIENT_CONTEXT *pGmmClientContext;
+} GMM_INIT_OUT_ARGS;
+
 // Interfaces exported from  GMM Lib DLL
 typedef struct _GmmExportEntries
 {
@@ -54,6 +69,8 @@
 /// Only function exported from GMM lib DLL.
 /////////////////////////////////////////////////////////////////////////////////////
     GMM_LIB_API GMM_STATUS GMM_STDCALL OpenGmm(GmmExportEntries *pm_GmmFuncs);
+    GMM_LIB_API GMM_STATUS GMM_STDCALL InitializeGmm(GMM_INIT_IN_ARGS *pInArgs, GMM_INIT_OUT_ARGS *pOutArgs);
+    GMM_LIB_API void GMM_STDCALL GmmDestroy(GMM_INIT_OUT_ARGS *pInArgs);
 
 #ifdef __cplusplus
 }
diff --git a/Source/GmmLib/inc/External/Common/GmmLibDllName.h b/Source/GmmLib/inc/External/Common/GmmLibDllName.h
index 31b0d1c..8890894 100755
--- a/Source/GmmLib/inc/External/Common/GmmLibDllName.h
+++ b/Source/GmmLib/inc/External/Common/GmmLibDllName.h
@@ -23,23 +23,23 @@
 
 #if defined(_WIN64 ) || defined(__x86_64__) || defined(__LP64__)
     #define GMM_ENTRY_NAME      "OpenGmm"
-    #define GMM_INIT_NAME       "GmmInit"
+    #define GMM_INIT_NAME       "InitializeGmm"
     #define GMM_DESTROY_NAME    "GmmDestroy"
 
     #if defined(_WIN64)
         #define GMM_UMD_DLL     "igdgmm64.dll"
     #else
-        #define GMM_UMD_DLL     "libigdgmm.so.11"
+        #define GMM_UMD_DLL     "libigdgmm.so.12"
     #endif
 #else
     #define GMM_ENTRY_NAME      "_OpenGmm@4"
 
-    #define GMM_INIT_NAME       "_GmmInit@48"
+    #define GMM_INIT_NAME       "_InitializeGmm@8"
     #define GMM_DESTROY_NAME    "_GmmDestroy@4"
 
     #if defined(_WIN32)
         #define GMM_UMD_DLL     "igdgmm32.dll"
     #else
-        #define GMM_UMD_DLL     "libigdgmm.so.11"
+        #define GMM_UMD_DLL     "libigdgmm.so.12"
     #endif
 #endif
diff --git a/Source/inc/umKmInc/sharedata.h b/Source/inc/umKmInc/sharedata.h
index 94a17d6..31dddc3 100644
--- a/Source/inc/umKmInc/sharedata.h
+++ b/Source/inc/umKmInc/sharedata.h
@@ -134,6 +134,22 @@
     uint32_t                                   ActiveDisplay;
 } KM_DEFERRED_WAIT_INFO;
 
+// struct to hold Adapter's BDF
+typedef struct _ADAPTER_BDF_
+{
+    union
+    {
+        struct
+        {
+            uint32_t    Bus         : 8;
+            uint32_t    Device      : 8;
+            uint32_t    Function    : 8;
+            uint32_t    Reserved    : 8;
+        };
+        uint32_t    Data;
+    };
+}ADAPTER_BDF;
+
 // Private data structure for D3D callback QueryAdapterInfoCB
 
 //===========================================================================
