WSCInstallNameSpaceEx 함수(ws2spi.h)
WSCInstallNameSpaceEx 함수는 네임스페이스 공급자를 설치합니다. 여러 네임스페이스를 지원할 수 있는 공급자의 경우 지원되는 각 네임스페이스에 대해 이 함수를 호출해야 하며 매번 고유한 공급자 식별자를 제공해야 합니다.
구문
INT WSCInstallNameSpaceEx(
[in] LPWSTR lpszIdentifier,
[in] LPWSTR lpszPathName,
[in] DWORD dwNameSpace,
[in] DWORD dwVersion,
[in] LPGUID lpProviderId,
[in] LPBLOB lpProviderSpecific
);
매개 변수
[in] lpszIdentifier
lpProviderId 매개 변수에 전달된 GUID(Globally Unique Identifier)와 연결된 공급자를 식별하는 문자열에 대한 포인터입니다.
[in] lpszPathName
공급자 DLL에 대한 로드 경로를 포함하는 유니코드 문자열에 대한 포인터입니다. 이 문자열은 경로 확인에 대한 일반적인 규칙을 준수하며 포함된 환경 문자열(예: %SystemRoot%)을 포함할 수 있습니다. 이러한 환경 문자열은 Ws2_32.dll 이후에 애플리케이션을 대신하여 공급자 DLL을 로드해야 할 때 확장됩니다. 포함된 환경 문자열이 확장되면 Ws2_32.dll 결과 문자열을 LoadLibrary 함수에 전달하여 공급자를 메모리로 로드합니다. 자세한 내용은 LoadLibrary를 참조하세요.
[in] dwNameSpace
이 공급자가 지원하는 네임스페이스입니다.
[in] dwVersion
공급자의 버전 번호입니다.
[in] lpProviderId
공급자의 GUID에 대한 포인터입니다. 이 GUID는 Uuidgen.exe 생성해야 합니다.
[in] lpProviderSpecific
네임스페이스 항목과 연결된 공급자별 데이터 Blob입니다.
반환 값
오류가 발생하지 않으면 WSCInstallNameSpaceEx 함수는 NO_ERROR (0)을 반환합니다. 그렇지 않으면 함수가 실패하면 SOCKET_ERROR 반환하고 WSAGetLastError 함수를 사용하여 적절한 오류 코드를 검색해야 합니다.
오류 코드 | 의미 |
---|---|
호출 루틴에는 네임스페이스를 설치할 수 있는 충분한 권한이 없습니다. | |
하나 이상의 인수가 잘못되었습니다. | |
복구할 수 없는 오류가 발생했습니다. 이 오류는 공급자가 이미 설치되어 있거나, 사용자에게 Winsock 레지스트리에 쓰는 데 필요한 관리 권한이 없거나, 카탈로그 항목을 만들거나 설치할 때 오류가 발생하는 등의 여러 조건에서 반환됩니다. | |
실패하지 않아야 하는 시스템 호출이 실패했습니다. | |
메모리가 부족했습니다. 이 오류는 새 카탈로그 항목을 할당할 메모리가 부족한 경우 반환됩니다. |
설명
네임스페이스 구성 함수는 이미 실행 중인 애플리케이션에 영향을 미치지 않습니다. 새로 설치된 이름 공간 공급자는 애플리케이션에 표시되지 않으며 이름 공간 공급자의 활성화 상태도 변경되지 않습니다. WSCInstallNameSpaceEx 호출 후 시작된 애플리케이션에 변경 내용이 표시됩니다.
lpProviderInfo 매개 변수에 전달된 네임스페이스 항목과 연결된 공급자별 데이터 Blob은 WSAEnumNameSpaceProvidersEx 함수를 사용하여 쿼리할 수 있습니다.
현재 lpProviderInfo 매개 변수를 사용하는 Windows에 포함된 유일한 네임스페이스 공급자는 NS_EMAIL 공급자입니다. NS_EMAIL 네임스페이스 공급자에 대한 lpProviderInfo 매개 변수가 가리키는 버퍼의 형식은 NAPI_PROVIDER_INSTALLATION_BLOB 구조입니다.
WSCInstallNameSpaceEx 함수는 관리자 그룹의 구성원으로 로그온한 사용자만 호출할 수 있습니다. Administrators 그룹의 멤버가 아닌 사용자가 WSCInstallNameSpaceEx 를 호출하면 함수 호출이 실패합니다. Windows Vista 또는 Windows Server 2008에서 실행되는 컴퓨터의 경우 UAC(사용자 계정 제어)로 인해 이 함수가 실패할 수도 있습니다. 이 함수를 포함하는 애플리케이션이 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자에 의해 실행되는 경우 애플리케이션이 requestedExecutionLevel 이 requireAdministrator로 설정된 매니페스트 파일에 표시되지 않는 한 이 호출은 실패합니다. Windows Vista 또는 Windows Server 2008의 애플리케이션에 이 매니페스트 파일이 없는 경우 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자는 이 함수가 성공하려면 기본 제공 관리자(RunAs 관리자)로 향상된 셸에서 애플리케이션을 실행해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | ws2spi.h |
라이브러리 | Ws2_32.lib |
DLL | Ws2_32.dll |