You cannot see this page without javascript.

inf 설치시 경고창 안뜨게 하기

조회 수 430 추천 수 0 2011.06.22 15:14:43
64bit OS에서 변경된 보안기능으로 서명되지 않은 장치 드라이버는 사용할수 없기 때문에 드라이버 파일에 모든 인증을 받아 사용해왔다.
 
XP 64bit에서는 NDIS 5.x 를 지원하는 Passthru를 기반으로 작성했고 64bit Win7에서는 NDIS 6.x 이상을 지원하는 filter를 기반으로 작성하였기 때문에 각각 inf 파일을 이용하여 설치해야 한다.
따라서 bindview 예제를 가지고 설치 테스트를 했는데 이 설치 과정에서 문제가 발생했다.
 
분명 singtool로 드라이버 인증을 하였음에도 불구하고 서명되지 않은 어쩌구 저쩌구 설치하겠느냐? 설치하지 않겠느냐? 라는 대화창이 뜬다.
사용자에게 선택권을 주면 사용자가 설치하지 않는 경우가 있기 때문에 보안 프로그램 특성상 경고창 없이 설치를 해야만 하기때문에 이 과정을 강제로 skip을 해야한다.
 
00.jpg

 

서명 어쩌구 저쩌구 애매한 문구 때문에 다소 삽질(?)을 했으나 결국 inf파일로 설치하는 드라이버는 Windows Logo 관련 WHQL 인증을 받지 않으면 위와 같은 경고창이 뜨는걸 확인.
 
WHQL인증을 받아볼까 알아봤다가 .... 포기하고 ...
결국 bindview 코드를 분석해서 수정하고 설치하는 몇차례 삽질을 거쳐 아래의 과정으로 경고창 없이 설치가 가능하다.
 
1. bindview 예제에 있는 SetupCopyOEMInf 를 생략하고 INetCfgClassSetup class의 Install 을 통해서 설치하도록 설치 프로그램 작성
2. SetupCopyOEMInf 를 삭제했기 때문에 수동으로 inf, sys 파일을 windowsinf 폴더에 복사
2. 설치프로그램을 통해 inf 파일로 드라이버 설치
3. windowssystem32drivers 폴더에 드라이버가 복사가 되지 않으니 수동으로 sys 파일을 복사
 
이렇게 하면 Win7에서 경고창없이 설치가 되고 동작도 문제가 없다.(vista에서는 테스트 해보지 않았지만 문제없이 될거라고 생각한다.)
 
그런데 문제는 XP 64bit의 Passthru를 설치하려고 했더니 설치가 되지 않는다.
우선 inf 파일이 2개 인데다가 Win7에서 설치한 방법으로는 드라이버 파일을 찾는 대화창이 표시된다.
또 삽집을 통해 방법이 다소 다르지만 XP 64bit에서도 경고창 없이 설치가 가능하다.
 
1. bindview 예제에 있는 SetupCopyOEMInf 를 생략하고 INetCfgClassSetup class의 Install 을 통해서 설치하도록 설치 프로그램 작성
(중요한건 2개의 inf 파일을 모두 같이 install 해야한다.)
2. SetupCopyOEMInf 를 삭제했기 때문에 역시 마찬가지로 수동으로 2개의 inf, sys 파일을 windowsinf 폴더에 복사
3. inf 파일의 SourceDisksNames 섹션과 SourceDisksFiles 섹션의 항목을 주석처리하고 C:WINDOWSServicePackFiles 에 sys 파일을 복사
(sys 파일을 찾는 경로명을 생략하면 ServicePackFiles에서 드라이버를 찾기때문에)
4. 설치프로그램을 통해 inf 파일로 드라이버 설치
5. windowssystem32drivers 폴더에 드라이버가 복사가 되지 않으니 수동으로 sys 파일을 복사
 
Unintalll은 설치과정의 반대로만 하면된다.
첨부
List of Articles
번호 제목 글쓴이 날짜 조회 수

XE Login