다음을 통해 공유


WSCInstallProvider64_32 함수(ws2spi.h)

[**WSCInstallProvider64_32**은(는) Windows Vista를 기준으로 더 이상 사용할 수 없습니다. 대신 WSCInstallProvider 또는 WSCInstallProviderAndChains를 사용합니다.]

WSCInstallProvider64_32 함수는 지정된 전송 서비스 공급자를 64비트 컴퓨터의 32비트 및 64비트 시스템 구성 데이터베이스에 설치합니다.

구문

int WSCInstallProvider64_32(
  [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

함수가 실패하는 경우 오류 코드에 대한 포인터입니다.

반환 값

WSCInstallProvider64_32 성공하면 0을 반환합니다. 그렇지 않으면 SOCKET_ERROR 반환되고 lpErrno 매개 변수에 특정 오류 코드가 반환됩니다.

오류 코드 의미
WSAEFAULT
하나 이상의 인수가 사용자 주소 공간의 유효한 부분에 있지 않습니다.
WSAEINVAL
하나 이상의 인수가 잘못되었습니다.
WSAENOBUFS
버퍼에 메모리를 할당할 수 없습니다.
WSANO_RECOVERY
복구할 수 없는 오류가 발생했습니다. 이 오류는 공급자가 이미 설치되어 있거나, 사용자가 Winsock 레지스트리에 쓰는 데 필요한 관리 권한이 없거나, 카탈로그 항목을 만들거나 설치할 때 오류가 발생하는 등의 여러 조건에서 반환됩니다.
WSASYSCALLFAILURE
실패하지 않아야 하는 시스템 호출이 실패했습니다.
WSA_NOT_ENOUGH_MEMORY
메모리가 부족했습니다. 이 오류는 새 카탈로그 항목을 할당할 메모리가 부족한 경우 반환됩니다.

설명

WSCInstallProvider64_32 단일 전송 서비스 공급자만 설치하는 WSCInstallProviderAndChains64_32 함수의 기본 버전입니다. WSCInstallProvider64_32 사용하여 기본 프로토콜, 계층화된 프로토콜 또는 프로토콜 체인을 설치할 수 있습니다. 계층화된 서비스 공급자를 설치하는 경우 이 함수를 사용하면 계층화된 프로토콜과 하나 이상의 프로토콜 체인을 단일 함수 호출로 설치할 수 있으므로 WSCInstallProviderAndChains64_32 사용해야 합니다. WSCInstallProvider64_32 사용하여 동일한 작업을 수행하려면 각 서비스 공급자 구성 요소를 설치하기 위해 여러 함수 호출이 필요합니다.

Windows 소켓(Winsock) 2는 계층화된 프로토콜의 개념을 수용합니다. 계층화된 프로토콜은 원격 엔드포인트와 데이터의 실제 교환을 위해 기본 전송 스택을 사용하는 동안 더 높은 수준의 통신 함수만 구현하는 프로토콜입니다. 계층화된 프로토콜의 예로는 인증을 수행하고 상호 합의된 암호화 체계를 설정하기 위해 연결 설정 프로세스에 프로토콜을 추가하는 보안 계층이 있습니다. 이러한 보안 프로토콜에는 일반적으로 TCP 또는 SPX와 같은 기본 신뢰할 수 있는 전송 프로토콜의 서비스가 필요합니다. 기본 프로토콜이라는 용어는 원격 엔드포인트와의 데이터 통신을 완벽하게 수행할 수 있는 TCP 또는 SPX와 같은 프로토콜을 나타냅니다. 계층화된 프로토콜이라는 용어는 독립할 수 없는 프로토콜을 설명하는 데 사용됩니다. 그런 다음 프로토콜 체인은 기본 프로토콜에 의해 함께 연결되고 고정되는 하나 이상의 계층화된 프로토콜로 정의됩니다. 기본 프로토콜에는 1로 정의된 BASE_PROTOCOL 설정된 WSAProtocol_Info 구조체의 ChainLen 멤버가 있습니다. 계층화된 프로토콜에는 0으로 정의된 LAYERED_PROTOCOL 설정된 WSAPROTOCOL_INFO 구조체의 ChainLen 멤버가 있습니다. 프로토콜 체인에는 WSAPROTOCOL_INFO 구조체의 ChainLen 멤버가 1보다 큼으로 설정됩니다.

WSCInstallProvider64_32 64비트 플랫폼의 32비트 및 64비트 카탈로그에 공급자를 설치하는 WSCInstallProvider 의 64비트 버전입니다. 즉, 64비트 플랫폼에서는 두 개의 Winsock 카탈로그가 유지 관리되며 32비트 및 64비트 프로세스 모두 이 함수와 함께 설치된 전송 공급자를 로드할 수 있습니다. 64비트 플랫폼에서 WSCInstallProvider 는 64비트 Winsock 카탈로그에만 설치됩니다.

64비트 컴퓨터에서 32비트용으로 특별히 설계되지 않은 모든 호출(예: "32"로 끝나지 않는 모든 함수)은 네이티브 64비트 카탈로그에서 작동합니다. 64비트 컴퓨터에서 실행되는 프로세스는 WSCInstallProvider64_32 사용하여 32비트 카탈로그와 64비트 카탈로그 모두에서 작동하여 호환성을 유지해야 합니다. 특정 32비트 호출의 정의 및 의미 체계는 네이티브 호출과 동일합니다.

이 루틴은 지정된 공급자에 필요한 일반적인 Winsock 2 구성 정보를 만듭니다. 기본 프로토콜, 계층화된 프로토콜 및 프로토콜 체인에 적용할 수 있습니다.

lpProtocolInfoList 매개 변수에는 설치할 프로토콜 항목 목록이 포함되어 있습니다. WSCInstallProvider64_32 호출자는 적절한 프로토콜 항목을 설정할 책임이 있습니다. lpProtocolInfoList 매개 변수는 NULL이 아니어야 합니다.

이 루틴이 성공적으로 완료되면 lpProtocolInfoList에 제공된 프로토콜 정보가 WSAEnumProtocols, WSCEnumProtocols 또는 WSCEnumProtocols32에서 반환됩니다. Windows에서는 이 함수가 성공적으로 완료된 후 WSAStartup을 호출하여 만든 Ws2_32.dll 인스턴스에만 WSAEnumProtocols, WSCEnumProtocolsWSCEnumProtocols32의 새 항목이 포함됩니다.

참고WSCEnumProtocols 및 WSCEnumProtocols32에서 수행하는 동안 WSAEnumProtocols 함수는 계층화된 프로토콜 항목을 열거하지 않습니다.

 

성공하면 WSCInstallProvider64_32WSAProviderConfigChange를 호출하여 변경 알림을 위해 등록된 모든 관심 있는 애플리케이션에 경고하려고 시도합니다.

WSCInstallProvider64_32 함수는 Administrators 그룹의 구성원으로 로그온한 사용자만 호출할 수 있습니다. Administrators 그룹의 멤버가 아닌 사용자가 WSCInstallProvider64_32 호출하면 함수 호출이 실패하고 lpErrno 매개 변수에 WSANO_RECOVERY 반환됩니다. Windows Vista 또는 Windows Server 2008을 실행하는 컴퓨터의 경우 UAC(사용자 계정 제어)로 인해 이 함수가 실패할 수도 있습니다. 이 함수를 포함하는 애플리케이션이 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자에 의해 실행되는 경우 애플리케이션이 requireAdministrator로 설정된 requestedExecutionLevel이 매니페스트 파일에 표시되지 않는 한 이 호출은 실패합니다. Windows Vista 또는 Windows Server 2008의 애플리케이션에 이 매니페스트 파일이 없는 경우 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자는 이 함수가 성공하려면 기본 제공 관리자(RunAs 관리자)로 향상된 셸에서 애플리케이션을 실행해야 합니다.

모든 파일 설치 또는 서비스 공급자별 구성은 호출 애플리케이션에서 수행해야 합니다.

WSCInstallProvider 또는 WSCInstallProviderAndChains 함수를 사용하는 경우 32비트 카탈로그에 공급자를 설치하려면 함수를 한 번 호출하고 64비트 플랫폼의 64비트 카탈로그에 공급자를 설치하려면 한 번 호출해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP Professional x64 Edition [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 x64 Edition [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 ws2spi.h
라이브러리 Ws2_32.lib
DLL Ws2_32.dll

추가 정보

LoadLibrary

전송 구성 및 설치

전송 서비스 공급자

WSAEnumProtocols

WSAProviderConfigChange

WSAStartup

WSCDeinstallProvider32

WSCEnumProtocols

WSCEnumProtocols32

WSCInstallProvider

WSCInstallProviderAndChains

WSCInstallProviderAndChains64_32