본문 바로가기

그 외..

VS2010 DDK 연동 (Windows7)

그 전에 읽어보기 : http://driveronline.org/bbs/view.asp?tb=begin&GotoPage=1&s_bulu=&s_key=&no=6

알아두면 좋은 사이트 : http://www.osronline.com/article.cfm?article=43


1. WDK 설치 (아래 다운로드 링크 확인)

http://www.microsoft.com/en-us/download/details.aspx?id=11800

(다운로드된 ISO파일은 압축해제 후, exe파일을 실행하면 된다.)


2. 첨부한 파일을 다운로드

DDK_Windows7.zip


3. 파일을 압축해제한 후, 'ddkbuild.bat' 을 에디터 프로그램을 이용하여 수정한다.

줄번호14을 보면 아래와 같이 작성되어있다. 

 set WIN7BASE=C:\WinDDK\7600.16385.1 //현재 경로는 Default설치 경로.

여기서, 'WIN7BASE'부분을 사용하는 OS맞춰 수정하면 된다. 

(수정 문구 참조 : http://www.hollistech.com/Resources/ddkbuild/ddkbuildhelp3_15.htm)


수정 후, 저장한 다음 VisualStudio 2010 설치경로로 이동하여, 파일을 넣어준다.

 C:\Program Files\Microsoft Visual Studio 10.0\VC\bin //64bit의 경우, Program Files (x86)로 변경.


4. Visual Studio 2010을 실행한다.


5. [새 프로젝트] - [Visual C++(일반)] - [메이크파일 프로젝트]를 선택하여 프로젝트를 생성한다.

    (이 때, 프로젝트의 경로에 공백문자를 포함하지 않도록 주의한다.)


6. 마법사 화면이 [디버그 구성 설정] or [릴리즈 구성 설정]일 경우 아래와 같이 입력한다.

빌드옵션 참조 : http://blog.naver.com/outless/110123943893

 [디버그 구성 설정]

 빌드 명령줄 : ddkbuild -WIN7 checked .

 다시 빌드 명령줄 : ddkbuild -WIN7 checked . -cZ


 [릴리즈 구성 설정] (입력이 되지 않을 경우, 아래 '디버그와 동일한 설정'체크박스의 체크를 해제한다.)

 빌드 명령줄 : ddkbuild -WIN7 free .

 다시 빌드 명령줄 : ddkbuild -WIN7 free . -cZ


7. 솔루션 탐색기에서 지금 생성한 프로젝트를 선택한 후, 마우스 오른쪽 버튼을 클릭하여 [속성] 메뉴를 선택한다.


8. [속성]창에서 '구성 속성' - 'VC++ 디렉터리'로 이동한다.

'포함 디렉터리'에 아래 경로를 추가한다.

C:\WinDDK\7600.16385.1\inc\api

C:\WinDDK\7600.16385.1\inc\mfc42

C:\WinDDK\7600.16385.1\inc\ddk


'라이브러리 디렉터리'에 아래 경로를 추가한다.

C:\WinDDK\7600.16385.1\win7\i386


9. 소스파일을 작성한다.

driver.c

 #include <ntddk.h>


VOID SIMPLE_Unload(IN PDRIVER_OBJECT DriverObject){}


NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)

{

     NTSTATUS returnStatus = STATUS_SUCCESS;

     DriverObject->DriverUnload = SIMPLE_Unload;

     return returnStatus;

}


10. 2번에서 첨부한 파일 중, MAKEFILE, SOURCES파일을 9번에서 작성한 소스파일의 위치에 복사한다.

      SOURCES파일을 에디터 프로그램을 이용하여 수정한다.

SOURCES

 TARGETNAME=ddktest   //컴파일 후, 생성될 .sys 파일의 이름 

 TARGETPATH=obj

 TARGETTYPE=DRIVER

 SOURCES=driver.c   //9번에서 작성한 소스파일의 이름으로 변경한다.


11. 컴파일작업을 완료하면, ddktest.sys파일이 생성된다.

.sys 파일의 위치

디버그 : 프로젝트 폴더\objchk_win7_x86\i386

릴리즈 : 프로젝트 폴더\objfre_win7_x86\i386