ObCreateObject should return an existing named object if one already exist. Modified: trunk/reactos/ntoskrnl/ob/object.c _____
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