2192|0

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

修改FILE_OJBECT结构里的盘符问题???分不多,请高手看看啊!! [复制链接]

PVOID pFileNameBuffer = NULL;
// 对象头 = pFileObject->DeviceObject + 0x18
POBJECT_HEADER pObjectHeader = OBJECT_TO_OBJECT_HEADER(pFileObject->DeviceObject);
// _OBJECT_HEADER_NAME_INFO在_OBJECT_HEADER中和偏移
ULONG ulNameInfoOffset = pObjectHeader->NameInfoOffset;
// 整数 - 整数 (不要写成指针 - 整数)
// _OBJECT_HEADER_NAME_INFO = 对象头 - 0x10
ULONG ulObjectNameInfo = (ULONG)pObjectHeader - ulNameInfoOffset;
// _UNICODE_STRING 偏移  + 0x004
PUNICODE_STRING pusVloumeName = (PUNICODE_STRING)(ulObjectNameInfo + 0x004);
RtlInitUnicodeString(&usNewFileName,L"HarddiskVolume2");
pFileNameBuffer = ExAllocatePool(NonPagedPool,pusVloumeName->MaximumLength);
if (!pFileNameBuffer)
{
ntStatus = STATUS_UNSUCCESSFUL;
return ntStatus;
}
/ 把原来的释放
ExFreePool(pusVloumeName->Buffer);
pusVloumeName->Buffer = pFileNameBuffer;
pusVloumeName->Length = usNewFileName.Length;
pusVloumeName->MaximumLength = usNewFileName.MaximumLength;
RtlCopyUnicodeString(pusVloumeName,&usNewFileName);
DbgPrint(" [%ws] len %d \r\n",pusVloumeName->Buffer,pusVloumeName->Length);
ntStatus = RtlVolumeDeviceToDosName(pFileObject->DeviceObject,&usDosName);

以上是我通过FILE_OBJECT的修改过程 ,在C盘上存文件时,转到“HarddiskVolume2”第二个卷上,但求得的usDosName还是C盘!原因不明,请高手指教!!!!!!!!!!!

点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表