Hi,
The QXL driver used by SPICE (an open-source VDI project based on QEMU) fails to start when the associated PCI device is set as multifunction (code 10 in device properties dialog). It’s a traditional WDM/NT driver.
If you have some time to spare here are the relevant source files:
http://cgit.freedesktop.org/spice/win32/qxl/tree/miniport/qxl.c
http://cgit.freedesktop.org/spice/win32/qxl/tree/miniport/qxl.inf
Being new to windows & driver development, but interested to learn, I took the opportunity to look at this issue.
With windbg (and debugviewer), I noticed the DriverEntry() is called, and doesn’t return error. But no other function from the miniport driver gets called.
I managed to get checked build running with symbols, and could set various debug masks: IHVVIDEO, IHVDRIVER, PCI, NTOSPNP, PNPMGR. However, my not exercised eyes fails to find something useful. Should I use other debug masks, look at some files, other windbg commands? (I don’t know how to read Cmd and Sts from !pci output)
I thought about setting up an inf with a “system multifunction bus driver”, but I don’t think it’s necessary for pci devices, since other devices load correctly without it.
thanks for your help!