mirror of
https://github.com/arehnman/yttrium-virtio-gpu.git
synced 2026-10-31 02:05:04 +00:00
96 lines
2.2 KiB
C++
96 lines
2.2 KiB
C++
#include "StdAfx.h"
|
|
|
|
HINSTANCE ghInstance = NULL; // module handle.
|
|
PnPControl* control = NULL;
|
|
|
|
|
|
BOOL APIENTRY DllMain (HANDLE hModule, ULONG ul_reason_for_call, LPVOID lpReserved)
|
|
{
|
|
UNREFERENCED_PARAMETER(ul_reason_for_call);
|
|
UNREFERENCED_PARAMETER(lpReserved);
|
|
|
|
ghInstance = (HINSTANCE) hModule;
|
|
return TRUE;
|
|
}
|
|
|
|
DLL_API BOOL VIOSStartup(void)
|
|
{
|
|
PnPControl::GetInstance();
|
|
return TRUE;
|
|
}
|
|
|
|
DLL_API VOID VIOSCleanup ( void )
|
|
{
|
|
PnPControl::CloseInstance();
|
|
}
|
|
|
|
DLL_API BOOL FindPort ( const wchar_t* name )
|
|
{
|
|
PnPControl* control = PnPControl::GetInstance();
|
|
BOOL ret = control->FindPort(name);
|
|
PnPControl::CloseInstance();
|
|
return ret;
|
|
}
|
|
|
|
DLL_API PVOID OpenPortByName ( const wchar_t* name )
|
|
{
|
|
PnPControl* control = PnPControl::GetInstance();
|
|
PVOID ret = control->OpenPortByName(name);
|
|
PnPControl::CloseInstance();
|
|
return ret;
|
|
}
|
|
|
|
DLL_API PVOID OpenPortById ( UINT id )
|
|
{
|
|
PnPControl* control = PnPControl::GetInstance();
|
|
PVOID ret = control->OpenPortById(id);
|
|
PnPControl::CloseInstance();
|
|
return ret;
|
|
}
|
|
|
|
DLL_API BOOL ReadPort ( PVOID port, PVOID buf, PULONG size )
|
|
{
|
|
PnPControl* control = PnPControl::GetInstance();
|
|
BOOL ret = control->ReadPort(port, buf, size);
|
|
PnPControl::CloseInstance();
|
|
return ret;
|
|
}
|
|
|
|
DLL_API BOOL WritePort ( PVOID port, PVOID buf, ULONG size )
|
|
{
|
|
PnPControl* control = PnPControl::GetInstance();
|
|
BOOL ret = control->WritePort(port, buf, size);
|
|
PnPControl::CloseInstance();
|
|
return ret;
|
|
}
|
|
|
|
DLL_API VOID ClosePort ( PVOID port )
|
|
{
|
|
PnPControl* control = PnPControl::GetInstance();
|
|
control->ClosePort(port);
|
|
PnPControl::CloseInstance();
|
|
}
|
|
|
|
DLL_API UINT NumPorts(void)
|
|
{
|
|
PnPControl* control = PnPControl::GetInstance();
|
|
UINT ret = (UINT)control->NumPorts();
|
|
PnPControl::CloseInstance();
|
|
return ret;
|
|
}
|
|
|
|
DLL_API wchar_t* PortSymbolicName ( int index )
|
|
{
|
|
PnPControl* control = PnPControl::GetInstance();
|
|
wchar_t* ret = control->PortSymbolicName(index);
|
|
PnPControl::CloseInstance();
|
|
return ret;
|
|
}
|
|
|
|
DLL_API VOID RegisterNotification(PVOID port, VIOSERIALNOTIFYCALLBACK pfn, PVOID ptr)
|
|
{
|
|
PnPControl* control = PnPControl::GetInstance();
|
|
control->RegisterNotification(port, pfn, ptr);
|
|
PnPControl::CloseInstance();
|
|
}
|