建立一个驱动程序

时间:2015-10-28 07:59:47

标签: windows driver wdk

我在驱动程序中遇到了一些问题。我必须解决它,在此之前我需要构建它。我没有驾驶员的经验。 我有源代码&蝙蝠文件它可能正在使用WDK 7(我不确定) 任何人都可以指导我使用下面的bat文件构建驱动程序项目。 当然我可以理解bat文件是设置环境变量&调用build.exe

我的主要问题是:
1.我需要安装哪个WDK,以便我可以在bat文件中指定其路径 2.如何运行bat文件,我是否需要在visual studio命令提示符下运行或如何运行?

如果你给一些关于为初学者构建驱动程序的一般概念,我将非常感激。感谢。

[如果您需要任何信息,我可以提供,请随时询问]

bat fie:

rem @echo off
rem --------------------------------------------------------------------                   
rem SafeBoot Windows NT 32 bit driver build script
rem --------------------------------------------------------------------
set MC_ENV=fre

if "%1%"=="debug" goto dbg
if "%2%"=="debug" goto dbg
if "%3%"=="debug" goto dbg
goto nodbg

:dbg
echo **** DEBUG BUILD ****
set MC_ENV=chk

:nodbg
rem --------------------------------------------------------------------
rem We want the absolute path of this directory, so we use a little utility
rem that creates a batch file that sets this into a environment variable.
rem --------------------------------------------------------------------
..\Translations\Bin\setcd -d DRV_DIR > thisdir.bat
call thisdir
del thisdir.bat

if NOT "%DDK64%"=="" goto x1
set DDK64=D:\Tools\WinDDK\6000
rem set DDK64=C:\WinDDK\6001.18001
:x1

set MSTOOLS=%MSSdk%
set BASEDIR=
set DDKBUILDENV=
set NTDBGFILES=
set DDK_INC_PATH=
set DDK_LIB_DEST=
set DDK_LIB_PATH=
set CRT_INC_PATH=
set CRT_LIB_PATH=
set BUILD_ALT_DIR=

call %DDK64%\bin\setenv %DDK64% %MC_ENV% i386

echo %DRV_DIR%

cd %DRV_DIR%

if NOT "%1"=="/a" goto build
del /q objfre_wlh_x86\i386\*.*
del /q objchk_wlh_x86\i386\*.*
rmdir /Q /S driver32
md driver32

:build
rem set MSC_OPTIMIZATION=/Od
echo Building started...
%DDK64%\bin\x86\build.exe -f -z -E
echo Building completed...
if ERRORLEVEL 1 goto error

rem copy objfre_wlh_x86\i386\McPvDrv.sys driver32\McPvDrv.sys

if "%MC_ENV%"=="chk" (
md ..\..\..\build\Win32\Debug
copy objchk_wlh_x86\i386\McPvDrv.sys ..\..\..\build\Win32\Debug\McPvDrv.sys
echo chk

2 个答案:

答案 0 :(得分:2)

如果您想为Windows 7或更新版本构建驱动程序,请使用与最新版本的WDK 10集成的Visual Studio 2015.通过这种方式构建驱动程序会更容易。

如果要为Windows XP构建驱动程序,则必须使用WDK 7并使用类似于您的脚本。 Wdk 7没有与visual studio集成。您必须在名为sources的特殊文件中指定源文件。请参阅Wdk 7中的示例驱动程序。您可以找到用于构建此类驱动程序的良好cmd https://www.osronline.com/article.cfm?article=43此网站具有最佳驱动程序开发提示

如果您不需要XP支持,我强烈建议您使用Visual Studio 2015,Windows sdk和Windows 10 wdk轻松实现。

LE: 您还可以使用支持与WDK 8和WDK 8.1集成的Visual Studio 2013,但不支持与WDK 10集成。

答案 1 :(得分:0)

从你的.bat文件中,它有:

if NOT "%DDK64%"=="" goto x1
set DDK64=D:\Tools\WinDDK\6000
rem set DDK64=C:\WinDDK\6001.18001
:x1

所以,它可能正在寻找那个版本。如果是,请执行以下页面:What is the Microsoft name for WinDDK version 6001.18001?

此外,请参阅https://en.wikipedia.org/wiki/Windows_Driver_Kit默认情况下,您的.bat想要构建6000(已发布:2006年11月29日,适用于Windows Vista)

您也可以尝试使用最新版本。这是WDK 10的下载指令链接。 WDK 7应该类似:https://msdn.microsoft.com/en-us/library/windows/hardware/ff557573%28v=vs.85%29.aspx所以找到正确的页面。此页面还包含指向其他页面的链接,可帮助您回答其他问题。

在任何情况下,您都需要通过将DDK64变量设置为指向它来修改.bat以指向正确的WinDDK目录。

你可以在不同的目录中安装多个不同的版本,但我的猜测是最新版本可以让你构建向后兼容的版本。因此,如果您正在为Win7构建(例如),请获取Win7的最新DDK(请参阅Wiki页面中的表格)。