Author: cgutman
Date: Mon Mar 12 01:53:20 2012
New Revision: 56125
URL: http://svn.reactos.org/svn/reactos?rev=56125&view=rev
Log:
[NTOSKRNL]
- It appears that the driver unloading code is more profoundly broken that I had previously thought. I ran into issues testing with videoprt which would call IoCreateDevice and IoDeleteDevice during enumeration of child devices. The issue arose when the IoDeleteDevice call unloaded the video driver which was currently initializing. This caused video initialization to fail and the system to shutdown.
- Disable this code completely for now until the proper algorithm for determining when a driver should unload is found
Modified:
trunk/reactos/ntoskrnl/io/iomgr/device.c
Modified: trunk/reactos/ntoskrnl/io/iomgr/device.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/device.c…
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/device.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/device.c [iso-8859-1] Mon Mar 12 01:53:20 2012
@@ -364,6 +364,7 @@
NTAPI
IopUnloadDevice(IN PDEVICE_OBJECT DeviceObject)
{
+#if 0
PDRIVER_OBJECT DriverObject = DeviceObject->DriverObject;
PEXTENDED_DEVOBJ_EXTENSION ThisExtension = IoGetDevObjExtension(DeviceObject);
PDEVICE_NODE DeviceNode = IopGetDeviceNode(DeviceObject);
@@ -463,7 +464,7 @@
/* Dereference once more, referenced at driver object creation */
ObDereferenceObject(DriverObject);
-
+#endif
}
VOID