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 函式的增強版本。 您可以使用
目前,在 WSANAMESPACE_INFOEX 結構 ProviderSpecific 成員中設定資訊之 Windows 隨附的唯一命名空間提供者是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:WSAEnumNameSpaceProvidersExW 函式支援 Windows 8.1、Windows Server 2012 R2 及更新版本的 Windows 市集應用程式。
注意
winsock2.h 標頭會根據 UNICODE 預處理器常數的定義,將 WSAEnumNameSpaceProvidersEx 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 8.1、Windows Vista [傳統型應用程式 |UWP 應用程式] |
支援的最低伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平臺 | 窗戶 |
標頭 | winsock2.h |
連結庫 | Ws2_32.lib |
DLL | Ws2_32.dll |