2016년 5월 27일 금요일

설치파일(inf)에 대한 이해


[Version]
Signature="$WINDOWS NT$"


- $windows NT$, $windows 95$, $Chicago$ 중의 하나를 가진다.


windows NT : NT 기반으로 설계된 모든 운영체제에서 사용할 수 있다는 의미


windwos 95 : windows 9x/ME 에서 사용할 수 있다는 의미


Chicago : 모든 윈도우 운영체제에서 사용할 수 있다는 의미


 


Class=Hajesoft


- 해당하는 드라이버 설치를 위한 디바이스 유형을 명시한다. 예를들어, 해당하는 드라이버가


키보드, 디스플레이, 네트워크, 멀티미디어 등 어떤 유형으로 설치될지를 결정한다.



ClassGuid = {cfb15040-5bc7-11d3-b194-0060b0efd334}


- Class 지시자가 가리키는 항목의 유일성을 증명하는 GUID(Global Unique IDentifier)다.



Provider="Hajesoft, Inc."


- INF 파일을 제공하는 제공자의 이름을 기록하는 지시자다.


 


LayoutFile = filename.inf[,filename.inf]...


- 현재 설치 파일 외에 다른 INF 파일들을 포함해야 한다면 위와 같은 지시자를 사용할 수 있다.


보통 이렇게 포함하는 INF 파일들은 Needs 지시자, Include 지시자 등을 가지고 있는 설치 파일


들이 대부분이다.


 


CatalogFile=filename.cat


- Microsoft Windows Hardware Quality Labs(WHQL)로 부터 인증 테스트를 거친 드라이버들은


카탈로그 파일(cat) 이라는 파일을 가지고 있게 되는데, 이런 경우 설치 파일이 해당하는 카탈로그


파일을 지시하는 CatalogFile 지시자를 가져야 한다.


 


DirverVer=mm/dd/yyyy[,x.y.v.z]


- 윈도우 2000 이상의 운영체제에서만 요구되는 지시자로서, 드라이버 생성날짜를 입력하는 지시자다.


 


[SourceDisksNames] : 설치에 사용할 파일들이 보관된 경로를 설명하는섹션
diskid=disk-description, subdir..


diskid는 1,2,3 처럼 서로 다른 수를 의미하는 식별 ID를 명시한다.


dis-description은 파일이 보관된 볼륨의 이름을 명시한다.


subdir 은 볼륨 아래에 하위 경로를 따로 두는 경우에 사용한다.


 


1=%DiskId%


 


 


[SourceDisksFiles] : 설치 과정 중에 사용할 원본 파일이 SourceDiskFiles 섹션에서 명시한 지시자 중 어떤 지시자 아래 존재하는지를 설명하는 섹션이다.



filename=diskid[.[subdir]]


filename은 설치과정중에 사용할 원본 대상 파일 이름을 기억한다.


 


SIMPLE.sys=1


 


[ClassInstall32]
Addreg=AddHwClass


 


[AddHwClass]
HKR,,,,%ClassName%
HKR,,Icon,,"-5"


 


 


 


[DestinationDirs] : 설치 과정 중 원본 파일이 복사될 장소를 가리키는 섹션
DefaultDestDir=dirid[,subdir]


dirid는 윈도우에서 정의된 디렉토리를 알려주는 ID로 아래에 나열한 값을 쓸 수 있다.


10 : 윈도우 디렉토리


11 : 시스템 디렉토리


12 : 드라이버 디렉토리, 시스템 디렉토리IOSUBSYS 디렉토리


17 : INF 디렉토리


-1 : 절대경로


 


DefaultDestDir=12


 


 


[Manufacturer] : 제조사 정보를 보관하는 섹션이다. 하나의 설치 파일은 여러 제조사 정보를 모두 포함할 수도 있다.


manufacturer-identifier


다음과 같은 형식으로 설명된다.


%strkey% = models-section-name


%strkey% 는 제조사 이름, models-section-name 은 구체적인 모델 정보를 담고있는 섹션이름, TargetOSVersion은 지원운영체제 버전이다.


 


%Mfg%=MfgDeviceSection


 


 


 


[MfgDeviceSection]
%DeviceDesc% = HAJESAMPLE, HAJESOFT_VIRTUAL_PNPID_FOR_SIMPLEDEVICE


 


[HAJESAMPLE]
CopyFiles=@SIMPLE.sys


 


[HAJESAMPLE.Services]
AddService = SIMPLE,%SPSVCINST_ASSOCSERVICE%,Haje_Service_Inst


 


[Haje_Service_Inst]
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_MANUAL_START%
ErrorControl = %SERVICE_ERROR_NORMAL%
ServiceBinary = %12%SIMPLE.sys


 


[Strings] : 설치파일 내에서 사용하는 모든 문자열 값을 설명하는 섹션이다.
strkey=["]some string["]


strkey 은 문장려 변수 이름을 정의한다. some string은 문자열 값을 정의한다.


 


ClassName = "Hajesoft"
DeviceDesc = "Hajesoft Sample Simple Device"
DiskId = "Sample Install Disk 1"
Mfg = "Hajesoft, Inc."
SPSVCINST_ASSOCSERVICE = 0x00000002
SERVICE_KERNEL_DRIVER = 1
SERVICE_MANUAL_START = 3
SERVICE_ERROR_NORMAL = 1

댓글 없음:

댓글 쓰기