Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Poiché la DLL Winsock stessa non è più fornita da ogni singolo fornitore dello stack, non è possibile che un fornitore dello stack offra funzionalità estese aggiungendo punti di ingresso alla DLL Winsock. Per superare questa limitazione, Winsock sfrutta la nuova funzione diWSAIoctlper soddisfare i provider di servizi che desiderano offrire estensioni di funzionalità specifiche del provider. Questo meccanismo presuppone che un'applicazione sia a conoscenza 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 chiedere un puntatore alla funzione desiderata. Questa operazione viene eseguita tramite la funzioneWSAIoctlusando il codice del comando SIO_GET_EXTENSION_FUNCTION_POINTER. Il buffer di input nella funzione di WSAIoctl contiene un identificatore per la funzione di estensione desiderata e il buffer di output conterrà il puntatore di 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 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 offrire funzioni di estensione comuni e/o comuni da più provider di servizi. Un'applicazione può ottenere il puntatore alla funzione e usare la funzione senza dover conoscere nulla sul provider di servizi specifico che implementa la funzione.