/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);