阅读:2215回复:5
DDK程序编译成为。SYS文件后,如何装载进系统??
大概的方法是:在HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\下建立你的设备的一个主键,名字和你的sys文件名相同(去掉扩展名)。在加上Type、start、ErrorControl、Group等键值。然后再把你的sys文件copy到system32目录下,重启机器系统会自动加载。或者编写一个安装程序写那几个注册表项,然后调用CreateService函数,这样不用重启也可。以后系统重启时系统也会自动加载。
///////////////////////////////////// 直接修改注册表,也可以! 还不会在系统设备管理里面看到设备,对于那些对异物敏感的客户可能有效,呵呵! \\Registry\\Machine\\System\\CurrentControlSet\\Services\\ABCDEFG Type = REG_DWORD 0x00000001 Start = REG_DWORD 0x00000002 DisplayName = \"myfilename\" ErrorControl = REG_DWORD 0x0000001 这样就可以,自己写吧,只要把sys拷贝到 system32/drivers/即可 重新启动,哈哈,不是就ok了吗? 我已经照做了,可还是不行,请高手帮帮我啊!! |
|
沙发#
发布于:2002-04-11 13:14
注册表项缺了一项:
加一项imagepath 键值:system32\\drivers\\abcdefg.sys |
|
|
板凳#
发布于:2002-04-11 13:39
你的驱动程序可能有问题,很可能没有正确地建立符号连接名
请检查一下你的驱动程序代码,确定无误,然后你可以将Start设为3,在命令行下用net start yourdriver启动你的程序。 在此之前将驱动程序可执行文件用SoftIce 的 Loader32装入,并断点 DriverEntry.查看你的DriverEntry执行的正确性。 |
|
|
地板#
发布于:2002-04-12 08:03
这个SYS是人家提供给我的,用他提供的安装程序安装后是可以正确使用的,但是我现在用它进行开发后,想将它和我的应用程序一起做成一个安装包,但就是装不上去。以上注册表项是它的安装程序建立的,另外还有一项,但是我用REGEDIT既不能删除,也不能导入。其值为:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Enum\\Root\\LEGACY_abcd] \"NextInstance\"=dword:00000001 [HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Enum\\Root\\LEGACY_DLPORTIO\\0000] \"Service\"=\"abcd\" \"Legacy\"=dword:00000001 \"ConfigFlags\"=dword:00000000 \"Class\"=\"LegacyDriver\" \"ClassGUID\"=\"{8ECC055D-047F-11D1-A537-0000F8753ED1}\" \"DeviceDesc\"=\"abcd I/O Driver\" \"Capabilities\"=dword:00000000 [HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Enum\\Root\\LEGACY_DLPORTIO\\0000\\Control] \"DeviceReference\"=dword:81888430 \"ActiveService\"=\"abcd\" 不知此项对其加载有无影响,又是如何建立的? |
|
地下室#
发布于:2002-04-12 09:31
enum中的键值是被系统保护的,主要是为了启动时使用的,regedit只能看不能改,
其建立的过程是你在安装时由pnp管理器根据的你提供的inf文件建立的,你也可以在应用程序中使用setupXXX之类的函数建立,至于怎么用,我也在请教。:) |
|
|
5楼#
发布于:2002-04-12 10:11
告诉你一个简单的办法吧,在DRIVERSTUDIO里面有一个叫DRIVERMONITOR的工具,你用这个工具来装入这个。SYS文件就可以了,我用过,发现非常方便,这样可以把驱动开发和调试的问题从INF的制作中分离出来
:P :P :P |
|
|