- Implement ObpCreateSymbolicLinkName and enable call to the function. It shouldn...
authorAlex Ionescu <aionescu@gmail.com>
Mon, 8 Jan 2007 19:52:49 +0000 (19:52 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Mon, 8 Jan 2007 19:52:49 +0000 (19:52 +0000)
- Also stub ObpDeleteSymbolicLinkName since it'll probably be needed later.

svn path=/trunk/; revision=25385

reactos/ntoskrnl/include/internal/ob.h
reactos/ntoskrnl/ob/obdir.c
reactos/ntoskrnl/ob/obhandle.c
reactos/ntoskrnl/ob/obname.c
reactos/ntoskrnl/ob/symlink.c

index a0ae504..211a05b 100644 (file)
@@ -149,6 +149,18 @@ ObpParseSymbolicLink(
     OUT PVOID *NextObject
 );
 
+VOID
+NTAPI
+ObpCreateSymbolicLinkName(
+    IN POBJECT_SYMBOLIC_LINK SymbolicLink
+);
+
+VOID
+NTAPI
+ObpDeleteSymbolicLinkName(
+    IN POBJECT_SYMBOLIC_LINK SymbolicLink
+);
+
 //
 // Process/Handle Table Init/Rundown
 //
index 5cb37be..b5b4929 100644 (file)
@@ -719,10 +719,6 @@ NtCreateDirectoryObject(OUT PHANDLE DirectoryHandle,
     NTSTATUS Status = STATUS_SUCCESS;
     PAGED_CODE();
 
-    DPRINT("NtCreateDirectoryObject(DirectoryHandle %x, "
-            "DesiredAccess %x, ObjectAttributes %x\n",
-            DirectoryHandle, DesiredAccess, ObjectAttributes);
-
     /* Check if we need to do any probing */
     if(PreviousMode != KernelMode)
     {
index c88c594..4adfe5a 100644 (file)
@@ -2506,8 +2506,7 @@ ObInsertObject(IN PVOID Object,
             if (ObjectType == ObSymbolicLinkType)
             {
                 /* Create the internal name */
-                DPRINT("FIXME: Created link!\n");
-                //ObpCreateSymbolicLinkName(FoundObject);
+                ObpCreateSymbolicLinkName(Object);
             }
         }
     }
index ecbbbe7..c72bfe6 100644 (file)
@@ -828,7 +828,6 @@ ObQueryNameString(IN PVOID Object,
             else
             {
                 /* Directory without a name, we add "..." */
-                DPRINT("Nameless Directory\n");
                 ObjectName -= sizeof(L"...");
                 ObjectName = L"...";
                 break;
index 1f71072..4107998 100644 (file)
@@ -19,6 +19,39 @@ POBJECT_TYPE ObSymbolicLinkType = NULL;
 
 /* PRIVATE FUNCTIONS *********************************************************/
 
+VOID
+NTAPI
+ObpDeleteSymbolicLinkName(IN POBJECT_SYMBOLIC_LINK SymbolicLink)
+{
+    /* FIXME: Device maps not supported yet */
+
+}
+
+VOID
+NTAPI
+ObpCreateSymbolicLinkName(IN POBJECT_SYMBOLIC_LINK SymbolicLink)
+{
+    POBJECT_HEADER ObjectHeader;
+    POBJECT_HEADER_NAME_INFO ObjectNameInfo;
+
+    /* Get header data */
+    ObjectHeader = OBJECT_TO_OBJECT_HEADER(SymbolicLink);
+    ObjectNameInfo = OBJECT_HEADER_TO_NAME_INFO(ObjectHeader);
+
+    /* Check if we are not actually in a directory with a device map */
+    if (!(ObjectNameInfo) ||
+        !(ObjectNameInfo->Directory) ||
+        !(ObjectNameInfo->Directory->DeviceMap))
+    {
+        /* There's nothing to do, return */
+        return;
+    }
+
+    /* FIXME: We don't support device maps yet */
+    DPRINT1("Unhandled path!\n");
+    KEBUGCHECK(0);
+}
+
 /*++
 * @name ObpDeleteSymbolicLink
 *