目标:能够把电脑当作一个集成有高性能处理器的开发板用起来,当然,还自带了一个高级的操作系统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. LVS、Nginx和HAProxy负载均衡器对比总结

    LVS特点: 1.抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生: 2.稳定性.可靠性好,自身有完美的热备方案:(如:LVS+Keepalived) 3.应用范围比较广 ...

  2. Spring源码情操陶冶-PropertyPlaceholderBeanDefinitionParser注解配置解析器

    本文针对spring配置的context:property-placeholder作下简单的分析,承接前文Spring源码情操陶冶-自定义节点的解析 spring配置文件应用 <context: ...

  3. CF 291E. Tree-String Problem [dfs kmp trie图优化]

    CF291E 题意:一棵树,每条边上有一些字符,求目标串出现了多少次 直接求目标串的fail然后一边dfs一边跑kmp 然后就被特殊数据卡到\(O(n^2)\)了... 因为这样kmp复杂度分析的基础 ...

  4. 夏令营提高班上午上机测试 Day 4 解题报告

    我要是没记错的话,今天的题难度算挺适中的. *标程来自高天宇哥哥 T1:小G的字符串 题目描述 有一天,小 L 给小 G 出了这样一道题:生成一个长度为 n 的.全由小写英文字母构成的字符串,只能使用 ...

  5. BZOJ 2073: [POI2004]PRZ [DP 状压]

    传送门 水题不解释 这道题的主要目的在于记录一个枚举子集的技巧 #include <iostream> #include <cstdio> #include <cstri ...

  6. SDN第三次作业

    作业链接 阅读文章:http://www.sdnlab.com/19777.html 阅读<重构网络>第一二章 列举openflow1.0的12元组? 入端口 源MAC地址 目的MAC地址 ...

  7. (转载)Java:按值传递与按引用传递

    原链接:传送门 前天在做系统的时候被Java中参数传递问题卡了一下,回头查阅了相关的资料,对参数传递问题有了新的了解和掌握,但是有个问题感觉还是很模糊,就是Java中到底是否只存在值传递,因为在查阅资 ...

  8. dos命令(入门)

    先说一下dos命令在很多情况下的共有特性 1.大小写一样,如dir和DIR 2.盘符后不加目录时,像"dir E:"和"dir E:\"没什么区别 3.使用形如 ...

  9. python中的string

    也可以用一个变量来保存字符串,然后输出str = ‘bad’print str 如果你想表示一段带有英文单引号或者双引号的文字,那么表示这个字符串的引号就要与内容区别开. 内容带有单引号,就用双引号表 ...

  10. Ubuntu16.04+Apache虚拟主机配置详解

    在window下,Apache的配置文件是httpd.conf,但在Linux下安装了Apache后发现其配置并不像window下那么简单,Linux下Apache将各个设置项分在了不同的配置文件中, ...