• [转]驱动程序开发—编译正传(5)


    我在前面也讲过了一些关于编译环境及工具的。在这里结合本例子我再说一下:

    DDK分为98 DDK和2000 DDK两种,它们工作起来是大同小异的,不过有些驱动程序只能在2000 DDK中使用。由于Win98注定是一种即将被淘汰的操作系统了,所以我学习的时候也没有过多的关注,我用的是2000的DDK,所以以下的所有内容都是针对2000 DDK的。

    ·准备工作
    1、确定你已经安装了Visual C++
    2、安装2000 DDK
    3、安装2000 DDK成功后,在“开始”->“程序”里应该有“Development Kits”->“Windows 2000 DDK”的项目。
    注意一定要先安装好VC,然后才安装DDK,这个顺序决不能颠倒!!
    4、保证DDKROOT环境变量设置为Windows 2000 DDK的基目录,如果不是的话,请在控制面板“系统”属性的“高级”标签环境变量编辑器中设置好这个环境变量。


    ·编写必需的文件
    编译WDM程序的时候,有两个文件是必须要有的,它们是:
    1、makefile
    (这个是什么啊?你可能会问。)对于比较年轻的程序员来说,有可能没有见过这个文件吧。其实在VC这些IDE出现之前,我们都必须使用makefile来确定项目中哪些文件需要重新编译,现在的IDE都把这个工作自动做好了
    我们要做的工作很简单,就是提供这样一个文件,它的内容是:

    #
    # DO NOT EDIT THIS FILE!!!  Edit .\sources. If you want to add a new source
    # file to this component.  This file merely indirects to the real make file
    # that is shared by all the driver components of the Windows NT DDK
    #

    !INCLUDE $(NTMAKEENV)\makefile.def


    正如它所述,不要编辑这个文件。事实上每个WDM程序所需要的makefile的内容都是一样的,也就是说,我们只需要简单地copy一个makefile到新的项目中就可以了
    2、Sources

    TARGETNAME=HelloWDM //编译出来的驱动程序的名称
    TARGETTYPE=DRIVER      //编译的类型是驱动程序编译
    DRIVERTYPE=WDM           //驱动程序的类型是WDM驱动程序
    TARGETPATH=OBJ             //生成的文件存放在OBJ目录中

    INCLUDES=$(BASEDIR)\inc;\   //这是需要引入的头文件
             $(BASEDIR)\inc\ddk;\

    TARGETLIBS=$(BASEDIR)\lib\*\free\usbd.lib\  //这是需要引入的库文件

    SOURCES=HelloWDM.cpp\    //这是源码文件


    这个文件指定了驱动程序目标名是HelloWDM.sys,是一个WDM驱动程序,生成的文件存放在OBJ目录中。值得注意的是,“=”前后不能有空格,否则编译的时候会出错。


    ·开始编译
    娃哈哈,前面罗罗嗦嗦讲了一大堆,现在终于到重点了。WDM程序的编译过程比较特殊,它不是在VC里面按F7来编译的(尽管你可以通过设置来达到这一目的),而是通过一个DDK实用工具build来完成。下面我们来讲讲具体步骤:
    1、“Debug”版的生成
    首先,我们假设你的源代码放在D:\HelloWDM里面。请跟着以下步骤:

    “开始”->“程序”->“Development Kits”->“Windows 2000 DDK”->“Checked Build Environment”

    屏幕将显示:(有“回车”的那行是需要读者你亲自打进去的)

    New or updated MSVC detected.  Updating DDK environment….

    Setting environment for using Microsoft Visual C++ tools.
    Starting dirs creation…Completed.

    D:\NTDDK>cd\HelloWDM    (回车)

    D:\HelloWDM>build    (回车)


    如果源代码没有错误的话,生成的HelloWDM.sys将存放在objchk\i386目录中。

    2、“Release”版的生成
    请跟着以下步骤:

    “开始”->“程序”->“Development Kits”->“Windows 2000 DDK”->“Free Build Environment”

    随后的步骤跟“Debug”版相同,不同的是生成的HelloWDM.sys将存放在objfre\i386目录中。
  • 相关阅读:
    116. 跳跃游戏
    182. 删除数字
    unity判断LayerMask里面是否包含你想要的Layer
    Unity Animator自动连线
    Behavior designer 行为树插件 笔记
    unity2d 完美斜坡方案
    youtube 油管视频带字幕下载
    unity资源提取工具AssetStudio
    ugui 通用页签管理器
    unity拓展编辑器入门
  • 原文地址:https://www.cnblogs.com/4kapple/p/959422.html
Copyright © 2020-2023  润新知