DiUninstallDriverA 함수(newdev.h)
DiUninstallDriver 함수는 해당 디바이스를 다른 일치하는 드라이버 패키지(사용 가능한 경우)와 함께 설치하여 설치된 모든 디바이스에서 드라이버 패키지를 제거하거나, 일치하는 다른 드라이버 패키지를 사용할 수 없는 경우 null 드라이버를 제거합니다. 그런 다음 지정된 드라이버 패키지가 드라이버 저장소에서 제거됩니다.
구문
BOOL DiUninstallDriverA(
[in, optional] HWND hwndParent,
[in] LPCSTR InfPath,
[in] DWORD Flags,
[out, optional] PBOOL NeedReboot
);
매개 변수
[in, optional] hwndParent
DiUninstallDriver가 드라이버 제거와 연결된 사용자 인터페이스 구성 요소를 표시하는 데 사용해야 하는 최상위 창에 대한 핸들입니다. 이 매개 변수는 선택 사항이며 NULL로 설정할 수 있습니다.
[in] InfPath
드라이버 패키지에 대한 INF 파일의 정규화된 경로를 제공하는 NULL로 끝나는 문자열에 대한 포인터입니다.
[in] Flags
다음 플래그 중 0개 이상을 지정하는 DWORD 형식의 값입니다. DIURFLAG_NO_REMOVE_INF. 일반적으로 이 플래그는 0으로 설정해야 합니다.
이 플래그가 0이면 DiUninstallDriver 는 일치하는 다른 드라이버 패키지(사용 가능한 경우)와 함께 해당 디바이스를 설치하거나 일치하는 다른 드라이버 패키지를 사용할 수 없는 경우 null 드라이버를 설치하여 설치된 모든 디바이스에서 드라이버 패키지를 제거합니다. 그러나 이 플래그가 DIURFLAG_NO_REMOVE_INF 설정된 경우 DiUninstallDriver 는 설치된 모든 장치에서 드라이버 패키지를 제거하지만 드라이버 저장소에서 드라이버 패키지를 제거하지는 않습니다.
Windows에서 디바이스용 드라이버 패키지를 선택하는 방법에 대한 자세한 내용은 Windows에서 드라이버를 선택하는 방법을 참조하세요.
[out, optional] NeedReboot
DiUninstallDriver가 제거를 완료하기 위해 시스템 다시 시작이 필요한지 여부를 나타내기 위해 설정하는 BOOL 형식의 값에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. 제거를 완료하기 위해 매개 변수가 제공되고 시스템 다시 시작이 필요한 경우 DiUninstallDriver 는 값을 TRUE로 설정합니다. 이 경우 호출자는 사용자에게 시스템을 다시 시작하라는 메시지를 표시해야 합니다. 이 매개 변수가 제공되고 제거를 완료하기 위해 시스템 다시 시작이 필요하지 않은 경우 DiUninstallDriver 는 값을 FALSE로 설정합니다. 제거를 완료하려면 매개 변수가 NULL 이고 시스템 다시 시작이 필요한 경우 DiUninstallDriver 는 시스템 다시 시작 대화 상자를 표시합니다. 이 매개 변수에 대한 자세한 내용은 다음 주의 섹션 을 참조하세요 .
반환 값
DiUninstallDriver는 함수가 설치된 모든 장치에서 드라이버 패키지를 성공적으로 제거하고 시스템의 드라이버 저장소에서 성공적으로 제거되면 TRUE를 반환합니다. 드라이버 패키지가 드라이버 저장소에서 성공적으로 제거되지 않으면 DiUninstallDriver 는 FALSE 를 반환하고 GetLastError를 호출하여 기록된 오류를 검색할 수 있습니다. GetLastError에서 반환할 수 있는 일반적인 오류 값 중 일부는 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
호출자에게 관리자 권한이 없습니다. 기본적으로 Windows에서는 호출자에게 드라이버 저장소에서 드라이버 패키지를 제거할 수 있는 관리자 권한이 있어야 합니다. |
|
지정된 INF 파일의 경로가 없습니다. |
|
Flags에 지정된 값이 0 또는 DIURFLAG_NO_REMOVE_INF 같지 않습니다. |
|
호출 애플리케이션은 64비트 환경에서 실행을 시도하는 32비트 애플리케이션으로, 허용되지 않습니다. 자세한 내용은 64비트 시스템에 디바이스 설치를 참조하세요. |
설명
일반적으로 제거 애플리케이션은 제거를 완료하기 위해 다시 시작해야 하는 경우 사용자에게 시스템을 다시 시작하라는 메시지를 표시하도록 DiUninstallDriver에 지시하도록 NeedReboot를 NULL로 설정해야 합니다. 애플리케이션은 다음 경우에만 NeedReboot 포인터를 제공해야 합니다.
- 응용 프로그램에서 DiUninstallDriver 를 여러 번 호출하여 제거를 완료해야 합니다. 이 경우 애플리케이션은 DiUninstallDriver에 대한 호출에서 TRUENeedReboot 값이 반환되는지 여부를 기록하고, 이 경우 DiUninstallDriver에 대한 최종 호출이 반환된 후 사용자에게 시스템을 다시 시작하라는 메시지를 표시해야 합니다.
- 애플리케이션은 시스템을 다시 시작하기 전에 DiUninstallDriver를 호출하는 것 외에 필요한 작업을 수행해야 합니다. 시스템 다시 시작이 필요한 경우 애플리케이션은 필요한 작업을 완료한 다음 사용자에게 시스템을 다시 시작하라는 메시지를 표시해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 버전 1703 이상 버전의 Windows에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | newdev.h(Newdev.h 포함) |
라이브러리 | Newdev.lib |