- Implement ObpCreateSymbolicLinkName and enable call to the function. It shouldn't do any work currently because we don't have DOS Device Maps.

- Also stub ObpDeleteSymbolicLinkName since it'll probably be needed later.

svn path=/trunk/; revision=25385
This commit is contained in:
Alex Ionescu 2007-01-08 19:52:49 +00:00
parent 76de33fe36
commit 8c9205dfd5
5 changed files with 46 additions and 7 deletions

View 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
//

View 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)
{

View 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);
}
}
}

View 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;

View 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
*