目标:能够把电脑当作一个集成有高性能处理器的开发板用起来,当然,还自带了一个高级的操作系统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_多线程4种实现方式

    为了34月份回学校春招,不得不复习一下线程的四种实现方式,希望春招时能找到更好的公司,加油! 1.继承Thread类 class MyThread extends Thread{ private in ...

  2. JDK及Tomcat集成到MyEclipse

    JDK及Tomcat集成到MyEclipse 1.安装好MyEclipse 2.破解 3.配置环境JDK D:\jdk1.6.0_21\bin; ==>放在系统path前面 4.打开MyEcli ...

  3. python学习day3------列表、元组、字符串操作

    一.列表 变量名后加中括号[],接下来介绍对列表进行查操作 #!/usr/bin/env python #-*- Coding:utf-8 -*- # Author:Eric.Shen test = ...

  4. Keepalived+LVS 实现高负载均衡Web集群

    一.原理及简介: 1.1 Keepalived简介      Keepalived是Linux下一个轻量级别的高可用解决方案.Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节 ...

  5. BZOJ 2938: [Poi2000]病毒 [AC自动机 拓扑排序]

    2938: [Poi2000]病毒 题意:判断是否存在无限长的不含模式串的字符串.只有01. 建出套路DP的转移图,判断有环就行了 练习一下拓扑排序 #include <iostream> ...

  6. JavaScript语言学习中的注意事项

    javascript: 基于浏览器 基于对象 事件驱动 脚本语言 由: javascript: ECMAscript(ES) DOM文档对象模型 BOM浏览器对象模型,三部分组成 使用js的三种方式 ...

  7. 学习docker on windows (1): 为什么要使用docker

    为什么要用Docker? 如果我们想使用某种pc软件, 那么在互联网上查找并安装软件的流程大致如下图: 那么这就有几个问题要弄清楚: 从哪里获得软件 App Store Linux的包管理 从某些网站 ...

  8. Vue站点的搭建之旅

      背景       很久没写博客了,这次博客分享一下最近上班空闲时间做的两个业余Demo.分别是V电影App的移动端站点[一直很喜欢用这个APP可是他们没有出对应的mobile端,所以自己开发一个, ...

  9. Wpf DataGridCheckBoxColumn 问题

    使用DataGridCheckBoxColumn  binding一个布尔属性时,发现无法checkbox无法勾选, 并且HeaderTemplate中的checkbox无法获取到viewmodel的 ...

  10. PLECS—晶闸管-第九周

    1. 单相桥式晶闸管整流电路仿真 (1)仿真电路图 (2)触发角为pi/4的手工波形图(参数设置,触发角=pi/4, 电感L = 0H) (2)模拟仿真波形图 1)参数设置:触发角=pi/4, 电感L ...