Opened 8 years ago
#15870 new defect
Parallel port passthrough support - bug in I/O resource scanning
Reported by: | lelekx | Owned by: | |
---|---|---|---|
Component: | other | Version: | VirtualBox 5.1.4 |
Keywords: | parallel port | Cc: | |
Guest type: | all | Host type: | Windows |
Description
English is not my mother tongue; please excuse any errors on my part.
In certain circumstances, Virtualbox is unable to detect correct base I/O address of a parallel port. This happens when the parallel port is an add-on card (PCI, PCIe, ExpressCard). The device driver consists of two parts: bus enumerator and the parallel port itself. The first device has assigned all I/O and IRQ, while the LPT port has no resources at all.
There are two functions involved:
drvHostParallelGetWinHostIoPorts(PDRVHOSTPARALLEL pThis)
and
drvHostParallelGetWinHostIoPortsSub(const DEVINST DevInst)
The second function looks for a device and enumerates its I/O resources. As the LPT port lacks of any resources, the function fails. The caller then fails silently, there is no evidence in log files that the passthrough is defunct.
I don't have VS2010 and I cannot make a build environment to test my changes to the code. If I could only create a build environment, I would attempt to make a workaround to let user specify LPT's I/O base (IRQ is not important), or fix it to make it list bus enumerators and query them for their I/O addresses.