阅读:1074回复:5
为什么无法打开设备??
我的系统是xp,用winxpDDK编译。
不知道为什么总是提示错误码2. 程序如下: /*-----------gedriver.h-------------*/ NTSTATUS DriverEntry(IN PDRIVER_OBJECT driverObject, IN PUNICODE_STRING registryPath }; NTSTATUS GdCreate(IN PDEVICE_OBJECT deviceObject, IN PIRP irp ); NTSTATUS GdCreate(IN PDEVICE_OBJECT deviceObject, IN PIRP irp ); /////////////////////////////////////////////////////////////// /*------------gedriver.c--------------*/ #include "gedriver.h" NTSTATUS DriverEntry(IN PDRIVER_OBJECT driverObject, IN PUNICODE_STRING registryPath } { NTSTATUS status=STATUS_SUCCESS; DbgPrint(" In Driver Entry Routine n"); driverObject->MajorFunction[IRP_MJ_CREATE] =GdCreate; driverObject->MajorFunction[IRP_MJ_CLOSE]=GdClose; DbgPrint(" Out Driver Entry Routine n"); return status; } NTSTATUS GdCreate(IN PDEVICE_OBJECT deviceObject, IN PIRP irp ) { NTSTATUS status=STATUS_SUCCESS; DbgPrint(" Create Routine n"); return status; } NTSTATUS GdCreate(IN PDEVICE_OBJECT deviceObject, IN PIRP irp ) { NTSTATUS status=STATUS_SUCCESS; DbgPrint(" Close Routine n"); return status; } 经过编译产生gedriver.sys文件,并复制到windows/system32/drivers下 然后在注册表里的HK_LOCAL_MACHINE/system/controlset/service下添加 gedriver子键,在子键下添加参数:Start=3 Type=1. 不知道为什么用CreateFile打开设备时,没有提示In Driver Entry Routine, 并提示错误码2。 |
|
最新喜欢:sunmac... |
沙发#
发布于:2004-03-03 11:33
这是全部代码吗?
|
|
板凳#
发布于:2004-03-03 11:42
不好意思,这是我在网吧现写的,忘记包含ntddk.h了。
不过这确实是全部的原代码 |
|
地板#
发布于:2004-03-03 13:48
哦,那我也不知道了,可能跟这句代码有关系吧
#pragma code_seg("INIT") |
|
地下室#
发布于:2004-03-03 16:40
我的系统是xp,用winxpDDK编译。 用CreateFile打开驱动之前,必须先加载驱动。否则,会返回错误2(错误的路径)。 加载驱动,使用: OpenSCManager CreateService StartService 具体做法,查查MSDN。 |
|
|
5楼#
发布于:2004-03-03 20:38
经过编译产生gedriver.sys文件,并复制到windows/system32/drivers下
然后在注册表里的HK_LOCAL_MACHINE/system/controlset/service下添加 gedriver子键,在子键下添加参数:Start=3 Type=1. net start gedriver.sys 或 在子键下添加参数:Start=2 Type=1 |
|
|