社区
硬件/系统
帖子详情
确认及寻求解决办法 非管理员用户是否不能使用CREATFILE开启\\.\physicaldriver1类似的U盘?
stecdeng
2011-08-31 03:46:36
如题 代码在管理员权限运行无错 在POWER USER下运行就不能开启physicaldriver1的U盘
...全文
106
6
打赏
收藏
确认及寻求解决办法 非管理员用户是否不能使用CREATFILE开启\\.\physicaldriver1类似的U盘?
如题 代码在管理员权限运行无错 在POWER USER下运行就不能开启physicaldriver1的U盘
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
stecdeng
2011-09-03
打赏
举报
回复
还是不能解决问题 算了 结贴
stecdeng
2011-09-02
打赏
举报
回复
谢谢 是RtlVolumeDeviceToDosName
我需要的是写磁盘设备 那么还是。。。。
是这样的 我写的驱动挂载在注册表CLASS的卷项目下
这样USB卷加载时候,我通过截获的USB的DEVICEOBJECT->VPB->Realdevice 获取到磁盘设备(现在也不知道是不是磁盘设备的设备对象指针了 糊涂了)
然后才进行上面的操作status = ObQueryNameString 获得"\Device\Harddisk1\DP(1)0-0+7
但是创建句柄 返回STATUS_NO_SUCH_DEVICE ((NTSTATUS)0xC000000EL)
我观察其他驱动也是截获此U盘设备对象创建的名字是\Device\Harddisk1\DR6 读写就正常
我应该如何从USB卷设备中获取卷所在的USB磁盘设备并创建句柄进行读写?
谢谢xiaoc1026
分应该给你 如果能帮我解决这个问题更好
再次感谢回复的各位
见习学术士
2011-09-01
打赏
举报
回复
你这个路径是设备名,应该通过RtlVolumeDeviceToDosName转成逻辑路径
另外ZwCreateFile 的 IRQL 是 PASS_LEVEL
stecdeng
2011-09-01
打赏
举报
回复
提权在产品里 估计难
主要是不能打开磁盘设备比较头痛
我想尝试在驱动里解决
问题如下 解决了加分 谢谢
已知卷设备对象 如何获取卷所在磁盘的句柄并进行磁盘读写?
我写了一个卷过滤驱动 想截获卷加载的时候读取它所在的磁盘内容 但是问题如下:
//根据卷设备的VPB获得磁盘设备
DeviceObject= 卷设备的VPB->RealDevice
那么磁盘设备对象就是已知了 那么如何获得句柄HANDLE 来对磁盘进行读写?我进行了几次尝试未果
第一次是使用ObOpenObjectByPointer 通过设备对象来获得句柄句柄HANDLE
但是在ZwReadFile使用这个句柄对磁盘读写 返回类型错误
然后我尝试使用ObQueryNameString
//根据卷设备的VPB获得磁盘设备
DeviceObject= 卷设备的VPB->RealDevice
获得磁盘设备然后
status = ObQueryNameString (DeviceObject,
PFileNameInfo,
NumberOfBytes,
&LengthNeeded); //这里名字获得成功 "\Device\Harddisk1\DP(1)0-0+7"
InitializeObjectAttributes(&ObjAttrib,&(PFileNameInfo->Name),
OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
NULL,NULL);
status = ZwCreateFile(&DeviceHandle,
GENERIC_READ,
&ObjAttrib,
&IoStatus,
NULL,
FILE_ATTRIBUTE_NORMAL,
0,
FILE_OPEN,
FILE_SYNCHRONOUS_IO_NONALERT,
NULL,
0);
if(!NT_SUCCESS(status))
{ //总失败 #define STATUS_NO_SUCH_DEVICE ((NTSTATUS)0xC000000EL)
ExFreePool (PFileNameInfo);
PFileNameInfo = NULL;
DbgPrint("IsSafeUSB() Create File Failed\n");
return status;
}
哪里的问题? 麻烦给点意见 谢谢
见习学术士
2011-08-31
打赏
举报
回复
现在的Windows系统是不允许非管理员身份的进程直接访问设备
你可以试着提权后再打开试试
无言猪
2011-08-31
打赏
举报
回复
只能用管理员权限,MSDN的CreateFile里面有说明.
c
reat
file
.rar_c
reat
file
在当前路径下创建一个文件,读者可以根据该思路改变路径和文件中内容。
c
reat
file
.zip_c
reat
file
这是我初学是自己写得,c++对文件进行添加内容,程序简单实用,对于初学者有帮助。
C
reat
File
.zip_MFC_c
reat
字符串_mfc c
reat
file
_mfc txt_mfc 字符串
Visual C++ MFC 做的txt文本指定字符串提取。
c
reat
File
.zip_c/C++_创建以当前系统时间为名称的文档_获取系统当前时间
使用
C/C++函数获取当前系统时间并以当前系统时间为名称创建文档
c语言实现机票管理系统源代码【毕设、程序设计答辩等】
/*1、
用户
和
管理员
及航班信息请以英文字母或数字输入*/ /*2、
管理员
账户为:boss,密码为:123。保存在txt文件中,需要修改请于程序中修改*/ /*3、部分文件读写为二进制读写,所以打开文件时会看到乱码*/ #include...
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章