目标:能够把电脑当作一个集成有高性能处理器的开发板用起来,当然,还自带了一个高级的操作系统Windows(必须的)。总之,就是在一个带了操作系统的高性能开发板上的驱动程序开发。
性质:纯属业余爱好
1、昨天下载了WDK 7.1.0 Free版(From MS的正版,需要注册一个Windows Live ID,下载链接http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=36a2630f-5d56-43b5-b996-7633f2ec14ff&displayLang=en)。今天才下载完成,大小619MB,格式ISO。
2、安装时选择了全部的安装选项,因为是Free版,担心可能少一些东西,加上本来对驱动开发不熟悉,干脆全部装上,以绝后患。
3、阅读帮助文档(help目录下的“WDK document”文档),貌似没有中文版,阅读速度缓慢。计划以后慢慢翻译阅读过的内容,作为学习笔记。
4、按照我学习的习惯(兴趣第一),找到一个example先找点感觉再说。学习的第一个例子就是IOCTL,这个最接近嵌入式应用,并且能够自己控制一些东西还是很爽的,虽然只是简单的IO,当然,这让我想起了当年完成的第一个8051实验“跑马灯”,可以带来像初学C语言的人的“hello word”程序一样兴奋。
5、初识驱动开发(我的系统已经安装VC6.0和VS2005):
当然代码是MS写好的。对着文档我编译了一下,并且运行成功而已。
(1)进入WDK安装目录"\WinDDK\7600.16385.1\src\general\ioctl"
(2)复制wdm文件夹到"D:\",作为实验目录。
(3)从“开始”->“所有程序”进入WDM目录下的“Build environment->windows xp”启动“x86 Free Build environment”工具,是基于Dos界面的工具。
(4)进入第(2)步准备好的实验目录wdm,进入“sys”子目录,运行“BLD”命令即可在“sys”目录下生成一个文件夹“objfre_wxp_x86”,里面就有编译后的结果“sioctl.sys”文件。
(5)再回到第(2)步准备好的实验目录wdm,进入“exe”目录,同样按照(4)的命令操作编译程序,得到一个用于测试(4)的编译结果的exe文件名称为“ioctlapp.exe”,把它复制到步骤(4)“sioctl.sys”文件所在的目录,并在dos窗口运行“sioctl.sys”,可以看到驱动程序的输出结果。实验完毕。
(6)阅读步骤(4)实验文件夹的源文件“sioctl.c”、“sioctl.h”,“MAKEFILE”和“sioctl.rc”,领会驱动程序的框架,准备继续的学习(从头开始读手册)。


运行结果:

Windows驱动开发工具 WDK 学习笔记(1)的更多相关文章

  1. windows驱动开发详解学习笔记

    1. windows驱动分两类,NT式驱动和WDM驱动,后者支持即插即用: 2. DriverEntry是入口函数,传入参数:pDriverObject由IO管理器传入: 3. WDM驱动中,AddD ...

  2. Windows驱动——读书笔记《Windows驱动开发技术详解》

    =================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮 ...

  3. Windows驱动开发(中间层)

    Windows驱动开发 一.前言 依据<Windows内核安全与驱动开发>及MSDN等网络质料进行学习开发. 二.初步环境 1.下载安装WDK7.1.0(WinDDK\7600.16385 ...

  4. [Windows驱动开发](一)序言

    笔者学习驱动编程是从两本书入门的.它们分别是<寒江独钓——内核安全编程>和<Windows驱动开发技术详解>.两本书分别从不同的角度介绍了驱动程序的制作方法. 在我理解,驱动程 ...

  5. windows驱动开发推荐书籍

    [作者] 猪头三 个人网站 :http://www.x86asm.com/ [序言] 很多人都对驱动开发有兴趣,但往往找不到正确的学习方式.当然这跟驱动开发的本土化资料少有关系.大多学的驱动开发资料都 ...

  6. C++第三十三篇 -- 研究一下Windows驱动开发(一)内部构造介绍

    因为工作原因,需要做一些与网卡有关的测试,其中涉及到了驱动这一块的知识,虽然程序可以运行,但是不搞清楚,心里总是不安,觉得没理解清楚.因此想看一下驱动开发.查了很多资料,看到有人推荐Windows驱动 ...

  7. windows 驱动开发入门——驱动中的数据结构

    最近在学习驱动编程方面的内容,在这将自己的一些心得分享出来,供大家参考,与大家共同进步,本人学习驱动主要是通过两本书--<独钓寒江 windows安全编程> 和 <windows驱动 ...

  8. C++第三十八篇 -- 研究一下Windows驱动开发(二)--WDM式驱动的加载

    基于Windows驱动开发技术详解这本书 一.简单的INF文件剖析 INF文件是一个文本文件,由若干个节(Section)组成.每个节的名称用一个方括号指示,紧接着方括号后面的就是节内容.每一行就是一 ...

  9. Windows Phone开发工具初体验【转载】

    Windows Phone开发工具在MIX 2010上火热登场了.Windows Mobile开发者们压抑许久的热情终于爆发出来,对于Windows Phone的华丽转身,开发者们褒贬不一,有人对Si ...

随机推荐

  1. java 如何将 word,excel,ppt如何转pdf--jacob

    问题:java 如果将 word,excel,ppt如何转pdf 我个人的观点:windows server下用 jacob; linux server下 用openoffice.   PS:1.本文 ...

  2. HTTP就是这么简单

    为什么要学HTTP? 我们绝大多数的Web应用都是基于HTTP来进行开发的.我们对Web的操作都是通过HTTP协议来进行传输数据的. 简单来说,HTTP协议就是客户端和服务器交互的一种通迅的格式. H ...

  3. 个性化推荐调优:重写spark推荐api

    最近用spark的mlib模块中的协同过滤库做个性化推荐.spark里面用的是als算法,本质上是矩阵分解svd降维,把一个M*N的用户商品评分矩阵分解为M*K的userFeature(用户特征矩阵) ...

  4. isFile() exists() isDirectory()的区别

    isFile()public boolean isFile()测试此抽象路径名表示的文件是否是一个标准文.如果该文件不是一个目录,并且满足其他与系统有关的标准,那么该文件是标准文件.由Java应用程序 ...

  5. Spring源码解析一(框架梳理)

    整体架构 打算开始写这个系列,不为上首页,也不为博取多少关注,只有一个目的:梳理知识,扩充思路:废话不多,开始吧.第一步,大家去spring的官方github下面去下载它的源码,具体的自己谷歌,我已经 ...

  6. POJ 2826 An Easy Problem?![线段]

    An Easy Problem?! Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12970   Accepted: 199 ...

  7. 使用angular/react/vue实现相同的面试题组件

    面试题要求如下所示 1.angular: <!DOCTYPE html><html lang="en"><head> <meta char ...

  8. canvas绘制时钟及注释及save和restore的用法

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. 简单实现ASP.Net MVC网页播放音乐

    <div> @*音乐*@ <audio id="warning-sound" loop="loop" src="/Areas/Map ...

  10. 2017人生总结(MECE分析法)

    试着用MECE分析法对人生的整个规划做一下总结.作为技术人员,其实除了编码架构能力之外,分析问题的能力的重要程度也会随着职业发展越来越重要.<美团点评技术博客>说这几天要在黄金时段头版头条 ...