-1

/Document/tempのようなデバイス名を除くファイル名を示すこのコードの最初の 2 行ですが、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);
4

1 に答える 1

-2

GetFullPathName 関数の使用を検討しましたか? より正確な説明については、 http://msdn.microsoft.com/en-us/library/aa364963%28VS.85%29.aspxを参照してください。

于 2013-03-19T08:17:21.110 に答える