Two questions about VxD programming.(100分)

  • 主题发起人 主题发起人 rychu
  • 开始时间 开始时间
R

rychu

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟最近刚刚开始搞Vxd,现有两个小问题请教一下.

1. 假如我已经做了一个sample.vxd,现在应该怎样调用CreateFile?有人说把这个
sample.vxd放在要调用它的程序目录下,然后用CreateFile("////.//sample.vxd",...
我试了一下,好像不行的样子,GetLastError的返回值是2,即File not Found.
也有的是这样子:
CreateFile("sample.vxd",0,0,NULL,0,FILE_FLAG_DELETE_ON_CLOSE,NULL);
这样的话程序退出的时候sample.vxd就被删掉了.到应该怎么用呢?
2. VtoolsD里面有一个dprintf可以像printf一样用,但是我到哪里看它的输出呢?
 
听一听!
 
to rychu
你的VxD文件是如何形成的,是由VtoolsD工具?还是其它的什么工具?
语言是Asm吗?
 
to Jams,
因为我是才开始做VxD,手头又没有参考书,所以有很多小问题都搞不定.
对于第一个问题我已经解决了,用QuickVXD生成文件的时候选中可动态载入选项的
就可以了.

现在又有个问题了,望大家指点一下.
我在调入VxD的时候是这么写
HANDLE h=CreateFile("////.//sample.vxd",0,0,NULL,0,
FILE_FLAG_DELETE_ON_CLOSE,NULL);
退出的时候用CloseHandle(h)为什么总是不成功呢?用VxDViewer看时老是有sample.vxd.
 
请结束或继续
 
你的VXD是静态LOAD的吗?
 
dprintf也许只是debug版本时使用的
在dos虚拟机(就是dos窗口的程序调用vxd)里可以看到
 
请继续或结束
 
1:在c++ builder里面,我是这样调用的,VxdHandle=
CreateFile("////.//samples.VXD",0,0,NULL,0,FILE_FLAG_OVERLAPPED|FILE_FLAG_DELETE_ON_CLOSE,NULL);
if (VxdHandle==INVALID_HANDLE_VALUE)
ShowMessage("加载vxd失败");
2.dprintf是输出信息在调试窗口,可以用vtools里面的自带的driver monitor来看
 
多人接受答案了。
 
后退
顶部