flyndis
驱动牛犊
驱动牛犊
  • 注册日期2001-12-20
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1254回复:8

关于VXD的问题

楼主#
更多 发布于:2001-12-22 10:52
用VTOOLSD编译的VXD,用CreateFile打开时,返回0xffffffff.
该VXD是在别人的基础上修改的,编译改前的,用CreateFile打开
则没有问题。编译命令为:nmake /A /f Debug.mak

最新喜欢:

flyajiflyaji
用激情去创造,用热情去灌溉!
buddy
驱动牛犊
驱动牛犊
  • 注册日期2001-12-10
  • 最后登录2007-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-12-23 17:11
createfile后用getlasterror得到错误的原因,再修改!
云帆
flyndis
驱动牛犊
驱动牛犊
  • 注册日期2001-12-20
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-12-24 09:34
GetLastError的返回值是50,得到错误的原因是:”不支持此网络请求“。

我是用,
#define NET_DEVICE_NAME \"\\\\\\\\.\\\\NETVXD\"
g_hDriver = CreateFile(
           NET_DEVICE_NAME GENERIC_READ | GENERIC_WRITE,
0,
0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,
NULL
);
打开VXD的,哪为大虾帮帮忙啊!!!!

用激情去创造,用热情去灌溉!
iamaf~1
驱动小牛
驱动小牛
  • 注册日期2001-09-23
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-12-24 10:45
GetLastError的返回值是50,得到错误的原因是:”不支持此网络请求“。

我是用,
#define NET_DEVICE_NAME \"\\\\\\\\.\\\\NETVXD\"
g_hDriver = CreateFile(
           NET_DEVICE_NAME GENERIC_READ | GENERIC_WRITE,
0,
0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,
NULL
);
打开VXD的,哪为大虾帮帮忙啊!!!!

 





如果是静态加载, 请用
#define NET_DEVICE_NAME \"\\\\\\\\.\\\\NETVXD\"
g_hDriver = CreateFile( NET_DEVICE_NAME, 0, 0, NULL,
0, FILE_FLAG_OVERLAPPED,
NULL );

如果是动态加载, 请用

#define NET_DEVICE_NAME \"\\\\\\\\.\\\\NETVXD.VXD\"
g_hDriver = CreateFile(  NET_DEVICE_NAME, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, NULL,
0, FILE_FLAG_OVERLAPPED,
NULL );
这个论坛不支持长用户名,害得我iamafraid 只好叫iamaf~1了...
flyndis
驱动牛犊
驱动牛犊
  • 注册日期2001-12-20
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-12-24 11:55
我怀疑是我在VXD的入口处为一个全局变量分配内存造成的,
我是用VTOOLSD的HeapAllocate在系统的堆上分配的,而且是
ring0层,请问VXD中有没有象WDM中ExAllocatePool分配内存的
函数,因为是用VTOOLSD的方式编译,所以ExAllocatePool不能用。
我的VXD是静态加载的,请问用softice怎样在静态加载VXD时进入
DriverEntry跟踪调试,动态加载的VXD是否还必须放到系统目录下,
是否要写注册表。
用激情去创造,用热情去灌溉!
iamaf~1
驱动小牛
驱动小牛
  • 注册日期2001-09-23
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-12-24 12:02
我怀疑是我在VXD的入口处为一个全局变量分配内存造成的,
我是用VTOOLSD的HeapAllocate在系统的堆上分配的,而且是
ring0层,请问VXD中有没有象WDM中ExAllocatePool分配内存的
函数,因为是用VTOOLSD的方式编译,所以ExAllocatePool不能用。
我的VXD是静态加载的,请问用softice怎样在静态加载VXD时进入
DriverEntry跟踪调试,动态加载的VXD是否还必须放到系统目录下,
是否要写注册表。



晕倒, 第一次听说 vxd还有 driverentry....
这个论坛不支持长用户名,害得我iamafraid 只好叫iamaf~1了...
flyndis
驱动牛犊
驱动牛犊
  • 注册日期2001-12-20
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-12-25 11:10
不好意思,刚开始没说清楚,我在做一个98下的NDIS,编译成VXD,
所说的的入口是NDIS的DriverEntry,现在问题已经找到了,由于我
粗心,把case DIOC_OPEN:给删掉了,故CreateFile不成功。
用激情去创造,用热情去灌溉!
iamaf~1
驱动小牛
驱动小牛
  • 注册日期2001-09-23
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-12-25 15:11
不好意思,刚开始没说清楚,我在做一个98下的NDIS,编译成VXD,
所说的的入口是NDIS的DriverEntry,现在问题已经找到了,由于我
粗心,把case DIOC_OPEN:给删掉了,故CreateFile不成功。


恭喜恭喜
这个论坛不支持长用户名,害得我iamafraid 只好叫iamaf~1了...
flyndis
驱动牛犊
驱动牛犊
  • 注册日期2001-12-20
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-12-26 13:26
 ;)同喜,同喜,多谢iamaf~1兄捧场!!!
用激情去创造,用热情去灌溉!
游客

返回顶部