about get the full file name

NTSTATUS GetFilePathFromFileObj(PFILE_OBJECT file,PUNICODE_STRING filename)
{
NTSTATUS status;
POBJECT_NAME_INFORMATION objectnameinfo;
WCHAR buf[512]={0};
PVOID objptr=NULL;
ULONG length;
BOOLEAN needsplit=FALSE;
if (!file)
{
return STATUS_INVALID_PARAMETER;
}
if (file->FileName.Buffer==NULL)
{
return STATUS_INVALID_PARAMETER;
}
objectnameinfo=(POBJECT_NAME_INFORMATION)buf;
do
{
if (file->RelatedFileObject)
{
objptr=(PVOID)file->RelatedFileObject;
}
else
{
objptr=(PVOID)file->DeviceObject;
}
status=ObQueryNameString(objptr,objectnameinfo,sizeof(buf),&length);
if (!NT_SUCCESS(status))
{
break;
}

if (file->FileName.Length>2 &&
file->FileName.Buffer[0]!=L’\’ &&
objectnameinfo->Name.Buffer[objectnameinfo->Name.Length/sizeof(WCHAR)-1]!=L’\’
)
{
needsplit=TRUE;
}
length=objectnameinfo->Name.Length+file->FileName.Length+(needsplit?sizeof(WCHAR):0);
if (filename->MaximumLength{
status=STATUS_INSUFFICIENT_RESOURCES;
break;
}
RtlCopyUnicodeString(filename,&objectnameinfo->Name);
if (needsplit)
{
RtlAppendUnicodeToString(filename,L"\");
}
RtlAppendUnicodeStringToString(filename,&file->FileName);
} while (FALSE);
return status;
}

2010-07-21

364589886

RE: [ntfsd] about get the full file name

Anybody have even the smallest, tiniest, barest CLUE as to what this is supposed to be?

Or even why I shouldn’t delete the text of this post from the archives and lock the thread??

Peter
OSR