reactos操作系统实现(93)
来源:互联网 发布:圈点软件下载 编辑:程序博客网 时间:2024/05/01 10:02
现在来分析一下键盘驱动程序里主要使用的IRP主功能代码,由于每一个IRP都在首部包括有一个主功能代码码,并且还可能有次功能代码。大体有下面几种主功能代码:
IRP_MJ_CREATE 创建或打开设备文件。
IRP_MJ_CREATE_NAMED_PIPE 名管道驱动主功能。
IRP_MJ_CLOSE 关闭句柄。
IRP_MJ_READ 读取数据。
IRP_MJ_WRITE 写入数据。
IRP_MJ_QUERY_INFORMATION 得到文件的长度。
IRP_MJ_SET_INFORMATION 设置文件的长度。
IRP_MJ_QUERY_EA
IRP_MJ_SET_EA
IRP_MJ_FLUSH_BUFFERS 把缓冲区数据立即写入文件或者发送到设备。
IRP_MJ_QUERY_VOLUME_INFORMATION
IRP_MJ_SET_VOLUME_INFORMATION
IRP_MJ_DIRECTORY_CONTROL
IRP_MJ_FILE_SYSTEM_CONTROL
IRP_MJ_DEVICE_CONTROL 设备I/O控制。
IRP_MJ_INTERNAL_DEVICE_CONTROL 高层驱动程序内部发送的I/O控制包。
IRP_MJ_SCSI
IRP_MJ_SHUTDOWN 关闭通知。
IRP_MJ_LOCK_CONTROL
IRP_MJ_CLEANUP 取消文件句柄上的任何等待的IRP。
IRP_MJ_CREATE_MAILSLOT
IRP_MJ_QUERY_SECURITY
IRP_MJ_SET_SECURITY
IRP_MJ_POWER 电源管理请求。
IRP_MJ_SYSTEM_CONTROL WMI的IRP。
IRP_MJ_DEVICE_CHANGE
IRP_MJ_QUERY_QUOTA
IRP_MJ_SET_QUOTA
IRP_MJ_PNP 即插即用消息。
IRP_MJ_PNP_POWER
IRP_MJ_MAXIMUM_FUNCTION 最大的主功能代码数。
在键盘驱动程序里主要使用下面几个主功能,如下:
指定IRP消息IRP_MJ_CREATE的处理函数i8042Create。
#060 DriverObject->MajorFunction[IRP_MJ_CREATE] = i8042Create;
清除分配资源的函数i8042Cleanup。
#061 DriverObject->MajorFunction[IRP_MJ_CLEANUP] = i8042Cleanup;
指定关闭设备时,调用的函数i8042Close。
#062 DriverObject->MajorFunction[IRP_MJ_CLOSE] = i8042Close;
通过IO操作函数i8042DeviceControl。
#063 DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] =i8042DeviceControl;
指定中断处理函数i8042InternalDeviceControl。
#064 DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] =i8042InternalDeviceControl;
指定即插即用时响应函数i8042Pnp。
#065 DriverObject->MajorFunction[IRP_MJ_PNP] = i8042Pnp;
- reactos操作系统实现(93)
- reactos操作系统实现(1)
- reactos操作系统实现(2)
- reactos操作系统实现(3)
- reactos操作系统实现(4)
- reactos操作系统实现(5)
- reactos操作系统实现(6)
- reactos操作系统实现(7)
- reactos操作系统实现(8)
- reactos操作系统实现(9)
- reactos操作系统实现(10)
- reactos操作系统实现(11)
- reactos操作系统实现(12)
- reactos操作系统实现(13)
- reactos操作系统实现(14)
- reactos操作系统实现(15)
- reactos操作系统实现(16)
- reactos操作系统实现(17)
- IBM DB2 基本性能调整
- 在iSQL*Plus中启用sys账户登录dba的解决办法
- 不同版本的IE无法安装于同一台机器的问题的解决
- 在Windows和AIX上卸载DB2
- 守护进程
- reactos操作系统实现(93)
- [Dotnet][C#]Dictionary的foreach使用KeyValuePair
- 我要建站了!!!
- 驱动开发环境配置
- MYSQL 手册【摘】
- 八月读书生活
- 一种常用的产生表达式的方式
- JQUERY获取form表单text,areatext,radio,checkbox,select值
- 【转】Linux下使用C语言连接Mysql (commands out of sync, you can't run ...)