lilylily
驱动牛犊
驱动牛犊
  • 注册日期2002-07-11
  • 最后登录2004-03-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2416回复:4

普通用户下CreateFile()如何打开设备获得句柄?

楼主#
更多 发布于:2002-07-29 15:32
在普通用户下使用CreateFile()函数打开设备文件,出现的情况是打开软磁盘\"\\\\\\\\.\\\\A:\"成功,但是打开硬盘分区\"\\\\\\\\.\\\\C:\"却不成功。但是在administrator下二者都是可以的,不知道是什么原因?难道在普通用户身份下无法得到设备文件的句柄么?

下面是一个最简单的测试程序:
main()
{
HANDLE file;
file=CreateFile(
\"\\\\\\\\.\\\\C:\",
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_ALWAYS, 0,
INVALID_HANDLE_VALUE
);
if(file==INVALID_HANDLE_VALUE)
printf(\"Open C: is Error!\\n\");
else
);
printf(\"Open C: is Ok!\\n\");

file=CreateFile(
\"\\\\\\\\.\\\\A:\",
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_ALWAYS, 0,
INVALID_HANDLE_VALUE
);
if(file==INVALID_HANDLE_VALUE)
printf(\"Open A: is Error!\\n\");
else
printf(\"Open A: is Ok!\\n\");
}

最新喜欢:

sunmaculasunmac...
xdjm
驱动中牛
驱动中牛
  • 注册日期2001-04-02
  • 最后登录2024-01-25
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望25点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-07-29 19:36
先分析分析错误代码再说~~~
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-07-29 16:30
不要FILE_SHARE_WRITE试试
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-29 15:54
主分区有权限设置吧
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
lilylily
驱动牛犊
驱动牛犊
  • 注册日期2002-07-11
  • 最后登录2004-03-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-29 15:36
书写错误,上面代码中的OPEN_ALWAYS应该是OPEN_EXISTING.写错了。

 
游客

返回顶部