weiden(a)svn.reactos.com wrote:
Modified: trunk/reactos/ntoskrnl/io/device.c
--- trunk/reactos/ntoskrnl/io/device.c 2005-04-19 15:06:18 UTC (rev
14702)
+++ trunk/reactos/ntoskrnl/io/device.c 2005-04-19 17:12:03 UTC (rev
14703)
@@ -385,9 +385,15 @@
/* Initialize the Object Attributes */
InitializeObjectAttributes(&ObjectAttributes, DeviceName, 0, NULL,
NULL);
- /* Honour exclusive flag */
+ /* Honor exclusive flag */
ObjectAttributes.Attributes |= OBJ_EXCLUSIVE;
+ /* Create a permanent object for named devices */
+ if (DeviceName != NULL)
+ {
+ ObjectAttributes.Attributes |= OBJ_PERMANENT;
+ }
+
/* Align the Extension Size to 8-bytes */
AlignedDeviceExtensionSize = (DeviceExtensionSize + 7) &~ 7;
DPRINT("AlignedDeviceExtensionSize %x\n",
AlignedDeviceExtensionSize);
_____
I think this is not correct. If the name is permanent, IoDeleteDevice
isn't able to delete a device. Currently it exist a bug, which does also
prevent from deleting a device. IoDeleteDevice doesn't dereference the
driver object.
- Hartmut