yuqiang
驱动牛犊
驱动牛犊
  • 注册日期2001-09-06
  • 最后登录2001-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1371回复:2

一个小问题,对我很急的!!!!

楼主#
更多 发布于:2001-09-30 12:46
为什么我写了一个dynamic 的vxd,用win32汇编写的程序
可以用CreateFile(.....,FILE_FLAG_DELETE_ON_CLOSE,..),
把它加载,可是用sdk和mfc写的程序用同样的方法却不能够
把它加载(我用了DeviceIoControl函数,可是没有反应,用
win32汇编写的windows程序却可以)!!!

实现方法是一样的,为什么不行啊?????

程序在附件中,请仔细看一下!!!!
发e-mail告诉我,谢谢了!!!!

yuqiang0304@163.net
yuqiang3@263.net
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
沙发#
发布于:2001-09-30 13:04
将CreateFile("\\shellmsg.vxd",0,0,NULL,0,
FILE_FLAG_DELETE_ON_CLOSE,NULL);
改为
CreateFile("\\\\.\\shellmsg.vxd",0,0,NULL,0,
FILE_FLAG_DELETE_ON_CLOSE,NULL);

应该就没有问题了
dolphin
驱动中牛
驱动中牛
  • 注册日期2001-04-30
  • 最后登录2013-03-08
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望23点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-09-30 13:10
     我的一段源码:
……
hDevice=CreateFile("\\\\.\\tpl.vxd",0,0,0,CREATE_NEW,FILE_FLAG_DELETE_ON_CLOSE,0);   //FILE_ATTRIBUTE_READONLY


if(hDevice==INVALID_HANDLE_VALUE)
{

::AfxMessageBox("Open VXD error");
exit(1);
}
……
// Map the allocated buffer in the vxd

mbargs.m_address = AppBuffer;
mbargs.m_size = APP_BUFFER_SIZE;

DevIoStatus =DeviceIoControl(
hDevice,
SHAREMEM_MAP_BUFFER,
&mbargs,
sizeof(mbargs),
&MappedAddress,
sizeof(MappedAddress),
&nReturned,
NULL
);



if ( ! DevIoStatus )
{
    fprintf(stderr, "Failed to map buffer\n");
exit(1);
}

[b]弃我去者昨日之日不可留,乱我心者今日之日多烦忧。[/b]
游客

返回顶部