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 設定適當的錯誤碼。
錯誤碼 | 意義 |
---|---|
記憶體不足,無法執行這項作業。 | |
呼叫例程沒有足夠的許可權來初始化服務。 | |
此提供者的一或多個參數無效或遺失。 | |
不支援此作業。 如果命名空間提供者未實作此函式,就會傳回此錯誤。 | |
服務未知。 在指定的命名空間中找不到服務。 |
備註
NSPv2Startup 函式會作為命名空間服務提供者第 2 版 (NSPv2) 架構的一部分,可在 Windows Vista 和更新版本上使用。
在 Windows Vista 和 Windows Server 2008 上, NSPv2Startup 函式只能用於NS_EMAIL命名空間提供者上的作業。
每次新的用戶端進程開始使用命名空間提供者時,都會呼叫 NSPv2Startup 函式。 提供者可以使用 ppvClientSessionArg 參數所指向的用戶端會話自變數來儲存此會話的相關信息。 ppvClientSessionArg 參數中的值會傳遞至相同會話中的後續 NSPv2 函式呼叫。 如果命名空間提供者不需要這項資訊,用戶端會話自變數可能會 為NULL。
當新的用戶端會話初始化時,會呼叫 NSPv2Startup 函式。 NSPv2Startup 和 NSPv2Cleanup 函式必須呼叫為配對。
必須先成功呼叫 NSPv2Startup 函式,才能呼叫 NSPv2Cleanup 函式。 允許進行多個 NSPv2Startup 呼叫。 不過,針對每個 NSPv2Startup 呼叫,也必須發出對應的 NSPv2Cleanup 呼叫。 只有服務提供者的最終 NSPv2Cleanup 才會進行實際的清除;上述呼叫會遞減命名空間服務提供者中的內部參考計數。
NSPv2Startup、NSPv2ClientSessionRundown 和 NSPv2Cleanup 函式是選擇性的,視 NSPv2 提供者的需求而定。
如果未實作 NSPv2Startup 函式,則應該由傳回 WSAEOPNOTSUPP 的 Stub 函式攔截該函式的呼叫。 NSPV2_ROUTINE 結構中未實作 NSPv2Startup 函式的 NSPv2 函式指標應指向存根函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | ws2spi.h |