WSCEnumNameSpaceProvidersEx32 函式 (ws2spi.h)
WSCEnumNameSpaceProvidersEx32 函式會擷取可用 32 位命名空間提供者的相關信息。
語法
INT WSAAPI WSCEnumNameSpaceProvidersEx32(
[in, out] LPDWORD lpdwBufferLength,
[out] LPWSANAMESPACE_INFOEXW lpnspBuffer
);
參數
[in, out] lpdwBufferLength
在輸入時, lpnspBuffer 所指向緩衝區中包含的位元元組數目。 在輸出 (如果函式失敗,且錯誤為 WSAEFAULT) ,則為 lpnspBuffer 緩衝區配置的最低位元組數目,以允許它擷取所有要求的資訊。 傳遞至 WSCEnumNameSpaceProvidersEx32 的緩衝區必須足以保存所有命名空間資訊。
[out] lpnspBuffer
填入 WSANAMESPACE_INFOEXW 結構的緩衝區。 傳回的結構會連續位於緩衝區的前端。 結構中的指標所參考的可變大小資訊會指向位於固定大小結構結尾與緩衝區結尾之間緩衝區內的位置。 填入的結構數目是 WSCEnumNameSpaceProvidersEx32 的傳回值。
傳回值
WSCEnumNameSpaceProvidersEx32 函式會傳回復制到 lpnspBuffer的WSANAMESPACE_INFOEXW結構數目。 否則,會傳回SOCKET_ERROR值,並呼叫 WSAGetLastError 來擷取特定的錯誤號碼。
錯誤碼 | 意義 |
---|---|
緩衝區長度太小,無法接收所有相關 WSANAMESPACE_INFOEXW 結構和相關信息,或 lpnspBuffer 參數是 **NULL** 指標。 傳回此錯誤時, lpdwBufferLength 參數中會傳回所需的緩衝區長度。 | |
尚未初始化 WS2_32.DLL。 應用程式必須先呼叫 WSAStartup ,再呼叫任何 Windows Sockets 函式。 | |
記憶體不足,無法執行作業。 |
備註
WSCEnumNameSpaceProvidersEx32 是嚴格 32 位版本的 WSAEnumNameSpaceProvidersEx。 例如,在64位電腦上,所有呼叫並非特別為32位 (,在原生64位目錄上不會結束於 「32」) 的所有函式。 在 64 位電腦上執行的進程必須使用特定的 32 位函數調用,才能在嚴格 32 位目錄上運作,並保留相容性。 特定32位呼叫的定義和語意與其原生對應專案相同。
目前,Windows 隨附的唯一命名空間會使用WSANAMESPACE_INFOEXW結構之 ProviderSpecific 成員中的資訊,是NS_EMAIL命名空間的命名空間提供者。 NS_EMAIL命名空間提供者 的 ProviderSpecific 成員格式是 NAPI_PROVIDER_INSTALLATION_BLOB 結構。
32 位 SPI 函式相當於 WSAEnumNameSpaceProvidersEx (原生 API 函式) ,因為沒有「隱藏」命名空間提供者的概念。
使用 WSCEnumNameSpaceProvidersEx32 函式,可以查詢與 lpProviderInfo 參數中傳遞至 WSCInstallNameSpaceEx32 函式之命名空間項目相關聯的提供者特定數據 Blob。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | ws2spi.h |
程式庫 | Ws2_32.lib |
Dll | Ws2_32.dll |