阅读:1254回复:8
关于VXD的问题
用VTOOLSD编译的VXD,用CreateFile打开时,返回0xffffffff.
该VXD是在别人的基础上修改的,编译改前的,用CreateFile打开 则没有问题。编译命令为:nmake /A /f Debug.mak |
|
最新喜欢:![]()
|
沙发#
发布于:2001-12-23 17:11
createfile后用getlasterror得到错误的原因,再修改!
|
|
|
板凳#
发布于: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的,哪为大虾帮帮忙啊!!!! |
|
|
地板#
发布于:2001-12-24 10:45
GetLastError的返回值是50,得到错误的原因是:”不支持此网络请求“。 如果是静态加载, 请用 #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 ); |
|
|
地下室#
发布于:2001-12-24 11:55
我怀疑是我在VXD的入口处为一个全局变量分配内存造成的,
我是用VTOOLSD的HeapAllocate在系统的堆上分配的,而且是 ring0层,请问VXD中有没有象WDM中ExAllocatePool分配内存的 函数,因为是用VTOOLSD的方式编译,所以ExAllocatePool不能用。 我的VXD是静态加载的,请问用softice怎样在静态加载VXD时进入 DriverEntry跟踪调试,动态加载的VXD是否还必须放到系统目录下, 是否要写注册表。 |
|
|
5楼#
发布于:2001-12-24 12:02
我怀疑是我在VXD的入口处为一个全局变量分配内存造成的, 晕倒, 第一次听说 vxd还有 driverentry.... |
|
|
6楼#
发布于:2001-12-25 11:10
不好意思,刚开始没说清楚,我在做一个98下的NDIS,编译成VXD,
所说的的入口是NDIS的DriverEntry,现在问题已经找到了,由于我 粗心,把case DIOC_OPEN:给删掉了,故CreateFile不成功。 |
|
|
7楼#
发布于:2001-12-25 15:11
不好意思,刚开始没说清楚,我在做一个98下的NDIS,编译成VXD, 恭喜恭喜 |
|
|
8楼#
发布于:2001-12-26 13:26
;)同喜,同喜,多谢iamaf~1兄捧场!!!
|
|
|