Сборка водителя
У меня какая-то проблема в драйвере, и я должен устранить ее, до этого мне нужно собрать ее. У меня нет опыта работы водителем. У меня есть исходный код и файл bat. Это может быть использование WDK 7(я не уверен) Может кто-нибудь помочь мне в создании проекта драйвера с файлом ниже bat. Конечно, я могу понять, что bat-файл устанавливает переменные окружения и вызывает build.exe
Мои основные вопросы:
1. Какой WDK мне нужно установить, чтобы я мог указать его путь в файле bat
2. Как запустить файл bat, мне нужно запустить в командной строке visual studio или как?
Если вы дадите некоторую общую идею по созданию драйвера для начинающего, это будет очень цениться. Благодарю.
[если вам нужна информация, которую я могу предоставить, пожалуйста, не стесняйтесь спрашивать]
летучая мышь
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 ответа
Если вы хотите создать драйвер для Windows 7 или более поздней версии, используйте Visual Studio 2015, которая интегрирована с последней версией WDK 10. В этом случае создание драйверов намного проще.
Если вы хотите собрать драйверы для Windows XP, вам придется использовать WDK 7 и использовать сценарии, подобные вашим. Wdk 7 не имеет интеграции с визуальной студией. Вы должны указать исходный файл в специальном файле с именем sources. См. Пример драйверов из Wdk 7. Вы можете найти хороший cmd для сборки таких драйверов https://www.osronline.com/article.cfm?article=43 Этот сайт содержит лучшие советы разработчиков драйверов.
Если вам не нужна поддержка XP, я настоятельно рекомендую вам сделать это намного проще, используя Visual Studio 2015, Windows SDK и Windows 10 WDK.
Л.Е.: Вы также можете использовать Visual Studio 2013, которая поддерживает интеграцию с WDK 8 и WDK 8.1, но не с WDK 10.
Из вашего.bat файла он имеет:
if NOT "%DDK64%"=="" goto x1
set DDK64=D:\Tools\WinDDK\6000
rem set DDK64=C:\WinDDK\6001.18001
:x1
Так что, возможно, он ищет эту версию. Если это так, вот страница: Как называется Microsoft для WinDDK версии 6001.18001?
Также см. https://en.wikipedia.org/wiki/Windows_Driver_Kit По умолчанию ваш.bat хочет построить 6000 (выпущено: 29 ноября 2006 г. для Windows Vista)
Вы также можете попробовать использовать последнюю версию. Вот ссылка на WDK 10 с инструкциями по загрузке. WDK 7 должен быть похожим: https://msdn.microsoft.com/en-us/library/windows/hardware/ff557573%28v=vs.85%29.aspx поэтому найдите нужную страницу. На этой странице также есть ссылки на другие страницы, которые могут помочь ответить на ваши другие вопросы.
В любом случае вам нужно изменить.bat, чтобы он указывал на правильный каталог WinDDK, установив переменную DDK64, чтобы он указывал на нее.
Вероятно, вы можете установить несколько разных версий в разные каталоги, но я думаю, что последние позволят вам создавать обратно совместимые версии. Итак, если вы создаете для Win7 (например), получите последний DDK для Win7 (см. Таблицу на вики-странице).