通过IOCTL_ATA_PASS_THROUGH访问ATA设备接口
控制代码功能:像ATA硬盘发送ATA指令。
IDE/ATA:接口,一个串行,一个并行,一般叫做IDE接口的硬盘和ATA接口的硬盘。
ATA指令:可以操作ATA硬盘的指令。
typedef struct _ATA_PASS_THROUGH_EX {
USHORT Length;
USHORT AtaFlags;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
UCHAR ReservedAsUchar;
ULONG DataTransferLength;
ULONG TimeOutValue;
ULONG ReservedAsUlong;
ULONG_PTR DataBufferOffset;
UCHAR PreviousTaskFile[];
UCHAR CurrentTaskFile[];
} *PATA_PASS_THROUGH_EX, ATA_PASS_THROUGH_EX;
Length:指定ATA_PASS_THROUGH_EX结构的字节长度.
AtaFlags:指示数据传输的方向并指定要执行的操作类型。
ATA_FLAGS_DRDY_REQUIRED | 在将命令发送到设备之前,请等待设备的DRDY状态。 |
ATA_FLAGS_DATA_IN | 从设备读取数据。 |
ATA_FLAGS_DATA_OUT | 将数据写入设备 |
ATA_FLAGS_48BIT_COMMAND |
要发送的ATA命令使用48位逻辑块地址(LBA)功能集。设置此标志时, ATA_PASS_THROUGH_EX结构中的PreviousTaskFile成员的内容应该是有效的。 |
ATA_FLAGS_USE_DMA | 将传输模式设置为DMA。 |
ATA_FLAGS_NO_MULTIPLE | 只读单扇区。 |
PathId:表示请求的IDE端口或总线。该值由端口驱动程序设置
TargetId:表示总线上目标设备的整数。该值由端口驱动程序设置
Lun:表示设备的逻辑单元号。该值由端口驱动程序设置。
ReservedAsUchar:保留
DataTransferLength:指示数据缓冲区的大小(以字节为单位)。
TimeOutValue:端口驱动程序确定请求超时时间
ReservedAsUlong; //保留
DataBufferOffset; //指定从此结构开始到数据缓冲区的偏移量(以字节为单位)。
PreviousTaskFile[8]; //指定当前传递命令之前的任务文件输入寄存器的内容。未设置ATA_FLAGS_48BIT_COMMAND标志时不使用此成员。
CurrentTaskFile[8]; //SATA的register
偏移量 | 属性 |
byte0 | Features register |
byte1 | Sector count register |
byte2 | Sector number register |
byte3 | Cylinder low register |
byte4 | Cylinder high register |
byte5 | Device/head register |
byte6 | Command register |
byte7 | Reserved |
当ATA_PASS_THROUGH_EX成功返回后:CurrentTaskFile内容为output registers
偏移量 | 属性 |
byte0 | Error register |
byte0 | Sector count register |
byte0 | Sector number register |
byte0 | Cylinder low register |
byte0 | Cylinder high register |
byte0 | Device/head register |
byte0 | Status register |
byte0 | Reserved |
通过IOCTL_ATA_PASS_THROUGH访问ATA设备接口的更多相关文章
- Ionic2学习笔记(9):访问本地设备
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5559927.html Ionic2提供了访问本地设备的方法,但是需要安装 ...
- Winform混合式开发框架访问Web API接口的处理
在我的混合式开发框架里面,集成了WebAPI的访问,这种访问方式不仅可以实现简便的数据交换,而且可以在多种平台上进行接入,如Winform程序.Web网站.移动端APP等多种接入方式,Web API的 ...
- win10添加打印机--无法访问指定设备,路径或文件。。
win10添加打印机无法访问指定设备,路径或文件..后来发现很多按钮点击多说无法访问指定设备,路径或文件.. 解决添加打印机问题: 在搜索栏中搜索:print (从这里添加) 彻底解决: 添加环境变量 ...
- ubuntu 下root用户无法访问声音设备的解决方案
原因:root用户没有对pulsaudio的访问权限,而且pulsaudio默认是不能在root下自动启动解决办法: 一.修改自动启动:编辑 gedit /etc/default/pulseaudio ...
- Java访问USB设备
最近在用Java访问RDing设备,使用的是Java HID API.使用过程中发现一个问题,由于是嵌入式小白,不知道如何向USB设备发送report.于是想到可以看看自带的软件如何访问USB的.找到 ...
- 基于Oracle OCI的数据访问C语言接口ORADBI .
基于Oracle OCI的数据访问C语言接口ORADBI cheungmine@gmail.com Mar. 22, 2008 ORADBI是我在Oracle OCI(Oracle 调用接口)基础 ...
- ionic访问odoo 11接口
在架设完毕odoo 11的网站之后,第一次面临手机app该如何访问后台网站的问题,是不是模式类似asp.net mvc 那样的模式,或者还存在其他的访问方法,带着这个疑问与困惑,开始的我的研究学习之路 ...
- vs2015使用Apache Cordova用JavaScript来访问本地设备的功能,比如摄像头、加速计
看到下面这张图就代表着我VS2015 跨平台Moblie开发工具安装成功了. 上周安装成功后本想一睹跨平台开发的乐趣,可是一直找不到合适的入口.这周又来捯饬一下结果发现了一个入口.于是来写一个Hell ...
- VREP中的力触觉设备接口(CHAI3D)
力反馈技术是一种新型的人机交互技术,它允许用户借助力反馈设备触碰.操纵计算机生成的虚拟环境中的物体,并感知物体的运动和相应的力反馈信息,实现人机力觉交互.虽然传统的鼠标.键盘.触摸屏等交互手段可以满足 ...
随机推荐
- Python 私有
class Person: __qie = "潘潘" # 类变量 def __init__(self, name, mimi): self.name = name self.__m ...
- maven修改本地仓库,远程仓库与中央仓库
什么是Maven仓库 在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如 log4j.jar,junit. ...
- Quorum算法
分布式系统中,一般保存多个数据副本,明显可以提高系统可靠性.并且存储这些数据副本的节点,不仅做容灾用,也可以提供服务,作负载均衡. 这里就涉及到一个数据一致性的问题,也就是各副本间要进行同步,来保持最 ...
- input标签(文本域和文件域)
单行文本域: <form> <input type="text" name="..." ....../> </form> 属 ...
- C5-fasterrcnn-小象cv-code
1.# Path to Shapes trained weightsSHAPES_MODEL_PATH = os.path.join(ROOT_DIR, "mask_rcnn_shapes. ...
- 硬盘安装Linux(ubuntu,centos)
硬盘安装Linux 使用硬盘安装Linux最大的好处不只是方便,是快速.之前使用U盘安装,很慢,没有记录具体时间.Ubuntu区别不大,本身比较小,安装介质只有2G(ubuntu18.10):Cent ...
- CentOS右键菜单添加新增文件命令
进入模板文件夹, 增加空白文件即可. cd /home/tom/Templatesvi text01.txt //新增一个名为text01的文本文件. :wq //保存退出. 另外可以用LibreOf ...
- ODOO v10.0 自动生成财务凭证的科目设置
ODOO v10.0 自动生成财务凭证的科目设置 可以在产品类别及产品档案里设置,建议在产品类别下设置,方便维护. 项目 设置为(具体科目以公司科目表为主) 对应作用业务 Income Account ...
- XML映射配置文件
XML映射配置文件 http://www.mybatis.org/mybatis-3/configuration.html Type Handlers 类型处理器 每当MyBatis在Prepared ...
- 【Wannafly挑战赛14C可达性】【Tarjan缩点】
链接:https://www.nowcoder.com/acm/contest/81/C来源:牛客网 题目描述 给出一个 0 ≤ N ≤ 105 点数.0 ≤ M ≤ 105 边数的有向图,输出一个尽 ...