加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactos操作系统实现(93)

发布时间:2020-12-15 05:00:32 所属栏目:百科 来源:网络整理
导读:现在来分析一下键盘驱动程序里主要使用的 IRP 主功能代码,由于每一个 IRP 都在首部包括有一个主功能代码码,并且还可能有次功能代码。大体有下面几种主功能代码: IRP_MJ_CREATE 创建或打开设备文件。 IRP_MJ_CREATE_NAMED_PIPE 名管道驱动主功能。 IRP_MJ_

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

#065DriverObject->MajorFunction[IRP_MJ_PNP]= i8042Pnp;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读