此代码的前两行显示不包括设备名称的文件名,如/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);