WSCDeinstallProvider 함수(ws2spi.h)
WSCDeinstallProvider 함수는 시스템 구성 데이터베이스에서 지정된 전송 공급자를 제거합니다.
구문
int WSCDeinstallProvider(
[in] LPGUID lpProviderId,
[out] LPINT lpErrno
);
매개 변수
[in] lpProviderId
공급자에 대한 GUID(Globally Unique Identifier)에 대한 포인터입니다. 이 값은 각 WSAProtocol_Info 구조 내에 저장됩니다.
[out] lpErrno
함수가 실패하는 경우 오류 코드에 대한 포인터입니다.
반환 값
오류가 발생하지 않으면 WSCDeinstallProvider 는 0을 반환합니다. 그렇지 않으면 SOCKET_ERROR 반환되고 lpErrno에서 특정 오류 코드를 사용할 수 있습니다.
오류 코드 | 의미 |
---|---|
lpProviderId 매개 변수는 유효한 공급자를 지정하지 않습니다. | |
lpErrno 매개 변수가 사용자 주소 공간의 유효한 부분에 있지 않습니다. | |
복구할 수 없는 오류가 발생했습니다. 이 오류는 다음과 같은 여러 조건에서 반환됩니다. 사용자가 Windows 소켓 레지스트리에 쓰는 데 필요한 관리 권한이 없거나 카탈로그 항목을 열 때 오류가 발생했습니다. | |
메모리가 부족했습니다. 이 오류는 새 카탈로그 항목을 할당할 메모리가 부족한 경우 반환됩니다. |
설명
WSCDeinstallProvider 함수는 지정된 공급자에 대한 일반적인 Windows 소켓 2 구성 정보를 제거합니다. 이 루틴이 성공적으로 완료되면 레지스트리에 저장된 구성 정보가 변경됩니다. 그러나 현재 메모리에 있는 Ws2_32.dll 인스턴스는 이 변경 내용을 인식할 수 없습니다.
성공하면 WSCDeinstallProvider 는 WSAProviderConfigChange를 호출하여 변경 알림을 위해 등록된 모든 관심 있는 애플리케이션에 경고를 시도합니다.
WSCDeinstallProvider 함수는 관리자 그룹의 구성원으로 로그온한 사용자만 호출할 수 있습니다. Administrators 그룹의 멤버가 아닌 사용자가 WSCDeinstallProvider를 호출하면 함수 호출이 실패하고 WSANO_RECOVERY lpErrno 매개 변수 에 반환됩니다.
Windows Vista 또는 Windows Server 2008을 실행하는 컴퓨터의 경우 UAC(사용자 계정 제어)로 인해 이 함수가 실패할 수도 있습니다. 이 함수를 포함하는 애플리케이션이 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자에 의해 실행되는 경우 애플리케이션이 requestedExecutionLevel 이 requireAdministrator로 설정된 매니페스트 파일에 표시되지 않는 한 이 호출은 실패합니다. Windows Vista 또는 Windows Server 2008의 애플리케이션에 이 매니페스트 파일이 없는 경우 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자는 이 함수가 성공하려면 기본 제공 관리자(RunAs 관리자)로 향상된 셸에서 애플리케이션을 실행해야 합니다.
이 함수의 호출자는 서비스 공급자를 완전히 제거하는 데 필요한 추가 파일 또는 서비스 공급자 관련 구성 정보를 제거해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | ws2spi.h |
라이브러리 | Ws2_32.lib |
DLL | Ws2_32.dll |