专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程综合 » reactos:reactos操作系统实现(93) »正文

reactos:reactos操作系统实现(93)

来源: 发布时间:星期一, 2009年9月28日 浏览:0次 评论:0


  现在来分析下键盘驱动里主要使用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           WMIIRP

  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
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: