Added WSASTARTUP16 a 1 byte alignment version of WSASTARTUP for win16.

diff --git a/dlls/winsock/socket.c b/dlls/winsock/socket.c
index fff37aa..1b4a11d 100644
--- a/dlls/winsock/socket.c
+++ b/dlls/winsock/socket.c
@@ -530,25 +530,29 @@
  * Create socket control struct, attach it to the global list and
  * update a pointer in the task struct.
  */
-INT16 WINAPI WSAStartup16(UINT16 wVersionRequested, LPWSADATA lpWSAData)
+INT16 WINAPI WSAStartup16(UINT16 wVersionRequested, LPWSADATA16 lpWSAData)
 {
-    WSADATA WINSOCK_data = { 0x0101, 0x0101,
-                          "WINE Sockets 1.1",
-                        #ifdef linux
-                                "Linux/i386",
-                        #elif defined(__NetBSD__)
-                                "NetBSD/i386",
-                        #elif defined(sunos)
-                                "SunOS",
-                        #elif defined(__FreeBSD__)
-                                "FreeBSD",
-                        #elif defined(__OpenBSD__)
-                                "OpenBSD/i386",
-                        #else
-                                "Unknown",
-                        #endif
-			   WS_MAX_SOCKETS_PER_PROCESS,
-			   WS_MAX_UDP_DATAGRAM, (SEGPTR)NULL };
+    static const WSADATA16 data =
+    {
+        0x0101, 0x0101,
+        "WINE Sockets 1.1",
+#ifdef linux
+        "Linux/i386",
+#elif defined(__NetBSD__)
+        "NetBSD/i386",
+#elif defined(sunos)
+        "SunOS",
+#elif defined(__FreeBSD__)
+        "FreeBSD",
+#elif defined(__OpenBSD__)
+        "OpenBSD/i386",
+#else
+        "Unknown",
+#endif
+        WS_MAX_SOCKETS_PER_PROCESS,
+        WS_MAX_UDP_DATAGRAM,
+        0
+    };
 
     TRACE("verReq=%x\n", wVersionRequested);
 
@@ -574,7 +578,7 @@
 
     /* return winsock information */
 
-    memcpy(lpWSAData, &WINSOCK_data, sizeof(WINSOCK_data));
+    memcpy(lpWSAData, &data, sizeof(data));
 
     TRACE("succeeded\n");
     return 0;
@@ -585,23 +589,27 @@
  */
 INT WINAPI WSAStartup(UINT wVersionRequested, LPWSADATA lpWSAData)
 {
-    WSADATA WINSOCK_data = { 0x0202, 0x0202,
-                          "WINE Sockets 2.0",
-                        #ifdef linux
-                                "Linux/i386",
-                        #elif defined(__NetBSD__)
-                                "NetBSD/i386",
-                        #elif defined(sunos)
-                                "SunOS",
-                        #elif defined(__FreeBSD__)
-                                "FreeBSD",
-                        #elif defined(__OpenBSD__)
-                                "OpenBSD/i386",
-                        #else
-                                "Unknown",
-                        #endif
-			   WS_MAX_SOCKETS_PER_PROCESS,
-			   WS_MAX_UDP_DATAGRAM, (SEGPTR)NULL };
+    static const WSADATA data =
+    {
+        0x0202, 0x0202,
+        "WINE Sockets 2.0",
+#ifdef linux
+        "Linux",
+#elif defined(__NetBSD__)
+        "NetBSD",
+#elif defined(sunos)
+        "SunOS",
+#elif defined(__FreeBSD__)
+        "FreeBSD",
+#elif defined(__OpenBSD__)
+        "OpenBSD",
+#else
+        "Unknown",
+#endif
+        WS_MAX_SOCKETS_PER_PROCESS,
+        WS_MAX_UDP_DATAGRAM,
+        NULL
+    };
 
     TRACE("verReq=%x\n", wVersionRequested);
 
@@ -626,7 +634,7 @@
     num_startup++;
 
     /* return winsock information */
-    memcpy(lpWSAData, &WINSOCK_data, sizeof(WINSOCK_data));
+    memcpy(lpWSAData, &data, sizeof(data));
 
     /* that's the whole of the negotiation for now */
     lpWSAData->wVersion = wVersionRequested;
diff --git a/include/wine/winsock16.h b/include/wine/winsock16.h
index 019083e..21890e4 100644
--- a/include/wine/winsock16.h
+++ b/include/wine/winsock16.h
@@ -46,6 +46,17 @@
         INT     n_net;          /* network # */
 } _ws_netent16;
 
+typedef struct WSAData16
+{
+    WORD                    wVersion;
+    WORD                    wHighVersion;
+    char                    szDescription[WSADESCRIPTION_LEN+1];
+    char                    szSystemStatus[WSASYS_STATUS_LEN+1];
+    WORD                    iMaxSockets;
+    WORD                    iMaxUdpDg;
+    SEGPTR                  lpVendorInfo;
+} WSADATA16, *LPWSADATA16;
+
 #include "poppack.h"
 
 #define WS_FD_CLR16(fd, set)   __WS_FD_CLR((fd),(set), ws_fd_set16)
@@ -56,7 +67,7 @@
 #define INVALID_SOCKET16  ((SOCKET16)(~0))
 
 INT16     WINAPI __WSAFDIsSet16( SOCKET16, ws_fd_set16 * );
-INT16     WINAPI WSAStartup16(UINT16 wVersionRequired, LPWSADATA lpWSAData);
+INT16     WINAPI WSAStartup16(UINT16 wVersionRequired, LPWSADATA16 lpWSAData);
 void      WINAPI WSASetLastError16(INT16 iError);
 INT16     WINAPI WSAUnhookBlockingHook16(void);
 FARPROC16 WINAPI WSASetBlockingHook16(FARPROC16 lpBlockFunc);