获取minifilter驱动程序

时间:2015-04-22 11:31:47

标签: c winapi driver wdk minifilter

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

这是最好的解决方案,但它不再使用Drive letter。但是使用Volume GUID

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