
驱动
Gaia
凡所有相 皆是虚妄 若见诸相非相 即见如来
展开
-
实战DeviceIoControl 之一:通过API访问设备驱动程序
http://blog.youkuaiyun.com/bhw98/article/details/19660Q 在NT/2000/XP中,我想用VC编写应用程序访问硬件设备,如获取磁盘参数、读写绝对扇区数据、测试光驱实际速度等,该从哪里入手呢?A 在NT/2000/XP中,应用程序可以通过API函数DeviceIoControl来实现对设备的访问—获取信息,发送命令,交换数据等。利用该接口函数向指定的转载 2012-11-26 11:23:56 · 623 阅读 · 0 评论 -
实战DeviceIoControl 之三:制作磁盘镜像文件
Q DOS命令DISKCOPY给我很深的印象,现在也有许多“克隆”软件,可以对磁盘进行全盘复制。我想,要制作磁盘镜像文件,DeviceIoControl应该很有用武之地吧?A 是的。这里举一个制作软盘镜像文件,功能类似于“DISKCOPY”的例子。本例实现其功能的核心代码如下:// 打开磁盘HANDLE OpenDisk(LPCTSTR filename){ HANDLE hD转载 2012-11-26 11:27:19 · 522 阅读 · 0 评论 -
实战DeviceIoControl 之五:列举已安装的存储设备
Q 前几次我们讨论的都是设备名比较清楚的情况,有了设备名(路径),就可以直接调用CreateFile打开设备,进行它所支持的I/O操作了。如果事先并不能确切知道设备名,如何去访问设备呢?A 访问设备必须用设备句柄,而得到设备句柄必须知道设备路径,这个套路以你我之力是改变不了的。每个设备都有它所属类型的GUID,我们顺着这个GUID就能获得设备路径。GUID是同类或同种设备的全球唯一识别码,转载 2012-11-26 11:29:09 · 665 阅读 · 0 评论 -
实战DeviceIoControl 之二:获取软盘/硬盘/光盘的参数
http://blog.youkuaiyun.com/bhw98/article/details/19661Q 在MSDN的那个demo中,将设备名换成“A:”取A盘参数,先用资源管理器读一下盘,再运行这个程序可以成功,但换一张盘后就失败;换成“CDROM0”取CDROM参数,无论如何都不行。这个问题如何解决呢?A 取软盘参数是从软盘上读取格式化后的信息,也就是必须执行读操作,这一点与硬盘不同。将Cr转载 2012-11-26 11:25:47 · 555 阅读 · 0 评论 -
实战DeviceIoControl 之四:获取硬盘的详细信息
Q 用IOCTL_DISK_GET_DRIVE_GEOMETRY或IOCTL_STORAGE_GET_MEDIA_TYPES_EX只能得到很少的磁盘参数,我想获得包括硬盘序列号在内的更加详细的信息,有什么办法呀?A 确实,用你所说的I/O控制码,只能得到最基本的磁盘参数。获取磁盘出厂信息的I/O控制码,微软在VC/MFC环境中没有开放,在DDK中可以发现一些线索。早先,Lynn McGuire转载 2012-11-26 11:28:25 · 1536 阅读 · 0 评论