ObCreateObject should return an existing named object if one already exist.
Modified: trunk/reactos/ntoskrnl/ob/object.c
--- trunk/reactos/ntoskrnl/ob/object.c 2005-04-08 22:19:39 UTC (rev 14559) +++ trunk/reactos/ntoskrnl/ob/object.c 2005-04-09 09:37:32 UTC (rev 14560) @@ -712,8 +712,13 @@
if (ParentHeader && RemainingPath.Buffer == NULL) {
- ObDereferenceObject(Parent);
- return STATUS_OBJECT_NAME_COLLISION;
+ if (ParentHeader->ObjectType != Type)
+ {
+ ObDereferenceObject(Parent);
+ return STATUS_OBJECT_NAME_COLLISION;
+ }
+ *Object = Parent;
+ return STATUS_OBJECT_EXISTS;
} } else