第一个vxd居然无法加载!高手帮我看看……
环境:Win2K/VC60/VToolsD3.0
QuickVxd选项:
Device Parameters Tab:
c/debug/Dynamically Loadable
Windows95 Control Message
SYS_DYNAMIC_DEVICE_EXIT
SYS_DYNAMIC_DEVICE_INIT
其余全为缺省。
原代码:
// MYVXD.c - main module for VxD MYVXD
#define DEVICE_MAIN
#include "myvxd.h"
#undef DEVICE_MAIN
Declare_Virtual_Device(MYVXD)
VOID __cdecl PM_Api_Handler(VMHANDLE hVM, PCLIENT_STRUCT pcrs)
{
}
DefineControlHandler(SYS_DYNAMIC_DEVICE_INIT, OnSysDynamicDeviceInit);
DefineControlHandler(SYS_DYNAMIC_DEVICE_EXIT, OnSysDynamicDeviceExit);
DefineControlHandler(W32_DEVICEIOCONTROL, OnW32Deviceiocontrol);
BOOL __cdecl ControlDispatcher(
DWORD dwControlMessage,
DWORD EBX,
DWORD EDX,
DWORD ESI,
DWORD EDI,
DWORD ECX)
{
START_CONTROL_DISPATCH
ON_SYS_DYNAMIC_DEVICE_INIT(OnSysDynamicDeviceInit);
ON_SYS_DYNAMIC_DEVICE_EXIT(OnSysDynamicDeviceExit);
ON_W32_DEVICEIOCONTROL(OnW32Deviceiocontrol);
END_CONTROL_DISPATCH
return TRUE;
}
BOOL OnSysDynamicDeviceInit()
{
return TRUE;
}
BOOL OnSysDynamicDeviceExit()
{
return TRUE;
}
DWORD OnW32Deviceiocontrol(PIOCTLPARAMS p)
{
return 0;
}
//////////////////////////////////////////////////////////////
// MYVXD.h - include file for VxD MYVXD
#include <vtoolsc.h>
#define MYVXD_Major 1
#define MYVXD_Minor 0
#define MYVXD_DeviceID UNDEFINED_DEVICE_ID
#define MYVXD_Init_Order UNDEFINED_INIT_ORDER
////////////////////////////////////////////////////////////////
# MYVXD.mak - makefile for VxD MYVXD
DEVICENAME = MYVXD
DYNAMIC = 1
FRAMEWORK = C
DEBUG = 1
OBJECTS = myvxd.OBJ
!include $(VTOOLSD)\include\vtoolsd.mak
!include $(VTOOLSD)\include\vxdtarg.mak
myvxd.OBJ: myvxd.c myvxd.h
//////////////////////////////////////////////////////////
在vc集成环境下编译成myvxd.vxd,在用vtoolsd的Debug monitor加载时报如下的错误:
d:\myvxd\myvxd.vxd 设备驱动程序无法加载。错误状态是0xc0000130
这是什么问题?难道说不能在WIN2K下用吗?必须在WIN95下用?