- Also stub ObpDeleteSymbolicLinkName since it'll probably be needed later.
svn path=/trunk/; revision=25385
OUT PVOID *NextObject
);
+VOID
+NTAPI
+ObpCreateSymbolicLinkName(
+ IN POBJECT_SYMBOLIC_LINK SymbolicLink
+);
+
+VOID
+NTAPI
+ObpDeleteSymbolicLinkName(
+ IN POBJECT_SYMBOLIC_LINK SymbolicLink
+);
+
//
// Process/Handle Table Init/Rundown
//
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)
{
if (ObjectType == ObSymbolicLinkType)
{
/* Create the internal name */
- DPRINT("FIXME: Created link!\n");
- //ObpCreateSymbolicLinkName(FoundObject);
+ ObpCreateSymbolicLinkName(Object);
}
}
}
else
{
/* Directory without a name, we add "..." */
- DPRINT("Nameless Directory\n");
ObjectName -= sizeof(L"...");
ObjectName = L"...";
break;
/* 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
*