메뉴 건너뛰기

그외 개발정보


inf 파일을 이용한 드라이버 자동 설치

안민선 2003.09.23 12:26 조회 수 : 1812

INF 파일을 이용한 드라이버 자동 설치를 구현중입니다...

여러가지 방법이 있더군여....

1. 인스톨쉴드를 이용한 방법
2. DDK 에서 Exe 파일을 만들어 사용하는 방법
3. INF, SYS 파일을 시스템 폴더에 복사후 레지스터 등록하는 방법


제가 선택한 방법은 2번인 DDK를 이용한 방법입니다...

우선적으로 여기있는 자료나 데브피아에 있는 자료는 거의 모두 살펴보았는데, 정확한 답은 찾지 못하였습니다.

관련된 자료나 예제 소스 있으면 부탁드리겠습니다..


가장 근접한 자료로 데브피아에 있는 자료를 보고 SetupCopyOEMInf 이용하여 콘솔에서 exe 파일로 구현하였는데(DevPartner/Driver Studio Lecture & Tip에 45번)

그 내용은 다음과 같습니다... 근데 문제는 이놈이 정상적으로 실행되는지가 궁금합니다.. 컴파일은 정상적으로 이루어 지는데, SetupCopyOEMInf는 실행되지 않습니다.


// test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <tchar.h> // Make all functions UNICODE safe.
#include <windows.h>
#include <newdev.h> // for the API UpdateDriverForPlugAndPlayDevices().
#include <setupapi.h> // for SetupDiXxx functions.
//#include <initguid.h>
int DisplayError(TCHAR * ErrorName);


int main(int argc, char* argv[])
{
if(!SetupCopyOEMInf(
".\\USBW9967.inf", //inf 파일명 : 사용하는 inf파일명 지정
NULL,
SPOST_PATH,
SP_COPY_NOOVERWRITE,
NULL,
8, // inf파일명 길이, 파일 내용의 크기가 아니라 파일명의 길이임.
NULL,
NULL))
{
DisplayError(TEXT("Setup Copy OEMInf Error"));
}

return 0;
}

int DisplayError(TCHAR * ErrorName)
/*++
Routine Description:

This Routine will display the LastError in human readable
form when possible.

If the return value is a 32-bit number, and falls in the range:
ERROR_NO_ASSOCIATED_CLASS 0xE0000200
To
ERROR_CANT_REMOVE_DEVINST 0xE0000232
The values defined in setupapi.h can help to determine the error.
Start by searching for the text string ERROR_NO_ASSOCIATED_CLASS.

Arguments:

ErrorName: Human readable description of the last Function called.

Return Value:

Allways returns FALSE.

--*/
{
DWORD Err = GetLastError();
LPVOID lpMessageBuffer = NULL;

if (FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
Err,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMessageBuffer,
0,
NULL ))
_tprintf(TEXT("%s Fail: %s\n"),ErrorName,(TCHAR *)lpMessageBuffer);
else
_tprintf(TEXT("%s FAILURE: (0x%08x)\n"),ErrorName,Err);

if (lpMessageBuffer) LocalFree( lpMessageBuffer ); // Free system buffer

SetLastError(Err);
return FALSE;
}


위에 소스를 돌리면 다음과 같은 결과가 나옵니다.

결과 :
Setup Copy OEMInf Error : 파일이 있습니다.




번호 제목 글쓴이 날짜 조회 수
공지 [TIP] NEXUS(넥서스) 5x 루팅 방법입니다. 파이팅건맨 2016.01.05 3278
공지 [TIP] 라즈베리파이 3를 AP로 만들기 (How to make Raspberry Pi 3 to Access point device) 파이팅건맨 2018.01.22 3130
공지 class callback호출시 에러가 나는데 뭐가 문제인지 모르겠습니다..ㅠㅠ [1] 나원오 2006.07.22 3061
124 [TIP] NEXUS(넥서스) 5x 루팅 방법입니다. 파이팅건맨 2016.01.05 3278
123 [TIP] 라즈베리파이 3를 AP로 만들기 (How to make Raspberry Pi 3 to Access point device) 파이팅건맨 2018.01.22 3130
122 class callback호출시 에러가 나는데 뭐가 문제인지 모르겠습니다..ㅠㅠ [1] 나원오 2006.07.22 3061
121 mouclass 접근.. [3] 구리 2010.03.13 3055
120 USB Keyboard Filter Driver 제작 관련... [1] 나원오 2006.11.22 2602
119 실시간 동작감지 앱 - 추태(안드로이드용) 파이팅건맨 2011.05.29 2275
118 [펌]Sony vegas - 영상의 객체를 따라다니는 텍스트 효과(Sony Vegas Motion Tracking Text) 파이팅건맨 2015.06.02 2267
117 운영체제에서 "철학자들의 만찬" 알고리즘에 대해.. [1] 정준욱 2004.06.04 2264
116 [TIP] CentOS 7에 MySql 5.7 설치 & 업그레이드 하기 파이팅건맨 2017.11.15 2239
115 https 패킷 디버깅 [5] ChazEpps 2012.04.30 2124
114 "pc용 dos의 설계 및 구현" 책의 diskette 화일을 구합니다. [1] 주하 2009.11.10 1965
113 Soft ICE 기존 사용법 및 내용추가 파이팅건맨 2002.02.25 1949
112 플로피 필터 드라이버 관련 질문입니다..답변좀해주세요.. [2] 백종경 2006.12.12 1883
111 먼 길을 따라.. [1] 최상훈 2009.12.21 1877
110 터치스크린 - 마우스제어 [2] 구리 2010.03.10 1842
» inf 파일을 이용한 드라이버 자동 설치 [2] 안민선 2003.09.23 1812
108 [TIP] ASR 오픈소스 프로젝트 - Kaldi 로 나만의 STT 서비스 구축해 보기 파이팅건맨 2018.07.26 1804
107 os를 공부하고 있습니다. [1] 김제영 2009.12.14 1676
106 [TIP] MAC에 wget설치가 잘 되지 않을때 파이팅건맨 2016.02.25 1594
105 [TIP] Raspberry Pi 3를 위한 Android 빌드 하기 (Compile and install Android for Raspberry Pi 3) [2] 파이팅건맨 2018.03.20 1586
위로