获取 minifilter 驱动中的文件路径

Get file path in minifilter driver

我使用了下面的代码,但它给出了文件路径的结果。

status = FltGetFileNameInformation(Data,
        FLT_FILE_NAME_OPENED |
        FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP,
        &nameInfo);
    DbgPrint("\n Filename : %wZ",&nameInfo->Name);
\Device\HarddiskVolume1\Users\filename.ext

但我想要文件路径,因为我

c:\Users\Filename.ext

我怎样才能得到这个请帮忙。

这是最好的解决方案,但它再次不使用驱动器 letter.But 使用卷 GUID

更多: https://www.osr.com/nt-insider/2014-issue2/drive-letter-alternatives/

NameLength = (USHORT)dosName.MaximumLength + Data->Iopb->TargetFileObject->FileName.MaximumLength + 2;  
NameBuffer = ExAllocatePoolWithTag(PagedPool,NameLength,NC_MAPPING_TAG);
NameString.Length = 0;
NameString.MaximumLength = NameLength;
NameString.Buffer = NameBuffer;
RtlCopyUnicodeString(&NameString, &dosName);
RtlAppendUnicodeStringToString(&NameString, &Data->Iopb->TargetFileObject->FileName);