UpdateDriverForPlugAndPlayDevices 함수가 실패 시 GetLastError 함수를 호출하면 에러 코드를 리턴하는데 2를 리턴하는 경우가 있습니다.
MSDN에서는 FullInfPath 경로가 잘못되어서 그렇다라고 되어 있는데 그런 경우도 있지만 추가적인 경우도 있어서 정리해둡니다.
특정 드라이버를 inf로 설치하고 제거 시 드라이버 패키지가 다 제거되지 않고 예를 들어 sys 파일만 삭제 된 경우 다시 해당 드라이버를 inf로 설치 시 드라이버 스토어의 sys 파일이 없기 때문에 에러 코드 2를 리턴하게 됩니다.
이런 경우를 대비해서 해당 함수를 실행하기 전 또는 가장 좋은 방법으로 드라이버 설치 작업을 진행하기 바로 전에 DriverPackageUninstall 함수를 이용해 과거의 드라이버 패키지가 남아있을 수 있으므로 삭제를 하고 드라이버 설치를 진행하면 됩니다.
기존 코드는 드라이버 언인스톨 시에만 DriverPackageUninstall 함수를 호출하였는데 안정빵으로 드라이버 설치전에도 DriverPackageUninstall 함수를 호출하도록 바꿨습니다. ( 물론 결정적인 원인은 드라이버 언인스톨 시 먼가가 잘 못 되었기 때문에 발생한 것인데 일단 해당 문제가 발생하면 사용자단에서 pnputil을 사용하지 않는 이상은 해결이 되지 않아서 안전빵으로 추가코드를 작성한 것입니다. )
'인터넷/IT > 프로그래밍' 카테고리의 다른 글
PASSIVE_LEVEL 및 APC_LEVEL에서 프로세스 이름을 가져오기 (0) | 2015.06.25 |
---|---|
BitBlt 함수 사용 시 CAPTUREBLT 플래그가 필요가 없는 경우 (0) | 2015.06.22 |
대칭형 멀티프로세싱 (SMP)와 비대칭형 멀티프로세싱 (ASMP) 간에 차이점 (0) | 2015.06.21 |
무료 IT 및 프로그래밍 E-Book 다운로드 사이트 (0) | 2015.06.20 |
PNP 드라이버 파일 교체 시 재부팅 후 원본 파일로 복구되는 현상 (0) | 2015.06.19 |
IE9 이상으로 브라우저를 업그레이드하거나, 크롬, 파이어폭스 등 최신 브라우저를 이용해주세요.