如何显示当前打开文件的设备名称的绝对路径

时间:2013-03-19 08:00:03

标签: c++ windows filter-driver

此代码的前两行显示文件名,不包括设备名称,如 / Document / temp 但我想要 显示设备名称,如L“\ Device \ Harddisk0 \ DR0 \ Document \ temp。我使用此代码调用ObQueryNameString例程,但它显示为NULL。

请告诉我代码有什么问题。我认为记忆不是分配的 正常。

PFILE_OBJECT pFileObject = IoGetCurrentIrpStackLocation(Irp)->FileObject;
if (pFileObject)
{
        DbgPrint("FileName : %wZ\n", pFileObject->FileName);
}

NTSTATUS status = STATUS_UNSUCCESSFUL;

OBJECT_NAME_INFORMATION objName = {0};
ULONG ReturnLength = 1024;  

ObQueryNameString(DeviceObject, objName, sizeof(objName), ReturnLength);

DbgPrint("FileName : %wZ\n", &objName);

1 个答案:

答案 0 :(得分:-2)

您是否考虑过使用GetFullPathName函数? 请参阅http://msdn.microsoft.com/en-us/library/aa364963%28VS.85%29.aspx以获得更准确的解释。