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

版主、高手请帮忙,很有挑战性的问题

楼主#
更多 发布于:2002-07-24 15:01
用paththru改写的驱动程序,在Administrator下安装好可用,但到了普通用户登录时,就出现中途出错,弹出的对话框是QuerryDriver提示错误:The MAC handle is invalid。
用源程序跟踪时,发现在CreatFile()函数时出现错误,可能是普通用户无权限写设备的原因。不知哪位同仁也遇到过该问题,怎么解决呢?请高手们指点一下吧。
bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-25 15:41
错误是什么啊,可不可以说的更详细些,你都改了些什么
lilylily
驱动牛犊
驱动牛犊
  • 注册日期2002-07-11
  • 最后登录2004-03-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-29 10:55
错误主要出在下面打开miniport设备时无效。具体操作如下,在administrator身份下这样打开是对的,但在普通用户登陆时打开却不正确。调试时GetLastError()返回的数据值为0。

分析原因是不是设备文件名在普通用户下不能写成\"\\\\\\\\.\\\\ms_sfilter\"?

szMACFileName=\"\\\\\\\\.\\\\ms_sfilter\";
hDevice = CreateFile(
                szMACFileName,
                GENERIC_READ,
                FILE_SHARE_READ | FILE_SHARE_WRITE,//
                NULL,
                OPEN_EXISTING,//ALWAYS,//
                0,
                INVALID_HANDLE_VALUE
                );

if(hDevice == INVALID_HANDLE_VALUE)
{
AfxMessageBox(\"The MAC handle is invalid.\\n\");
DWORD err=GetLastError();
CString str;
str.Format(\"%d\",err);
AfxMessageBox(str);
hDevice = NULL;
}
else
AfxMessageBox(\"The MAC handle is OK.\\n\");
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-29 11:11
CreateFile里面有好多的参数,好象有一个是关于安全的,我不太清楚,不知道是不是和这个有关,只是猜想!
游客

返回顶部