WSCUpdateProvider 함수(ws2spi.h)
WSCUpdateProvider 함수는 시스템 구성 데이터베이스에서 지정된 전송 공급자를 수정합니다.
구문
int WSCUpdateProvider(
[in] LPGUID lpProviderId,
[in] const WCHAR *lpszProviderDllPath,
[in] const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
[in] DWORD dwNumberOfEntries,
[out] LPINT lpErrno
);
매개 변수
[in] lpProviderId
공급자에 대한 GUID(Globally Unique Identifier)에 대한 포인터입니다.
[in] lpszProviderDllPath
공급자 64비트 DLL에 대한 로드 경로를 포함하는 유니코드 문자열에 대한 포인터입니다. 이 문자열은 경로 확인에 대한 일반적인 규칙을 관찰하고 포함된 환경 문자열(예: %SystemRoot%)을 포함할 수 있습니다. 이러한 환경 문자열은 Ws2_32.dll 이후에 애플리케이션을 대신하여 공급자 DLL을 로드해야 할 때 확장됩니다. 포함된 환경 문자열이 확장되면 Ws2_32.dll 결과 문자열을 LoadLibrary 함수에 전달하여 공급자를 메모리로 로드합니다. 자세한 내용은 LoadLibrary를 참조하세요.
[in] lpProtocolInfoList
WSAProtocol_Info 구조체 배열에 대한 포인터입니다. 각 구조체는 공급자가 지원하는 프로토콜, 주소 패밀리 및 소켓 유형을 지정하거나 수정합니다.
[in] dwNumberOfEntries
lpProtocolInfoList 배열의 항목 수입니다.
[out] lpErrno
함수가 실패하는 경우 오류 코드에 대한 포인터입니다.
반환 값
오류가 발생하지 않으면 WSCUpdateProvider 는 0을 반환합니다. 그렇지 않으면 SOCKET_ERROR 반환되고 lpErrno 매개 변수에 특정 오류 코드가 반환됩니다.
오류 코드 | 의미 |
---|---|
하나 이상의 인수가 사용자 주소 공간의 유효한 부분에 있지 않습니다. | |
하나 이상의 인수가 잘못되었습니다. | |
복구할 수 없는 오류가 발생했습니다. 이 오류는 다음과 같은 여러 조건에서 반환됩니다. 사용자가 Winsock 레지스트리에 쓰는 데 필요한 관리 권한이 없거나 카탈로그 항목을 열거나 작성할 때 오류가 발생했습니다. | |
메모리가 부족했습니다. 이 오류는 새 카탈로그 항목을 할당할 메모리가 부족한 경우 반환됩니다. |
설명
WSCUpdateProvider 함수는 지정된 공급자에 대한 Windows 소켓 2 구성 정보를 수정합니다. 기본 프로토콜, 계층화된 프로토콜 및 프로토콜 체인에 적용할 수 있습니다.
Winsock 2는 계층화된 프로토콜을 수용합니다. 계층화된 프로토콜은 원격 엔드포인트와 데이터의 실제 교환을 위해 기본 전송 스택을 사용하는 동시에 더 높은 수준의 통신 기능만 구현하는 프로토콜입니다. 계층화된 프로토콜의 예는 인증을 수행하고 상호 합의된 암호화 체계를 설정하기 위해 연결 설정 프로세스에 프로토콜을 추가하는 보안 계층입니다. 이러한 보안 프로토콜에는 일반적으로 TCP 또는 SPX와 같은 기본 신뢰할 수 있는 전송 프로토콜의 서비스가 필요합니다. 기본 프로토콜이라는 용어는 원격 엔드포인트와 데이터 통신을 수행할 수 있는 TCP 또는 SPX와 같은 프로토콜을 나타냅니다. 계층화된 프로토콜이라는 용어는 독립할 수 없는 프로토콜을 설명하는 데 사용됩니다. 그런 다음 프로토콜 체인은 기본 프로토콜에 의해 함께 연결되고 고정되는 하나 이상의 계층화된 프로토콜로 정의됩니다. 기본 프로토콜에는 1로 정의된 BASE_PROTOCOL 설정된 WSAProtocol_Info 구조체의 ChainLen 멤버가 있습니다. 계층화된 프로토콜에는 0으로 정의된 LAYERED_PROTOCOL 설정된 WSAPROTOCOL_INFO 구조체의 ChainLen 멤버가 있습니다. 프로토콜 체인에는 WSAPROTOCOL_INFO 구조체의 ChainLen 멤버가 1보다 큼으로 설정됩니다.
성공하면 WSCUpdateProvider 는 WSAProviderConfigChange를 호출하여 변경 알림을 위해 등록된 모든 관심 있는 애플리케이션에 경고를 시도합니다.
WSCUpdateProvider 함수는 Administrators 그룹의 구성원으로 로그온한 사용자만 호출할 수 있습니다. Administrators 그룹의 구성원이 아닌 사용자가 WSCUpdateProvider 를 호출하면 함수 호출이 실패합니다.
Windows Vista 또는 Windows Server 2008에서 실행되는 컴퓨터의 경우 UAC(사용자 계정 제어)로 인해 이 함수가 실패할 수도 있습니다. 이 함수를 포함하는 애플리케이션이 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자에 의해 실행되는 경우 애플리케이션이 requireAdministrator로 설정된 requestedExecutionLevel이 매니페스트 파일에 표시되지 않는 한 이 호출은 실패합니다. Windows Vista 또는 Windows Server 2008의 애플리케이션에 이 매니페스트 파일이 없는 경우 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자는 이 함수가 성공하려면 기본 제공 관리자(RunAs 관리자)로 향상된 셸에서 애플리케이션을 실행해야 합니다.
모든 파일 설치 또는 서비스 공급자별 구성은 호출자가 수행해야 합니다.
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | ws2spi.h |
라이브러리 | Ws2_32.lib |
DLL | Ws2_32.dll |