Fix installation of VMware display driver
Modified: trunk/reactos/bootdata/hivesys.inf
_____
Modified: trunk/reactos/bootdata/hivesys.inf
--- trunk/reactos/bootdata/hivesys.inf 2005-11-18 17:28:19 UTC (rev
19325)
+++ trunk/reactos/bootdata/hivesys.inf 2005-11-18 18:48:14 UTC (rev
19326)
@@ -631,6 +631,18 @@
01,00,00,00,01,00,01,00,01,00,00,00, \
00,06,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+; We need the PCI bus to be installed at 3rd boot to enumerate display
cards and to
+; not have the "CsrServerInitialization: failed to initialize video
(Status=c0000001)"
+; error when a custom driver (as the VMware one) is installed. At the
moment,
+; StartServiceW is not implemented, so PlugPlay service can't start
during
+; second stage setup. => We have to code PCI bus parameters it in
registry...
+HKLM,"SYSTEM\CurrentControlSet\Enum\Root\*PNP0A03\0000","Service",0x000
00000,"pci"
+HKLM,"SYSTEM\CurrentControlSet\Services\PCI","ErrorControl",0x00010001,
0x00000003
+HKLM,"SYSTEM\CurrentControlSet\Services\PCI","Group",0x00000000,"Boot
Bus Extender"
+HKLM,"SYSTEM\CurrentControlSet\Services\PCI","ImagePath",0x00020000,"sy
stem32\drivers\pci.sys"
+HKLM,"SYSTEM\CurrentControlSet\Services\PCI","Start",0x00010001,0x00000
000
+HKLM,"SYSTEM\CurrentControlSet\Services\PCI","Type",0x00010001,0x000000
01
+
; ACPI bus
HKLM,"SYSTEM\CurrentControlSet\Enum\Root\*PNP0C08\0000","HardwareID",0x0
0010000,"*PNP0C08"
HKLM,"SYSTEM\CurrentControlSet\Enum\Root\*PNP0C08\0000","DeviceDesc",0x0
0000000,"ACPI bus"
Prevent the reinstall of devices that use the NULL driver at each reboot
Modified: trunk/reactos/ntoskrnl/io/pnpmgr.c
_____
Modified: trunk/reactos/ntoskrnl/io/pnpmgr.c
--- trunk/reactos/ntoskrnl/io/pnpmgr.c 2005-11-18 11:49:51 UTC (rev
19323)
+++ trunk/reactos/ntoskrnl/io/pnpmgr.c 2005-11-18 16:42:41 UTC (rev
19324)
@@ -2063,6 +2063,11 @@
}
#endif
+ if (DeviceNode->ServiceName.Length == 0)
+ /* We have a NULL driver for this device. We can't really do
+ * something with it, so state it is started... */
+ IopDeviceNodeSetFlag(DeviceNode, DNF_STARTED);
+
if (!IopDeviceNodeHasFlag(DeviceNode, DNF_DISABLED) &&
!IopDeviceNodeHasFlag(DeviceNode, DNF_ADDED) &&
!IopDeviceNodeHasFlag(DeviceNode, DNF_STARTED))