WSAEnumNameSpaceProvidersExA 函式 (winsock2.h)
WSAEnumNameSpaceProvidersEx 函式會擷取可用命名空間提供者的相關信息。
語法
INT WSAAPI WSAEnumNameSpaceProvidersExA(
[in, out] LPDWORD lpdwBufferLength,
[out] LPWSANAMESPACE_INFOEXA lpnspBuffer
);
參數
[in, out] lpdwBufferLength
在輸入時, lpnspBuffer 所指向緩衝區中包含的位元元組數目。 在輸出 (如果函式失敗,且錯誤為 WSAEFAULT) ,則為 lpnspBuffer 緩衝區配置的最低位元組數目,以允許它擷取所有要求的資訊。 傳遞至 WSAEnumNameSpaceProvidersEx 的緩衝區必須足以保存所有命名空間資訊。
[out] lpnspBuffer
已填入 WSANAMESPACE_INFOEX 結構的緩衝區。 傳回的結構會連續位於緩衝區的前端。 結構中的指標所參考的可變大小資訊會指向位於固定大小結構結尾與緩衝區結尾之間緩衝區內的位置。 填入的結構數目是 WSAEnumNameSpaceProvidersEx 的傳回值。
傳回值
WSAEnumNameSpaceProvidersEx 函式會傳回復制到 lpnspBuffer的WSANAMESPACE_INFOEX結構數目。 否則,會傳回SOCKET_ERROR值,並呼叫 WSAGetLastError 來擷取特定的錯誤號碼。
錯誤碼 | 意義 |
---|---|
lpnspBuffer 參數是 NULL 指標或緩衝區長度 lpdwBufferLength 太小,無法接收所有相關WSANAMESPACE_INFOEX結構和相關信息。 傳回此錯誤時, lpdwBufferLength 參數中會傳回所需的緩衝區長度。 | |
尚未初始化 WS2_32.DLL。 應用程式必須先呼叫 WSAStartup ,再呼叫任何 Windows Sockets 函式。 | |
記憶體不足,無法執行作業。 |
備註
WSAEnumNameSpaceProvidersEx 函式是 WSAEnumNameSpaceProviders 函式的增強版本。 您可以使用 WSAEnumNameSpaceProvidersEx 函式來查詢與 lpProviderInfo 參數中傳遞給 WSCInstallNameSpaceEx 函式之命名空間項目相關聯的提供者特定數據 Blob。
目前,Windows 隨附的唯一命名空間提供者是WSANAMESPACE_INFOEX結構之 ProviderSpecific 成員中設定資訊的命名空間提供者是NS_EMAIL提供者。 NS_EMAIL命名空間提供者 的 ProviderSpecific 成員格式是 NAPI_PROVIDER_INSTALLATION_BLOB 結構。
定義 UNICODE 或_UNICODE時, WSAEnumNameSpaceProvidersEx 會定義為 WSAEnumNameSpaceProvidersExW,這是此函式的 Unicode 版本。 lpnspBuffer 參數會定義至LPSAWSANAMESPACE_INFOEXW數據類型,並在成功時傳回WSANAMESPACE_INFOEXW結構。
未定義 UNICODE 或_UNICODE時, WSAEnumNameSpaceProvidersEx 會定義為 WSAEnumNameSpaceProvidersExA,這是此函式的 ANSI 版本。 lpnspBuffer 參數會定義至LPSAWSANAMESPACE_INFOEXA數據類型,並在成功時傳回WSANAMESPACE_INFOEXA結構。
Windows 8.1 和 Windows Server 2012 R2:Windows 8.1、Windows Server 2012 R2 和更新版本的 Windows 市集應用程式支援 WSAEnumNameSpaceProvidersExW 函式。
注意
winsock2.h 標頭會根據 UNICODE 預處理器常數的定義,將 WSAEnumNameSpaceProvidersEx 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8.1、Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | winsock2.h |
程式庫 | Ws2_32.lib |
Dll | Ws2_32.dll |