获取 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);
我使用了下面的代码,但它给出了文件路径的结果。
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);