weiden@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