Provider-Specific擴充機制
WSAIoctl函式可讓服務提供者提供提供者特定的功能延伸模組。 此機制假設應用程式知道特定延伸模組,並瞭解相關的語意和語法。 這類資訊通常是由服務提供者廠商提供。
若要叫用擴充函式,應用程式必須先要求所需函式的指標。 這是使用 SIO_GET_EXTENSION_FUNCTION_POINTER 命令程式碼透過 WSAIoctl 函式來完成。 WSAIoctl的輸入緩衝區包含所需擴充函式的識別碼,而輸出緩衝區則包含函式指標本身。 然後,應用程式可以直接叫用擴充函式,而不需傳遞Ws2_32.dll。
指派給擴充函式的識別碼是全域唯一識別碼, (服務提供者所配置的 GUID) 。 建立延伸模組函式的廠商會鼓勵發佈函式的完整詳細資料,包括函式原型的語法。 這可讓多個服務提供者廠商提供通用和熱門的擴充功能。 應用程式可以取得函式指標,並使用 函式,而不需要知道實作函式的特定服務提供者。
在 Windows Vista 和更新版本上,新的 Winsock 系統延伸模組會直接從 Winsock DLL 匯出,因此不需要 WSAIoctl 函式才能載入這些延伸模組。 Windows Vista 和更新版本上可用的新擴充功能函式包括從Ws2_32.dll匯出的WSAPoll和WSASendMsg函式。