Function WSAStartup

Functia WSAStartup() din interfata Windows Sockets  se foloseste pentru initializarea utilizarii bibliotecii DLL de catre un proces.

Sintaxa

int WSAStartup (

WORD wVersionRequested, 
LPWSADATA lpWSAData 
);

unde:

Aceasta functie trebuie sa fie prima functie apelata de o aplicatie sau DLL. Ea permite unei aplicatii sa precizeze versiunea Windows Sockets necesara si sa obtina detalii referitor la implementarea Windows Sockets.

Detalii referitoare la implementarea reala a Windows Sockets sunt descrise in structura WSAData definita astfel:

struct WSAData {
WORD wVersion;
WORD wHighVersion;
char 
szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYSSTATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg; 
char FAR * lpVendorInfo;
};

Membrii acestei structuri sunt:


O aplicatie sau DLL poate apela functia WSAStartup() de mai multe ori daca are nevoie sa obtina informatii din structura WSAData de mai multe ori. la fiecare astfel de apel aplicatia poate specifica orice numar de versiune suportat de catre DLL.

Trebuie sa exista cate un apel al functiei WSACleanup() pentru fiecare apel reusit al functiei WSAStartup pentru permite unei aplicatii sa foloseasca un DLL Windows Sockets. Aceasta inseamna, de exemplu, ca daca o aplicatie apeleaza de trei ori WSAStartup, ea trebuie sa apeleze WSACleanup() tot de trei ori. Primele doua apeluri ale WSACleanup() nu fac nimic altceva decat sa decrementeze un contor intern. Ultimul apel WSACleanup() va efectua toate dealocarile de resurse necesare.

Valoare returnata

Functia WSAStartup() intoarce zero in caz de reusita. In caz contrar, ea returneaza unul dintre erorile listate in continuare. De retinut ca mecanismul normal prin care aplicatia apeleaza WSAGetLastError() pentru a determina codul de roare nu poate fi folosit, deoarece DLL-ul Windows Sockets se poate sa nu fi stabilit domeniul de date al clientului in care informatia referitoare la "ultima eroare" este memorata.

Coduri de eroare

Cornel Mironel Niculae, 2004-2005
13-Nov-2004