참고. Visual Studio 2005 DDK Build 환경 구축
DDK 다운로드 및 설치
아래의 링크를 통해서 Driver Develop Kit을 다운 받도록 하자
http://www.microsoft.com/whdc/devtools/ddk/default.mspx
다운로드한 DDK ISO 이미지를 이용해서 설치한 후 [내컴퓨터]- [속성] - [고급] - [환경변수]에서
사용자 변수를 추가하도록 한다. 설정 후 재부팅을 해주어야지 적용이 된다.
변수 이름에 대한 것은 아래의 내용을 참고.
For the W2K DDK the environment variable is W2KBASE, and the flag is -W2K.
For the XP DDK the environment variable is XPBASE, and the flag is -XP.
For the Windows 2003 Server and W2K3SP1 DDK the environment variable is WNETBASE, and the flag is -WNET.
For the LDK (Longhorn Beta build 4051) the environment variable is WLHBASE and the flag is -WLH
Visual Studio 2005에서 Driver Code를 빌드하려면 ddkbuild Tool을 이용하면 쉽게 Build가 가능하다.
http://www.osronline.com/article.cfm?article=43
위의 사이트에서 다운로드가 가능(가입필요)
파일 다운로드: ddkbuild_v72.zip
다운로드한 파일의 압축을 풀면 cmd 파일을 확인 할 수 있는데 이 파일을 아래의 경로에 복사해 넣도록 하자
C:\Program Files\Microsoft Visual Studio 8\VC\bin
이것으로 기본적인 준비는 끝났다. 이제 실제 Project를 만들어서 Build해보도록 하자.
HelloDriver 컴파일 및 빌드
먼저 Visual Studio2005를 실행 시키고 프로젝트 생성으로 이동해서 [Visual C++] - [Makfile Project]를 선택하도록
하자. 프로젝트가 생성되는 경로에서 공백을 허용하지 않으니 확인하고 설정을 하도록 하자.
Build에 대한 설정은 아래의 그림을 참조 실행파일 *.exe는 무시해도 된다.
Release 의 경우에는 checked 설정을 free로 변경해주고 Build해주면 되므로, 확인하도록...
위의 과정까지 마치게 되면 Makefile Project가 생성이 되지만, 아직 source파일이 없으므로 Build를 할 수 없다.
아래의 HelloDriver.cpp 파일을 작성해서 프로젝트에 추가하도록 하자.
- #include <ntddk.h>
- void HelloUnload(IN PDRIVER_OBJECT DriverObject)
{
KdPrint(("HelloUnload...\n")) ;
} - NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
KdPrint(("Hello Driver World\n")) ;
DriverObject->DriverUnload = HelloUnload ;
return STATUS_SUCCESS;
}
Driver 코드를 빌드하려면 소스파일이외에도 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>
- TARGETNAME=HelloWorld
TARGETPATH=obj
TARGETTYPE=DRIVER
SOURCES=HelloDriver.c
위의 두 파일은 확장자를 가지지 않게 생성을 해야되며 파일명은 대소문자를 가리지 않지만 되도록이면 대문자로
설정하는 것을 권한다. 파일명이 틀릴 경우 컴파일이 되지 않으니 철자를 확인해서 삽질(??)을 하지 않도록 주의하자.
이제 Build Solution(F7)을 통해서 빌드를 하면, HelloDriver.sys파일이 $프로젝트경로\HelloDriver\objfre_wnet_x86\i386
위치에 생성이 되는 것을 확인을 할 수 있다. 만약 *.sys파일이 생성이 되지 않았을 경우에는 Build log를 확인 후 재설정을
하도록@
History
Last edited on 10/03/2008 02:55 by raptor
Comments (0)