阅读:2189回复:5
请问开发鼠标驱动程序
请问:我现在想在WIN2000下开发鼠标驱动程序,鼠标的协议采用标准协议,但是有个别自己添加的功能,请问我在设计驱动程序的时候应该如何去做?????
是不是要去重新开发驱动程序,还是在标准系统上做一个驱动功能添加程序??? 请哪位高手能给我一个思路,谢谢 |
|
|
沙发#
发布于:2002-03-30 17:15
你的情况应该是典型的过滤驱动程序实现的功能。
可以根据你的实际需要来决定是开发一个UpperFilter Driver还是开发一个LowerFilter驱动。不过,还是开发Upper Filter Driver的机会多一些。 |
|
|
板凳#
发布于:2002-03-30 20:16
谢谢你的回答,可是我觉得这个程序不是简单地过滤的问题,而是要在系统的标准驱动程序的基础上添加一些功能,当然我是自己想的,请指教!
同时请问哪儿能有例程,我可以看看的,谢谢,谢谢! 对了,我不知道这个对于我一个新手来说工作量大吗?? 谢谢回答! |
|
|
地板#
发布于:2002-03-30 21:55
当然,你首先得知道几乎所有关于鼠标驱程序的细节,在标准鼠标驱动程序中需要处理的东西。
我不知道你需要增加什么功能,因为有的功能可能是没有必要通过驱动程序去实现的,取而代之,你可以在应用程序层用HOOK(钩子)截获鼠标消息,进而达到一些增强鼠标驱动程序的功能。 对于你如何过滤鼠标驱动程序,我的大体思路如下(我并有做过类似的鼠标驱动程序,只是我的设想): 这样的驱动程序应该是系统启动时自动启动的,因此它的DriverEntry例程里应该有一些额外的工作,典型的,需要注册一个重新初始化例程(IoRegisterBootDriverReinitialization),因为系统初始化时,可能有一些鼠标驱动程序赖以启动的服务还没有启动。这个例程的具体用法请参见DDK。 另外, 既然驱动程序系统启动时就自动加载,你的过滤驱动程序应该不需要应用程序的支持。这样,你应该只要建立一个过滤设备对象就可以,然后通过ZwCreateFile在内核得到系统鼠标驱动程序的设备对象句柄,再用ObReferenceObjectByPointer将句柄转为指针,然后调用IoGetRelatedObjects例程得到可能已经挂接到这个鼠标设备对象上的过滤设备对象,并在调用IoCreateDevice创建自己的设备对象后,将自己的设备对象挂接在这个设备对象的上方(IoAttachDeviceToDeviceStack).有一点要注意:ZwCreateFile及以后的几个例程需要一个数据结构叫做OBJECT_ATTRIBUTES,在调用ZwCreateFile之前还要调用IoInitializeObjectAttributes例程初始化一个对象属性结构,这里面有关于目标设备对象名的UNICODE描述。 这是一般的过滤驱动程序的创建步骤,但我不能确定它一定能适用于鼠标的过滤驱动。但愿对你有帮助! best regards ! |
|
|
地下室#
发布于:2002-04-01 08:06
谢谢搂上的兄弟,本来想把还有的10也送给你您,可惜我找不到给分的按钮了,小弟第一次发问,就得到帮助,非常感谢
不知道还有那位朋友能继续说说各自的思路 |
|
|
5楼#
发布于:2002-04-01 08:35
哈哈,又有分?我喜欢!
你可以再发一个新贴子,然后我回你的贴子去领分! 哈。。。。。。。。。。。 |
|
|