lxg
lxg
驱动牛犊
驱动牛犊
  • 注册日期2001-12-23
  • 最后登录2005-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1016回复:6

why vxd 不能加载

楼主#
更多 发布于:2002-01-18 21:35
我的程序如下:
#include \"stdafx.h\"
#include <iostream.h>
#include <windows.h>
#include <winioctl.h>
#define DIOC_MY_IO CTL_CODE(FILE_DEVICE_UNKNOWN,1,METHOD_NEITHER,FILE_ANY_ACCESS)

int main()
{
HANDLE hDevice;
hDevice=CreateFile(\"\\\\\\\\.\\\\First.VXD\",0,0,0,OPEN_EXISTING,
FILE_FLAG_DELETE_ON_CLOSE,0);

if(hDevice==INVALID_HANDLE_VALUE)
{
cout<<\"open vxd error\"<<endl;
exit(1);
}
DeviceIoControl(hDevice,DIOC_MY_IO,NULL,0,NULL,0,NULL,NULL);
CloseHandle(hDevice);
return 0;
}运行出现open vxd error    

first.vxd以和consle程序放在同一目录下,请较大虾们
cogi
驱动牛犊
驱动牛犊
  • 注册日期2001-10-22
  • 最后登录2002-03-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-01-19 13:36
你在VXD的OPEN里返回了什么?必须是0才对
cogi
lxg
lxg
驱动牛犊
驱动牛犊
  • 注册日期2001-12-23
  • 最后登录2005-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-01-19 15:48
lxg
lxg
驱动牛犊
驱动牛犊
  • 注册日期2001-12-23
  • 最后登录2005-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-01-19 15:48
我返回的是0
lxg
lxg
驱动牛犊
驱动牛犊
  • 注册日期2001-12-23
  • 最后登录2005-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-01-19 19:31
你只得是那里的open
ym_li
驱动牛犊
驱动牛犊
  • 注册日期2001-11-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-01-22 10:10
win98系统,把你的vxd拷在windows\\system目录下,就可以了。
 ;)
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2002-01-24 15:13
其实你完全可以不用CTL_CODE宏的,随便什么code都可以的,只要不是0。
在你的OnWin32DeviceIoControl里面,io code=0时候,要返回0,表明你的VxD支持DeviceIocontrol。
游客

返回顶部