- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一 准备
DDK版本:Windows DDK 3790
IDE:Visual Studio 2005
二 用DDK环境编译驱动
这种编译驱动的办法是DDK文档中所提倡的办法。此种方法需要编写一个编译脚本文件,在这个脚本中描述了DDK驱动程序的源文件、用到的lib文件和inude路径名、编译输出的目录和文件名等信息。编写此类脚本对于Windows程序员可能比较陌生,尤其是当源文件较多时,编写脚本文件可能显得更如麻烦。在源程序的相同目录下创建两个文件makefile和Sources,这两个文件都是文本文件,内容如下。Makefile这个文件不要修改
#
# 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
Sources这个文件参考实际情况修改
!if "$(DDK_TARGET_OS)"=="Win2K"
TARGETNAME=Passthru_2000
!elseif "$(DDK_TARGET_OS)"=="WinXP"
TARGETNAME= Passthru _XP
!elseif "$(DDK_TARGET_OS)"=="WinNET"
TARGETNAME= Passthru _03Server
!endif
TARGETPATH=obj
TARGETTYPE=DRIVER
C_DEFINES=$(C_DEFINES) -DNDIS_MINIPORT_DRIVER -DNDIS_WDM=1
!if !defined(DDK_TARGET_OS) || "$(DDK_TARGET_OS)"=="Win2K"
#
# The driver is built in the Win2K build environment
#
C_DEFINES=$(C_DEFINES) -DNDIS40_MINIPORT=1
C_DEFINES=$(C_DEFINES) -DNDIS40=1
!else
#
# The driver is built in the XP or .NET build environment
# So let us build NDIS 5.1 version.
#
C_DEFINES=$(C_DEFINES) -DNDIS51_MINIPORT=1
C_DEFINES=$(C_DEFINES) -DNDIS51=1
!endif
# Uncomment the following to build for Win98/SE/WinMe
# This causes several APIs that are not present in Win9X to be
# ifdef'ed out.
# C_DEFINES=$(C_DEFINES) -DWIN9X=1
PRECOMPILED_INCLUDE=precomp.h
PRECOMPILED_PCH=precomp.pch
PRECOMPILED_OBJ=precomp.obj
!if !defined(DDK_TARGET_OS) || "$(DDK_TARGET_OS)"=="Win2K"
TARGETLIBS=$(DDK_LIB_PATH)\ndis.lib \
$(DDK_LIB_PATH)\ntstrsafe.lib
!else
TARGETLIBS=$(DDK_LIB_PATH)\ndis.lib
!endif
USE_MAPSYM=1
INCLUDES=
SOURCES=\
miniport.c \
passthru.c \
passthru.rc \
protocol.c \
PTEXTEND.C \
filter.c
前7行说明此驱动的名称$(DDK_TARGET_OS)是从外面的命令行传递进来的。第行指明此驱动的类型为NT型驱动。。TARGETLIBS是编译时要链接的库INCLUDES是附加的包含目录。SOURCES指定源文件。编写完这两个脚本后,在Windows的开始菜单中选择“Windows XP Checked Build Environment”编译环境。Checked版本Free版本。两者的区别类似于Win32程
文档评论(0)