VBoxCrHgsmi.cpp revision 5cf075f1173d07b89c26db295070415dffc6109d
#include <VBox/VBoxCrHgsmi.h>
#include "VBoxUhgsmiKmt.h"
static uint32_t g_cVBoxCrHgsmiProvider = 0;
typedef VBOXWDDMDISP_DECL(int) FNVBOXDISPCRHGSMI_TERM();
{
if (!g_hVBoxCrHgsmiProvider)
{
// g_hVBoxCrHgsmiProvider = GetModuleHandle(L"VBoxDispD3D");
if (bRc)
{
g_pfnVBoxDispCrHgsmiInit = (PFNVBOXDISPCRHGSMI_INIT)GetProcAddress(g_hVBoxCrHgsmiProvider, "VBoxDispCrHgsmiInit");
{
}
g_pfnVBoxDispCrHgsmiTerm = (PFNVBOXDISPCRHGSMI_TERM)GetProcAddress(g_hVBoxCrHgsmiProvider, "VBoxDispCrHgsmiTerm");
g_pfnVBoxDispCrHgsmiQueryClient = (PFNVBOXDISPCRHGSMI_QUERY_CLIENT)GetProcAddress(g_hVBoxCrHgsmiProvider, "VBoxDispCrHgsmiQueryClient");
}
#ifdef DEBUG_misha
else
{
Assert(0);
}
#endif
}
{
return VINF_SUCCESS;
}
/* we're called from ogl ICD driver*/
Assert(0);
return VINF_SUCCESS;
}
{
{
if (hClient)
return hClient;
}
if (pHgsmiGL)
if (pHgsmiGL)
{
}
else
return hClient;
}
VBOXCRHGSMI_DECL(int) VBoxCrHgsmiTerm()
{
if (pHgsmiGL)
{
gt_pHgsmiGL = NULL;
}
return VINF_SUCCESS;
}
///* to be used by injection thread and by ogl ICD driver for hgsmi initialization*/
//VBOXCRHGSMI_DECL(int) VBoxCrHgsmiCustomCreate(PVBOXUHGSMI *ppHgsmi)
//{
// PVBOXUHGSMI_PRIVATE_KMT pHgsmi = RTMemAllocZ(sizeof (*pHgsmi));
// if (pHgsmi)
// {
// HRESULT hr = vboxUhgsmiKmtCreate(pHgsmi, FALSE);
// Assert(hr == S_OK);
// if (hr == S_OK)
// {
// *ppHgsmi = &pHgsmi->BasePrivate.Base;
// return VINF_SUCCESS;
// }
// RTMemFree(pHgsmi);
// return VERR_GENERAL_FAILURE;
// }
// return VERR_NO_MEMORY;
//}
//
//VBOXCRHGSMI_DECL(int) VBoxCrHgsmiCustomDestroy(PVBOXUHGSMI pHgsmi)
//{
// PVBOXUHGSMI_PRIVATE_KMT pHgsmiKmt = VBOXUHGSMIKMT_GET(pHgsmi);
// HRESULT hr = vboxUhgsmiKmtDestroy(pHgsmiKmt, FALSE);
// Assert(hr == S_OK);
// if (hr == S_OK)
// {
// RTMemFree(pHgsmiKmt);
// return VINF_SUCCESS;
// }
// return VERR_GENERAL_FAILURE;
//}