Hello,
I'm trying to build a custom display adapter, but I am having some trouble. I have taken DevVGA.cpp and stripped it down a bit, just to try to get something working. I may have other problems, but here is where I currently am...
I've set the VM to have no display adapter in VirtualBox Manager (Graphics Controller = None).
I then pass in, via config, these.
00:00:00.946672 Extradata overrides:
00:00:00.946815 VBoxInternal/Devices/bga/0/Config/MonitorCount="1"
00:00:00.946866 VBoxInternal/Devices/bga/0/LUN#0/Driver="MainDisplay"
00:00:00.946933 VBoxInternal/Devices/bga/0/LUN#999/Config/First="0"
00:00:00.946967 VBoxInternal/Devices/bga/0/LUN#999/Config/Last="0"
00:00:00.947017 VBoxInternal/Devices/bga/0/LUN#999/Config/papLeds="45800128"
00:00:00.947067 VBoxInternal/Devices/bga/0/LUN#999/Driver="MainStatus"
00:00:00.947117 VBoxInternal/PDM/Devices/bga/Path="C:\Ben\bin2\DevBGA.dll"
I have no idea if the LUN999 stuff does anything, but I see the base code doing it...
I try to stitch in the MainDisplay
VBoxInternal/Devices/bga/0/LUN#0/Driver="MainDisplay"
The original vga device, via ConsoleImpl2.cpp, passes in a parameter called Object, which appears to be a pointer, so I don't add that...
00:00:00.959510 [/Devices/vga/0/LUN#0/Config/] (level 5)
00:00:00.959510 Object <integer> = 0x0000000002b43920 (45 365 536)
So, when I run...
I am in vgaAttach, and an excption is thrown in PDMDevHlpDriverAttach.
caller was int rc = PDMDevHlpDriverAttach(pDevIns, iLUN, &pThisCC->IBase, &pThisCC->pDrvBase, "Display Port");
00:00:00.983050 vgaAttach: LUN=0
00:00:00.983054 vgaAttach: PDMDevHlpDriverAttach
00:00:00.983150
00:00:00.983151 !!! rtR3WinUnhandledXcptFilter caught an exception on thread 0000000000004e3c!!!
00:00:00.983156
00:00:00.983156 ExceptionCode=0xc0000005 ExceptionFlags=0x00000000 ExceptionAddress=00007ffc46238961
00:00:00.983161 ExceptionInformation[0]=0000000000000000
00:00:00.983165 ExceptionInformation[1]=0000000000000018
So, I failed to attach the display so badly, the app crashes!
I'm thinking Object, passed by ConsoleImpl2.cpp is probably required, but how do I pass that, as I'm in PDM and config file land?
Any thoughts or suggestions would be greatly appreciated.
Thank you for your time,
Ben