阅读:2174回复:19
求教各位大虾NT/2K下Ctrl+Alt+Del屏蔽的问题。(送分!)
我试了很多种常规的办法效果都不是很好,一次看到一篇文章讲到可以用DDK中kbfiltr中的KbFilter_ServiceCallback函数,我将其看了很久,也不知道具体在我的程序中怎么去实现我要的功能(我用VC,对驱动开发比较陌生),各位大虾能否给点提示?如果有可能的话,给点示例性的代码,我在此谢过了!!
|
|
沙发#
发布于:2002-07-29 15:32
AllenZh大虾能不能告诉我怎么样处理IRP的控制命令让Ctrl+Atl+Del Disable和Enable呢?我实在很陌生,万分感谢!一定给分。
|
|
板凳#
发布于:2002-07-27 17:50
哦,对对,昨天看书上说,设备名只能对内核可见,而符号链接名才对Win32API可见. 当然可以,你需要自己创建一个DeviceObject来与Kbdfilter通信,然后通过DeviceIoContril来控制就可以了, 具体说你需要实现以下几个步骤 1、在驱动创建一个FiDO, 2、创建该FiDO的符号连接,比如KbdFilterDev0 3、定义并处理IRP的控制命令,如让Ctrl+Atl+Del Disable和Enable等。 4、然后安置驱动程序,并重新启动 5、在应用程序中打开该设备,然后使用驱动中定义的Control Code来控制。 顺便说一句,如果你没有开发过Driver,这可能需要参考一些DDK资料,因为有很多实现的细节问题需要处理。 |
|
|
地板#
发布于:2002-07-27 14:18
哦,对对,昨天看书上说,设备名只能对内核可见,而符号链接名才对Win32API可见.
我想问各位一个问题,这种键盘过滤驱动安装重启后,对Ctrl+Alt+Del屏蔽我能不能实时控制呢?比如说点一个按钮就可以屏蔽,再点一下又可以取消屏蔽呢? |
|
地下室#
发布于:2002-07-27 01:32
替换gina.dll好象不能替换掉登陆的热键吧! 对但可以不处理 C-A-D呀,也只要重起1次 |
|
5楼#
发布于:2002-07-27 00:55
说一下你遇到的比较典型的也可
|
|
|
6楼#
发布于:2002-07-27 00:53
这个很难说的全面的,只有自己试过才知道了,并且我作的驱动程序面很窄,还是让各位老大说吧
|
|
7楼#
发布于:2002-07-27 00:51
何时需要重起何时不需要那,请老鼠明示
|
|
|
8楼#
发布于:2002-07-27 00:45
作为过滤驱动程序,安装之后不一定需要从起才可以的,需要看是过滤什么样的请求,还有就是在什么层次上面
|
|
9楼#
发布于:2002-07-26 23:44
kbfiltr安装后要重启的
因为是过滤驱动 如果应用程序和驱动通信 在kbfiltr里面要自己创建一个设备,然后创建符号连接 |
|
|
10楼#
发布于:2002-07-26 23:12
替换gina.dll好象不能替换掉登陆的热键吧!还是应该从键盘过滤入手吧!哪个驱动程序没有研究过,但是肯定是需要自己进行修改的了,按照你说的,应该在创建一个设备之后还有自己添加一个对应用程序接口的符号连接才可以的,并且createfile打开的不能是设备名称,只能是符号连接
|
|
11楼#
发布于:2002-07-26 21:24
是不是要自己加上呢/来命名符号链接? 那这是一个过滤器驱动程序,我想它应该使用了IoGetDeviceObjectPointer以及IoAttachDevice等类似的例程吧,你看看从这些例程可不可以找到相关的设备名字~~~ |
|
12楼#
发布于:2002-07-26 19:53
是不是要自己加上呢/来命名符号链接?
|
|
13楼#
发布于:2002-07-26 19:50
可是我查了一下DDK中的kbfiltr.c中根本就没有用IoCreateSymbolicLink,那么对于这种驱动,我应该用什么设备名呢?
|
|
14楼#
发布于:2002-07-26 19:38
替换系统的msGina.dll我试过,但是这种办法需要重新启动机器,不能满足开发的需要。请eqinzm大虾给我讲一下如何用Kbfiltr,我用DDK提供的build编译后生成一个Kbfilter.sys我用设备管理器将其加载并且重启,但是我用CreateFile(\"\\\\\\\\.\\\\Kbfiltr\",...)总是得到 CreateFile应该指定你在驱动程序中使用IoCreateSymbolicLink时所命名的符号链接的名字。 |
|
15楼#
发布于:2002-07-26 19:35
应该只需要重启一次就可以了。
|
|
16楼#
发布于:2002-07-26 19:26
替换系统的msGina.dll我试过,但是这种办法需要重新启动机器,不能满足开发的需要。请eqinzm大虾给我讲一下如何用Kbfiltr,我用DDK提供的build编译后生成一个Kbfilter.sys我用设备管理器将其加载并且重启,但是我用CreateFile(\"\\\\\\\\.\\\\Kbfiltr\",...)总是得到
INVALID_HANDLE_VALUE,查看了一下错误码,说是系统找不到指定的文件。 看来\"\\\\\\\\.\\\\Kbfiltr\"这样的设备名有问题,请各位给我指点一下,万分感激!! |
|
17楼#
发布于:2002-07-26 15:20
用gina.dll的方法并不好 我见过的例子都是通过重写GINA.DLL来实现的,应该没有什么问题,不过我没有试过。 :D :D :D BTW:MSDN中好象有例子的~~~ |
|
18楼#
发布于:2002-07-26 14:55
用gina.dll的方法并不好
因为替换了系统文件 不保险 kbfiltr是可以做到 很简单的 |
|
|
19楼#
发布于:2002-07-26 14:00
重写一个GINA就行了,和驱动没什么关系。
|
|