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; 0
相关文章读者评论发表评论 |
|