다음을 통해 공유


WSAAdvertiseProvider 함수(ws2spi.h)

WSAAdvertiseProvider 함수는 모든 적격 클라이언트에서 특정 네임스페이스 버전 2 공급자를 사용할 수 있게 합니다.

구문

INT WSAAPI WSAAdvertiseProvider(
  [in] const GUID             *puuidProviderId,
  [in] const LPCNSPV2_ROUTINE pNSPv2Routine
);

매개 변수

[in] puuidProviderId

보급할 네임스페이스 공급자의 공급자 ID에 대한 포인터입니다.

[in] pNSPv2Routine

공급자 가 지원하는 네임스페이스 서비스 공급자 버전 2 진입점이 있는 NSPV2_ROUTINE 구조체에 대한 포인터입니다.

반환 값

오류가 발생하지 않으면 WSAProviderCompleteAsyncCall 은 0을 반환합니다.

함수가 실패하면 반환 값이 SOCKET_ERROR. 확장 오류 정보를 얻으려면 다음 확장 오류 값 중 하나를 반환하는 WSAGetLastError를 호출합니다.

오류 코드 의미
WSA_NOT_ENOUGH_MEMORY
작업을 수행할 메모리가 부족했습니다.
WSAEFAULT
내부 오류가 발생했습니다.
WSAEINVAL
매개 변수가 잘못되었습니다. puuidProviderId 또는 pNSPv2Routine 매개 변수가 **NULL**인 경우 이 오류가 반환됩니다.

pNSPv2Routine 매개 변수가 가리키는 NSPV2_ROUTINE 구조체의 NSPv2LookupServiceBegin, NSPv2LookupServiceNextEx 또는 NSPv2LookupServiceEnd 멤버가 NULL인 경우에도 이 오류가 반환됩니다. 네임스페이스 버전 2 공급자는 최소한 이 최소 함수 집합인 이름 확인을 지원해야 합니다.

WSAEINVALIDPROVIDER
지정된 puuidProviderId 매개 변수에 대한 네임스페이스 공급자를 찾을 수 없습니다.
WSANOTINITIALISED
Ws2_32.dll 초기화되지 않았습니다. 애플리케이션은 Windows 소켓 함수를 호출하기 전에 먼저 WSAStartup 을 호출해야 합니다.

설명

WSAAdvertiseProvider 함수는 Windows Vista 이상에서 사용할 수 있는 네임스페이스 서비스 공급자 버전 2(NSPv2) 아키텍처의 일부로 사용됩니다.

Windows Vista 및 Windows Server 2008에서 WSAAdvertiseProvider 함수는 NS_EMAIL 네임스페이스 공급자의 작업에만 사용할 수 있습니다.

WSAAdvertiseProvider 함수는 클라이언트가 찾을 수 있도록 NSPv2 공급자의 instance 보급합니다. 보급할 instance 애플리케이션 유형 공급자의 instance(NAPI_PROVIDER_INSTALLATION_BLOB 구조의 dwProvideType 멤버가 ProviderType_Application 네임스페이스 공급자)인 경우 보급된 공급자 instance 동일한 사용자 및 호출자와 동일한 세션에서 실행되는 모든 클라이언트 프로세스에 표시됩니다.WSAAdvertiseProvider.

일반적으로 NSPv2 공급자는 호출 애플리케이션 이외의 프로세스에서 구현됩니다. NSPv2 공급자는 클라이언트 작업의 결과로 활성화되지 않습니다. 애플리케이션을 호스팅하는 각 공급자는 WSAAdvertiseProvider 및 WSAUnadvertiseProvider 함수 를 호출하여 특정 공급자를 사용할 수 있거나 사용할 수 없는 경우를 결정합니다. 클라이언트 활동은 사용 가능한 경우(네임스페이스 공급자가 보급될 때) 공급자에게 연락하려고 시도하기만 합니다.

WSAAdvertiseProvider 함수는 모든 적격 클라이언트(현재 호스팅 애플리케이션과 동일한 자격 증명으로 실행 중인 모든 애플리케이션 및 동일한 사용자 세션)에 대해 특정 공급자를 사용할 수 있도록 하려는 모든 애플리케이션에서 호출됩니다.

프로세스는 여러 공급자를 동시에 구현하고 보급할 수 있습니다. Windows 소켓은 올바른 호출로 호출을 디스패치하여 네임스페이스 공급자를 관리합니다. 또한 RPC 인터페이스 세부 정보를 숨기고 프로세스 간 호출을 In-Process 호출로 변환합니다. 따라서 NSPv2 공급자는 NSPv1 공급자가 사용하는 NSP_ROUTINE 구조와 유사한 진입점 함수 테이블을 구현해야 합니다. NSPv2 공급자는 RPC 관련 요구 사항(예: 데이터 마샬링 및 serialization)에 대해 걱정할 필요가 없습니다.

WSAAdvertiseProvider 호출자는 공급자가 지원하는 NSPv2 진입점을 사용하여 pNSPv2Routine 매개 변수의 NSPV2_ROUTINE 구조에 대한 포인터를 전달합니다.

WSAUnadvertiseProvider 함수를 사용하면 클라이언트에서 특정 네임스페이스 공급자를 더 이상 사용할 수 없습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 ws2spi.h
라이브러리 Ws2_32.lib
DLL Ws2_32.dll

참고 항목

NAPI_PROVIDER_INSTALLATION_BLOB

NAPI_PROVIDER_TYPE

NSPV2_ROUTINE

WSAEnumNameSpaceProviders

WSAEnumNameSpaceProvidersEx

WSAProviderCompleteAsyncCall

WSASetService

WSAUnadvertiseProvider

WSCEnumNameSpaceProvidersEx32