meccanismo di estensione Provider-Specific
La funzione WSAIoctl consente ai provider di servizi di offrire estensioni di funzionalità specifiche del provider. Questo meccanismo presuppone, naturalmente, che un'applicazione sia consapevole di una particolare estensione e comprenda sia la semantica che la sintassi coinvolte. Tali informazioni vengono in genere fornite dal fornitore del provider di servizi.
Per richiamare una funzione di estensione, l'applicazione deve prima richiedere un puntatore alla funzione desiderata. Questa operazione viene eseguita tramite la funzione WSAIoctl usando il codice del comando SIO_GET_EXTENSION_FUNCTION_POINTER. Il buffer di input in WSAIoctl contiene un identificatore per la funzione di estensione desiderata mentre il buffer di output contiene il puntatore a funzione stesso. L'applicazione può quindi richiamare direttamente la funzione di estensione senza passare attraverso il Ws2_32.dll.
Gli identificatori assegnati alle funzioni di estensione sono identificatori univoci globali (GUID) allocati dai fornitori di provider di servizi. I fornitori che creano funzioni di estensione sono invitati a pubblicare dettagli completi sulla funzione, inclusa la sintassi del prototipo di funzione. In questo modo è possibile che le funzioni di estensione comuni e comuni vengano offerte da più fornitori di provider di servizi. Un'applicazione può ottenere il puntatore a funzione e usare la funzione senza dover conoscere nulla sul provider di servizi specifico che implementa la funzione.
In Windows Vista e versioni successive, le nuove estensioni di sistema Winsock vengono esportate direttamente dalla DLL Winsock, quindi la funzione WSAIoctl non è necessaria per caricare queste estensioni. Le nuove funzioni di estensione disponibili in Windows Vista e versioni successive includono le funzioni WSAPoll e WSASendMsg esportate da Ws2_32.dll.