![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内核与驱动
龙二少爷
操作系统工程师,项目管理专家。熟悉 C++/C# 等多种语言
展开
-
【WDK开发】一、配置VS2008的驱动程序开发环境
要编写Windows平台上的驱动程序,首先需要一份WDK(Windows Driver Kit)的SDK,WDK目前支持到Windows 7,打开https://connect.microsoft.com/default.aspx这个网站,在主页中单击站点目录,在该页左侧的*类别*中选择开发人员工具,并在右侧找到Windows Driver Kit(WDK) and Windows Driver ...2010-03-27 10:41:31 · 216 阅读 · 0 评论 -
IOControlCode 控制代码全览
今天写了个小程序,将Winioctl.h里的IO控制代码转化成C#下的enum,以方便用C#控制Windows的设备,做一些底层的操作(比如格式化之类的),奇怪的是我找不到FILE_DEVICE_AVIO这个设备的定义。。。。下面是无注释版。如果你想知道某个设备支持哪些control code,你可以用这个工具:http://tbaioctl.codeplex.com/...原创 2010-01-14 14:49:12 · 1987 阅读 · 7 评论 -
【DeviceIOControl】 一、通过API访问设备驱动程序
在NT/2000/XP中,如果想用VC编写应用程序访问硬件设备,如获取磁盘参数、读写绝对扇区数据、测试光驱实际速度等,该从哪里入手呢?在NT/2000/XP中,应用程序可以通过API函数DeviceIoControl来实现对设备的访问—获取信息,发送命令,交换数据等。利用该接口函数向指定的设备驱动发送正确的控制码及数据,然后分析它的响应,就可以达到我们的目的。 DeviceIoCo...2010-06-18 11:54:12 · 133 阅读 · 0 评论 -
【DeviceIOControl】 二、获取软盘/硬盘/光盘的参数
在上面那个例子中,将设备名换成“A:”取A盘参数,先用资源管理器读一下盘,再运行这个程序可以成功,但换一张盘后就失败;换成“CDROM0”取CDROM参数,无论如何都不行。这个问题如何解决呢? 取软盘参数是从软盘上读取格式化后的信息,也就是必须执行读操作,这一点与硬盘不同。将CreateFile中的访问方式改为GENERIC_READ就行了。IOCTL_DISK_GET_DRIVE_GEO...2010-06-18 12:02:03 · 225 阅读 · 0 评论 -
【DeviceIoControl】 三、制作磁盘镜像文件与磁盘格式化
现在有许多“克隆”软件,可以对磁盘进行全盘复制。如果要制作磁盘镜像文件,DeviceIoControl就有了用武之地了。这里举一个制作软盘镜像文件,功能类似于“DISKCOPY”的例子。本例实现其功能的核心代码如下:[code]// 打开磁盘HANDLE OpenDisk(LPCTSTR filename){HANDLE hDisk;// 打开设备hDisk =...2010-06-18 12:08:23 · 399 阅读 · 0 评论