共用方式為


WSAAdvertiseProvider 函式 (ws2spi.h)

WSAAdvertiseProvider 函式可讓所有合格用戶端使用特定的命名空間第 2 版提供者。

語法

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

參數

[in] puuidProviderId

要公告之命名空間提供者之提供者識別碼的指標。

[in] pNSPv2Routine

具有提供者所支援命名空間服務提供者第 2 版進入點 之NSPV2_ROUTINE 結構的指標。

傳回值

如果沒有發生錯誤, WSAProviderCompleteAsyncCall 會傳回零。

如果函式失敗,傳回值會SOCKET_ERROR。 若要取得擴充的錯誤資訊,請呼叫 WSAGetLastError,這會傳回下列其中一個擴充錯誤值。

錯誤碼 意義
WSA_NOT_ENOUGH_MEMORY
記憶體不足,無法執行作業。
WSAEFAULT
發生內部錯誤。
WSAEINVAL
參數無效。 如果 puuidProviderIdpNSPv2Routine 參數為 **Null**,就會傳回此錯誤。

如果pNSPv2Routine參數所指向之NSPV2_ROUTINE結構的NSPv2LookupServiceNextEx、NSPv2LookupServiceNextExNSPv2LookupServiceEnd成員,也會傳回此錯誤。 命名空間第 2 版提供者至少必須支援這個最小函式集的名稱解析。

WSAEINVALIDPROVIDER
找不到指定 puuidProviderId 參數的命名空間提供者。
WSANOTINITIALISED
尚未初始化 Ws2_32.dll 。 應用程式必須先呼叫 WSAStartup ,再呼叫任何 Windows Sockets 函式。

備註

WSAAdvertiseProvider函式會作為 Windows Vista 和更新版本上可用的命名空間服務提供者第 2 版 2 (NSPv2) 架構的一部分。

在 Windows Vista 和 Windows Server 2008 上, WSAAdvertiseProvider 函 式只能用於NS_EMAIL命名空間提供者上的作業。

WSAAdvertiseProvider 函式會公告 NSPv2 提供者的實例,以供用戶端尋找。 如果要公告的實例是應用程式類型提供者的實例, (命名空間提供者,其中NAPI_PROVIDER_INSTALLATION_BLOB結構的dwProvideType成員ProviderType_Application) ,則所有在相同使用者下執行的用戶端進程,以及WSAAdvertiseProvider呼叫者所在的相同會話中,都會看到公告的提供者實例。

一般而言,NSPv2 提供者是在呼叫應用程式以外的進程中實作。 NSPv2 提供者不會因為用戶端活動而啟動。 每個裝載應用程式的提供者會藉由呼叫 WSAAdvertiseProviderWSAUnadvertiseProvider 函 式,決定何時提供或無法使用特定提供者。 用戶端活動只會在命名空間提供者公告) 時,嘗試連絡提供者時 (。

WSAAdvertiseProvider函式是由任何想要讓特定提供者可供所有符合資格的用戶端使用, (目前所有執行的應用程式都與主控應用程式具有相同認證,並在相同的使用者會話) 中呼叫。

程式可以同時實作和公告多個提供者。 Windows Sockets 會藉由將呼叫分派至正確的命名空間提供者來管理命名空間提供者。 它也會隱藏 RPC 介面詳細資料,並將跨進程呼叫轉譯成同進程呼叫。 因此,NSPv2 提供者只需要實作與 NSPv1 提供者所使用的 NSP_ROUTINE 結構類似的進入點函式資料表。 NSPv2 提供者不需要擔心 RPC 特定需求 (資料封送處理和序列化,例如) 。

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