阅读:2416回复:4
普通用户下CreateFile()如何打开设备获得句柄?
在普通用户下使用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\"); } |
|
最新喜欢:![]() |
沙发#
发布于:2002-07-29 19:36
先分析分析错误代码再说~~~
|
|
板凳#
发布于:2002-07-29 16:30
不要FILE_SHARE_WRITE试试
|
|
地板#
发布于:2002-07-29 15:54
主分区有权限设置吧
|
|
|
地下室#
发布于:2002-07-29 15:36
书写错误,上面代码中的OPEN_ALWAYS应该是OPEN_EXISTING.写错了。
|
|