-
-
[旧帖]
[原创][求助]写了个使键盘中断失效的小驱动,由于刚刚学习驱动一周请高手指点
0.00雪花
-
发表于:
2009-7-11 15:04
1808
-
[旧帖] [原创][求助]写了个使键盘中断失效的小驱动,由于刚刚学习驱动一周请高手指点
0.00雪花
源码如下:高手看了别笑我啊,我刚刚学习驱动一周
#include <ntddk.h>
NTSTATUS WaitBufferEmpty()
{
//设置端口号
ULONG uc_cmdPort=0x64;
//读取intel i8402芯片的状态字
UCHAR uc_Status=READ_PORT_UCHAR((PCHAR)uc_cmdPort);
//只保留低2位的值
uc_Status=uc_Status&0x2;
//一直等到输入缓冲区为空
while(uc_Status)
{
UCHAR uc_Status=READ_PORT_UCHAR((PCHAR)uc_cmdPort);
//只保留低2位的值
uc_Status=uc_Status&0x2;
}
return STATUS_SUCCESS;
}
// DriverEntry,入口函数。相当于main。
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
//设置端口号
ULONG uc_cmdPort=0x64;
ULONG uc_dataPort=0x60;
//等到输入缓冲区为空
if(WaitBufferEmpty()==STATUS_SUCCESS)
{
//往intel i8042芯片写入命令字,使键盘中断失效
WRITE_PORT_UCHAR((PCHAR)uc_cmdPort,0x60);
if (WaitBufferEmpty()==STATUS_SUCCESS)
{
WRITE_PORT_UCHAR((PCHAR)uc_dataPort,0x46);
}
}
// 设置一个卸载函数便于这个函数能退出。
//driver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
我的代码只是想让键盘中断失效啊
为什么在VM Station里执行驱动,然后敲击键盘,VM Station里的OS就没没反映了,和死机差不多
望高手指点一下
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课