<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/bluesun777" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/bluesun777" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 20 Mar 2008 11:30:00 GMT</lastBuildDate><title>bluesun777的专栏</title><link>http://blog.csdn.net/bluesun777/</link><item><title>内核驱动主要数据结构</title><link>http://blog.csdn.net/bluesun777/archive/2008/03/20/2199475.aspx</link><wfw:comment>http://blog.csdn.net/bluesun777/comments/2199475.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/bluesun777/comments/commentRss/2199475.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2199475</trackback:ping><description>导读： 　　IRP是I/O request packet的缩写，即I/O请求包。驱动与驱动之间通过IRP进行通信。而使用驱动的应用层调用的CreatFile,ReadFile,WriteFile,DeviceIoControl等函数，说到底也是使用IRP和驱动进行通信。 　　一个IRP由两部分组成。首先是头部或者叫包的固定部分，是一个IRP结构。紧跟在这个头部之后的是I/O stack locations ，这是一个IO_STACK_LOCATION结构的数组，这个数组中元素的个数是根据情况而定的，由IoAllocateIrp( IN CCHAR StackSize , IN BOOLEAN ChargeQuota ) 时的参数StackSize决定。而StackSize通常由IRP发往的目标DEVICE_OBJECT的 +30 char StackSize决定。而这个StackSize是由设备对象连入所在的设备栈时，根据在设备栈中位置决定的。我们先看看IRP结构和IO_STACK_LOCATION结构的定义。 　　IRP结构定义如下 　　struct _IRP (sizeof&lt;img src =&quot;http://blog.csdn.net/bluesun777/aggbug/2199475.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Thu, 20 Mar 2008 19:30:00 +0800</pubDate><author>bluesun777</author><comments>http://blog.csdn.net/bluesun777/archive/2008/03/20/2199475.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/bluesun777/archive/2008/03/20/2199475.aspx</guid><dc:creator>bluesun777</dc:creator><fs:srclink>http://blog.csdn.net/bluesun777/archive/2008/03/20/2199475.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/bluesun777/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/bluesun777/~7403842/212083994/5513364</fs:itemid></item><item><title>铁马 秋风 塞北 杏花 春雨 江南</title><link>http://blog.csdn.net/bluesun777/archive/2008/03/14/2181852.aspx</link><wfw:comment>http://blog.csdn.net/bluesun777/comments/2181852.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/bluesun777/comments/commentRss/2181852.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2181852</trackback:ping><description>导读： 　　如果想在自己的应用程序中加入操作系统的Format（格式化）功能，就象系统的那个format utility，应该怎么做呢？用Google搜索的话，中文资料最多的一篇是《磁盘格式化的编程实现》，讲的是借用SHFormatDrive函数来调用系统的格式化工具完成格式化功能。有没有办法使用自己的代码实现呢？参考sysinternals里的一篇文章，尝试用FMIFS.dll里的一个未公开函数实现了Format功能，所有的参数都由自己给定，比如每簇大小、文件系统等待。这里我只演示了最基本的功能，如果要想程序更健壮些，则还需要做更多的工作。 　　FormatEx函数原型： 　　VOID FormatEx ( PWCHAR DriveRoot, 　　DWORD MediaFlag , 　　PWCHAR Format, 　　PWCHAR Label, 　　BOOL QuickFormat, 　　DWORD ClusterSize, 　　PFMIFSCALLBACK Callback); 　　其中FMIFSCALLBACK是: 　　typedef BOOLEAN (__stdcal&lt;img src =&quot;http://blog.csdn.net/bluesun777/aggbug/2181852.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 14 Mar 2008 20:25:00 +0800</pubDate><author>bluesun777</author><comments>http://blog.csdn.net/bluesun777/archive/2008/03/14/2181852.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/bluesun777/archive/2008/03/14/2181852.aspx</guid><dc:creator>bluesun777</dc:creator><fs:srclink>http://blog.csdn.net/bluesun777/archive/2008/03/14/2181852.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/bluesun777/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/bluesun777/~7403842/212083995/5513364</fs:itemid></item><item><title>自己实现磁盘格式化</title><link>http://blog.csdn.net/bluesun777/archive/2008/03/14/2181492.aspx</link><wfw:comment>http://blog.csdn.net/bluesun777/comments/2181492.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/bluesun777/comments/commentRss/2181492.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2181492</trackback:ping><description>导读： 　　如果想在自己的应用程序中加入操作系统的Format（格式化）功能，就象系统的那个format utility，应该怎么做呢？用Google搜索的话，中文资料最多的一篇是《磁盘格式化的编程实现》，讲的是借用SHFormatDrive函数来调用系统的格式化工具完成格式化功能。有没有办法使用自己的代码实现呢？参考sysinternals里的一篇文章，尝试用FMIFS.dll里的一个未公开函数实现了Format功能，所有的参数都由自己给定，比如每簇大小、文件系统等待。这里我只演示了最基本的功能，如果要想程序更健壮些，则还需要做更多的工作。 　　FormatEx函数原型： 　　VOID FormatEx ( PWCHAR DriveRoot, 　　DWORD MediaFlag , 　　PWCHAR Format, 　　PWCHAR Label, 　　BOOL QuickFormat, 　　DWORD ClusterSize, 　　PFMIFSCALLBACK Callback); 　　其中FMIFSCALLBACK是: 　　typedef BOOLEAN (__stdcal&lt;img src =&quot;http://blog.csdn.net/bluesun777/aggbug/2181492.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 14 Mar 2008 18:59:00 +0800</pubDate><author>bluesun777</author><comments>http://blog.csdn.net/bluesun777/archive/2008/03/14/2181492.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/bluesun777/archive/2008/03/14/2181492.aspx</guid><dc:creator>bluesun777</dc:creator><fs:srclink>http://blog.csdn.net/bluesun777/archive/2008/03/14/2181492.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/bluesun777/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/bluesun777/~7403842/212083996/5513364</fs:itemid></item><item><title>Windows磁盘驱动基础教程</title><link>http://blog.csdn.net/bluesun777/archive/2008/03/07/2155650.aspx</link><wfw:comment>http://blog.csdn.net/bluesun777/comments/2155650.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/bluesun777/comments/commentRss/2155650.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2155650</trackback:ping><description>导读： 　　本文讲述Windows磁盘驱动的主要结构功能与编写方法基础。本文描述的内容仅限于软件层面，并不与具体的硬件相关。 　　1.磁盘驱动基础 　　不少人把文件系统驱动和磁盘驱动混为一谈。实际上文件系统驱动应该与磁盘驱动是两类不同的驱动程序。文件系统仅仅考虑数据在存储设备上的保存格式（而不考虑具体是什么存储设备），而磁盘是存储设备的一种。 　　在存储设备驱动(storage driver)中，与实际的硬件设备打交道的驱动称为微端口（miniport）驱动，而更上层的驱动称为类驱动（class driver）。这里说的磁盘驱动（disk driver）是一个类驱动。类驱动具体功能通过下层的微端口驱动实现。而自己则抽象出一类设备（如磁盘），供文件系统驱动调用。这样，文件系统就不用自己去和硬件细节打交道了，在它看来所有的磁盘都是一个磁盘设备。这就是类驱动存在的意义。 　　如果认为微端口驱动都是硬件驱动的话，则类驱动是硬件驱动之上的软件驱动。 　　要学习磁盘驱动的编写，可以参考WINDDK\src\storage\class\disk,这是一个SCSI磁盘类驱动（SCSI disk&lt;img src =&quot;http://blog.csdn.net/bluesun777/aggbug/2155650.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 07 Mar 2008 17:26:00 +0800</pubDate><author>bluesun777</author><comments>http://blog.csdn.net/bluesun777/archive/2008/03/07/2155650.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/bluesun777/archive/2008/03/07/2155650.aspx</guid><dc:creator>bluesun777</dc:creator><fs:srclink>http://blog.csdn.net/bluesun777/archive/2008/03/07/2155650.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/bluesun777/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/bluesun777/~7403842/212083997/5513364</fs:itemid></item><item><title>Windows文件系统过滤驱动开发教程-楚狂人</title><link>http://blog.csdn.net/bluesun777/archive/2008/03/06/2154164.aspx</link><wfw:comment>http://blog.csdn.net/bluesun777/comments/2154164.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/bluesun777/comments/commentRss/2154164.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2154164</trackback:ping><description>导读： 　　文件系统 过滤驱动 开发 教程 　　第一部分：概述，钻研目的和准备 　　我经常在网上碰到同行请求开发文件系统驱动。Windows的PC机上以过滤驱动居多。其目的不外乎有以下几种： 　　1、用于防病毒引擎。希望在文件读写的时候，捕获读写的数据内容，然后检测其中是否含有病毒代码。 　　2、用于加密文件系统，希望在文件写过程中对数据进行加密，在读的过程中进行解密。 　　3、设计透明的文件系统加速。读写磁盘的时候，何时的Cache算法是可以大大提高磁盘的工作效率。Windows本身的Cache算法未必适合一些特殊的读写磁盘操作（如流媒体服务器上读流媒体文件）。 　　文件系统驱动是Windows系统中最复杂的驱动种类之一。不能对IFSDDK中的帮助抱太多希望，文件系统的DDK帮助极其简略，很多重要部分仅仅轻描淡写的带过。如果安装了IFSDDK，应该阅读SRC\FileSys\OSR_Docs下的文档。而不仅仅是DDK帮助。 　　文件系统驱动开发方面的书籍很少。中文资料仅仅见过候捷翻译过的一本驱动开发的书上有两三章涉及，而且也仅仅只能用于9X的VXD驱动。NT文件系统见过一本英&lt;img src =&quot;http://blog.csdn.net/bluesun777/aggbug/2154164.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Thu, 06 Mar 2008 23:31:00 +0800</pubDate><author>bluesun777</author><comments>http://blog.csdn.net/bluesun777/archive/2008/03/06/2154164.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/bluesun777/archive/2008/03/06/2154164.aspx</guid><dc:creator>bluesun777</dc:creator><fs:srclink>http://blog.csdn.net/bluesun777/archive/2008/03/06/2154164.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/bluesun777/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/bluesun777/~7403842/212083998/5513364</fs:itemid></item><item><title>文件过滤驱动之一 - rageliu</title><link>http://blog.csdn.net/bluesun777/archive/2008/03/06/2153597.aspx</link><wfw:comment>http://blog.csdn.net/bluesun777/comments/2153597.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/bluesun777/comments/commentRss/2153597.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2153597</trackback:ping><description>导读： 　　终于到了礼拜天，抓紧时间写了段文档。 　　由于不是一次两次就能说的清楚，所以我分块来说明，这篇希望能讲解出一个驱动的框架，以后的讲解就在这个框架的基础上深入展 　　开。 　　对于文件过滤驱动的整体描述，我认为下面这个帖子里codewarrior(会思考的草) 说的很不错，在次感谢 　　http://community.csdn.net/Expert/topic/4849/4849948.xml?temp=.1946985 　　这里先对ddk里面几个基础的东东大概说明下： 　　入口函数： 　　和win32编程一样，驱动也有一个入口函数DriverEntry(相当于main WinMain)，这里注意他们之间的运行方式是不同的，win32入口 　　函数后是进入消息循环，驱动DriverEntry的主要功能是注册一些IRP的相当于回调处理方式的函数,也就是我们所说的派遣函数。。 　　IRP: 　　IRP(I/O 请求包),驱动编程里十分重要的概念，说白了它就是一个数据结构，里面有对应操作需要的数据，比如我们应用层调用了 　　CreateFile函数，在驱动层可能就构建一个&lt;img src =&quot;http://blog.csdn.net/bluesun777/aggbug/2153597.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Thu, 06 Mar 2008 19:29:00 +0800</pubDate><author>bluesun777</author><comments>http://blog.csdn.net/bluesun777/archive/2008/03/06/2153597.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/bluesun777/archive/2008/03/06/2153597.aspx</guid><dc:creator>bluesun777</dc:creator><fs:srclink>http://blog.csdn.net/bluesun777/archive/2008/03/06/2153597.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/bluesun777/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/bluesun777/~7403842/212083999/5513364</fs:itemid></item><item><title>IRP 乱杂谈</title><link>http://blog.csdn.net/bluesun777/archive/2008/03/05/2151143.aspx</link><wfw:comment>http://blog.csdn.net/bluesun777/comments/2151143.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/bluesun777/comments/commentRss/2151143.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2151143</trackback:ping><description>导读： 　　IRP 是 I/O request packet 的缩写，即 I/O 请求包。驱动与驱动之间通过 IRP 进行通信。而使用驱动的应用层调用的 CreatFile,ReadFile,WriteFile,DeviceIoControl 等函数，说到底也是使用 IRP 和驱动进行通信。 　　一个 IRP 由两部分组成。首先是头部或者叫包的固定部分，是一个 IRP 结构。紧跟在这个头部之后的是 I/O stack locations ，这是一个 IO_STACK_LOCATION 结构的数组，这个数组中元素的个数是根据情况而定的，由 IoAllocateIrp( IN CCHAR StackSize , IN BOOLEAN ChargeQuota ) 时的参数 StackSize 决定。而 StackSize 通常由 IRP 发往的目标 DEVICE_OBJECT 的 +30 char StackSize 决定。而这个 StackSize 是由设备对象连入所在的设备栈时，根据在设备栈中位置决定的。我们先看看 IRP 结构和 IO_STACK_LOCATION 结构的定义。&lt;img src =&quot;http://blog.csdn.net/bluesun777/aggbug/2151143.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Thu, 06 Mar 2008 01:28:00 +0800</pubDate><author>bluesun777</author><comments>http://blog.csdn.net/bluesun777/archive/2008/03/05/2151143.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/bluesun777/archive/2008/03/05/2151143.aspx</guid><dc:creator>bluesun777</dc:creator><fs:srclink>http://blog.csdn.net/bluesun777/archive/2008/03/05/2151143.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/bluesun777/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/bluesun777/~7403842/212084000/5513364</fs:itemid></item><item><title>AddDevice例程</title><link>http://blog.csdn.net/bluesun777/archive/2008/03/05/2150960.aspx</link><wfw:comment>http://blog.csdn.net/bluesun777/comments/2150960.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/bluesun777/comments/commentRss/2150960.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2150960</trackback:ping><description>AddDevice例程--------------------------------------------------------------------------------在前一节中，我讲述了当WDM驱动程序被第一次装入时如何初始化。通常，一个驱动程序可以被多个设备利用。WDM驱动程序有一个特殊的AddDevice函数，PnP管理器为每个设备实例调用该函数。该函数的原型如下：NTSTATUS AddDevice(PDRIVER_OBJECT DriverObject, PDEVICE_OBJECT pdo){} DriverObject参数指向一个驱动程序对象，就是你在DriverEntry例程中初始化的那个驱动程序对象。pdo参数指向设备堆栈底部的物理设备对象。对于功能驱动程序，其AddDevice函数的基本职责是创建一个设备对象并把它连接到以pdo为底的设备堆栈中。相关步骤如下： 调用IoCreateDevice创建设备对象，并建立一个私有的设备扩展对象。 寄存一个或多个设备接口，以便应用程序能知道设备的存在。另&lt;img src =&quot;http://blog.csdn.net/bluesun777/aggbug/2150960.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Thu, 06 Mar 2008 00:50:00 +0800</pubDate><author>bluesun777</author><comments>http://blog.csdn.net/bluesun777/archive/2008/03/05/2150960.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/bluesun777/archive/2008/03/05/2150960.aspx</guid><dc:creator>bluesun777</dc:creator><fs:srclink>http://blog.csdn.net/bluesun777/archive/2008/03/05/2150960.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/bluesun777/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/bluesun777/~7403842/212084001/5513364</fs:itemid></item><item><title>模块化的设备驱动程序设计方法</title><link>http://blog.csdn.net/bluesun777/archive/2008/03/05/2150815.aspx</link><wfw:comment>http://blog.csdn.net/bluesun777/comments/2150815.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/bluesun777/comments/commentRss/2150815.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2150815</trackback:ping><description>导读： 　　(1.辽宁工程技术大学机械工程学院,辽宁阜新123000；2.华中科技大学材料科学与工程学院，湖北武汉430074) 　　摘 要：介绍了Windows NT下设备驱动程序的开发环境，一种模块化的设计方法，应用程序与驱动程序之间的同步以及驱动程序的安装。 　　1引言 Windows NT/2K以其形象直观的界面、简单方便的操作，基本上已经取代DOS成为测控软件的操作平台。又因为Windows NT/2K出于安全性、稳定性的考虑，为了防止用户应用程序访问和更改重要的操作系统数据，Windows NT/2K使用两种“处理器访问模式”：用户态和核心态。在用户态，应用程序不能直接对硬件进行访问和操作；而在核心态中，程序对任何I/O设备有全部的访问权，还能访问任何虚地址和控制虚拟内存硬件。为了使用户态的程序访问和操作硬件，必须通过某种机制，也就是使用设备驱动程序跨越操作系统的边界对物理硬件进行访问操作。同时提供一些控制接口，进而用户态的应用程序利用设备驱动程序提供的接口间接地对物理硬件进行访问操作。2设备驱动程序的开发环境 安装4种软件：Microsoft Visual C+&lt;img src =&quot;http://blog.csdn.net/bluesun777/aggbug/2150815.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Thu, 06 Mar 2008 00:26:00 +0800</pubDate><author>bluesun777</author><comments>http://blog.csdn.net/bluesun777/archive/2008/03/05/2150815.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/bluesun777/archive/2008/03/05/2150815.aspx</guid><dc:creator>bluesun777</dc:creator><fs:srclink>http://blog.csdn.net/bluesun777/archive/2008/03/05/2150815.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/bluesun777/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/bluesun777/~7403842/212084002/5513364</fs:itemid></item><item><title>如何编译驱动程序</title><link>http://blog.csdn.net/bluesun777/archive/2008/03/01/2136857.aspx</link><wfw:comment>http://blog.csdn.net/bluesun777/comments/2136857.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/bluesun777/comments/commentRss/2136857.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2136857</trackback:ping><description>导读： 　　驱动的编译和上层应用程序的编译完全不同，作为初学者应该先了解一下，即使你还不懂得怎么写驱动程序。 　　首先安装DDK，然后随便找一个例子来测试。在菜单中找到BUILD环境菜单执行,不同的系统要使用不同的BUILD环境。会打开一个DOS窗口，这时CD到那个例子程序，输入build –cZ回车就可以了。 　　 　　为了使build能正确运行, 在需被编译的源文件目录下面必须有SOURCES文件, 注意这个文件没有后缀名。 　　SOURCES的文件格式: 　　TARGETNAME=drivername, 　　- 本参数用于指定生成的设备驱动程序名称(不需后缀名),所产生的文件 　　- 为drivername.sys. 　　 　　TARGETPATH=.\lib 　　- 本参数用于指定生成的设备驱动程序所存放的路径. 一般采用.\lib. 　　 　　TARGETTYPE=DRIVER 　　- build能够生成许多不同的目标对象,设备驱动程序一般选用DRIVER. 　　 　　INCLUDES=path1;path2;... 　　- 本参数是可选的, 用于指定其他的#incl&lt;img src =&quot;http://blog.csdn.net/bluesun777/aggbug/2136857.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sat, 01 Mar 2008 18:11:00 +0800</pubDate><author>bluesun777</author><comments>http://blog.csdn.net/bluesun777/archive/2008/03/01/2136857.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/bluesun777/archive/2008/03/01/2136857.aspx</guid><dc:creator>bluesun777</dc:creator><fs:srclink>http://blog.csdn.net/bluesun777/archive/2008/03/01/2136857.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/bluesun777/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/bluesun777/~7403842/212084003/5513364</fs:itemid></item></channel></rss>