共用方式為


LPNSPV2CLEANUP回呼函式 (ws2spi.h)

NSPv2Cleanup函式會通知命名空間服務提供者版本 2 (NSPv2) 用戶端會話已終止。

語法

LPNSPV2CLEANUP Lpnspv2cleanup;

INT Lpnspv2cleanup(
  [in] LPGUID lpProviderId,
  [in] LPVOID pvClientSessionArg
)
{...}

參數

[in] lpProviderId

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

[in] pvClientSessionArg

用戶端會話的指標。

傳回值

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

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

備註

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

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

每次新的用戶端進程開始使用命名空間提供者時,都會呼叫 NSPv2Startup 函式。 提供者可以使用 ppvClientSessionArg 參數所指向的用戶端會話引數來儲存此會話的相關資訊。 如果在對 NSPv2Startup 函式的呼叫中為用戶端會話引數指定值,則可以在 pvClientSessionArg 參數中將這個相同的用戶端會話引數傳遞給 NSPv2Cleanup 函式,以通知命名空間提供者用戶端會話已終止。

當應用程式使用 Windows Sockets 命名空間服務提供者完成時,會呼叫 NSPv2Cleanup 函式。 NSPv2Cleanup可讓命名空間提供者釋放為用戶端會話配置的任何命名空間提供者資源。

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

NSPv2StartupNSPv2ClientSessionRundownNSPv2Cleanup函式是選擇性的,取決於 NSPv2 提供者的需求。

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

規格需求

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

另請參閱

NSPV2_ROUTINE

NSPv2ClientSessionRundown

NSPv2LookupServiceBegin

NSPv2LookupServiceEnd

NSPv2LookupServiceNextEx

NSPv2SetServiceEx

NSPv2Startup

WSAQUERYSET2

WSASetLastError