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?rev=56125&r1=56124&r2=56125&view=diff
==============================================================================
--- 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


Reply via email to