LPNSPV2STARTUP回呼函式 (ws2spi.h)

NSPv2Startup 函式會通知命名空間服務提供者第 2 版 (NSPv2) 提供者,新的用戶端進程是開始使用提供者。

語法

LPNSPV2STARTUP Lpnspv2startup;

INT Lpnspv2startup(
  [in] LPGUID lpProviderId,
  [in] LPVOID *ppvClientSessionArg
)
{...}

參數

[in] lpProviderId

要通知之特定命名空間提供者之 GUID 的指標。

[in] ppvClientSessionArg

用戶端會話的指標。

傳回值

如果例程成功,函式應該傳回 NO_ERROR (零) 。 它應該傳回 SOCKET_ERROR (,也就是說,例程失敗時為 1) ,而且必須使用 WSASetLastError 設定適當的錯誤碼。

錯誤碼 意義
WSA_NOT_ENOUGH_MEMORY
記憶體不足,無法執行這項作業。
WSAEACCES
呼叫例程沒有足夠的許可權來初始化服務。
WSAEINVAL
此提供者的一或多個參數無效或遺失。
WSAEOPNOTSUPP
不支援此作業。 如果命名空間提供者未實作此函式,就會傳回此錯誤。
WSASERVICE_NOT_FOUND
服務未知。 在指定的命名空間中找不到服務。

備註

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

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

每次新的用戶端進程開始使用命名空間提供者時,都會呼叫 NSPv2Startup 函式。 提供者可以使用 ppvClientSessionArg 參數所指向的用戶端會話自變數來儲存此會話的相關信息。 ppvClientSessionArg 參數中的值會傳遞至相同會話中的後續 NSPv2 函式呼叫。 如果命名空間提供者不需要這項資訊,用戶端會話自變數可能會 為NULL

當新的用戶端會話初始化時,會呼叫 NSPv2Startup 函式。 NSPv2StartupNSPv2Cleanup 函式必須呼叫為配對。

必須先成功呼叫 NSPv2Startup 函式,才能呼叫 NSPv2Cleanup 函式。 允許進行多個 NSPv2Startup 呼叫。 不過,針對每個 NSPv2Startup 呼叫,也必須發出對應的 NSPv2Cleanup 呼叫。 只有服務提供者的最終 NSPv2Cleanup 才會進行實際的清除;上述呼叫會遞減命名空間服務提供者中的內部參考計數。

NSPv2StartupNSPv2ClientSessionRundownNSPv2Cleanup 函式是選擇性的,視 NSPv2 提供者的需求而定。

如果未實作 NSPv2Startup 函式,則應該由傳回 WSAEOPNOTSUPP 的 Stub 函式攔截該函式的呼叫。 NSPV2_ROUTINE 結構中未實作 NSPv2Startup 函式的 NSPv2 函式指標應指向存根函式。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 ws2spi.h

另請參閱

NSPV2_ROUTINE

NSPv2Cleanup

NSPv2ClientSessionRundown

NSPv2LookupServiceBegin

NSPv2LookupServiceEnd

NSPv2LookupServiceNextEx

NSPv2SetServiceEx

WSAQUERYSET2

WSASetLastError