1 /* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS WinSock DLL 4 * FILE: stubs.c 5 * PURPOSE: Stub functions 6 * PROGRAMMERS: Ge van Geldorp (ge@gse.nl) 7 * REVISIONS: 8 */ 9 10 #include "precomp.h" 11 12 #include <ws2spi.h> 13 #include <nspapi.h> 14 #include <svc.h> 15 16 typedef DWORD (* LPFN_NSPAPI)(VOID); 17 typedef struct _NS_ROUTINE { 18 DWORD dwFunctionCount; 19 LPFN_NSPAPI *alpfnFunctions; 20 DWORD dwNameSpace; 21 DWORD dwPriority; 22 } NS_ROUTINE, *PNS_ROUTINE, * FAR LPNS_ROUTINE; 23 24 25 /* 26 * @unimplemented 27 */ 28 INT 29 WINAPI 30 EnumProtocolsA(LPINT ProtocolCount, 31 LPVOID ProtocolBuffer, 32 LPDWORD BufferLength) 33 { 34 OutputDebugStringW(L"w32sock EnumProtocolsA stub called\n"); 35 36 return SOCKET_ERROR; 37 } 38 39 40 /* 41 * @unimplemented 42 */ 43 INT 44 WINAPI 45 EnumProtocolsW(LPINT ProtocolCount, 46 LPVOID ProtocolBuffer, 47 LPDWORD BufferLength) 48 { 49 OutputDebugStringW(L"w32sock EnumProtocolsW stub called\n"); 50 51 return SOCKET_ERROR; 52 } 53 54 55 /* 56 * @unimplemented 57 */ 58 INT 59 WINAPI 60 GetAddressByNameA(DWORD NameSpace, 61 LPGUID ServiceType, 62 LPSTR ServiceName, 63 LPINT Protocols, 64 DWORD Resolution, 65 LPSERVICE_ASYNC_INFO ServiceAsyncInfo, 66 LPVOID CsaddrBuffer, 67 LPDWORD BufferLength, 68 LPSTR AliasBuffer, 69 LPDWORD AliasBufferLength) 70 { 71 OutputDebugStringW(L"w32sock GetAddressByNameA stub called\n"); 72 73 return SOCKET_ERROR; 74 } 75 76 77 /* 78 * @unimplemented 79 */ 80 INT 81 WINAPI 82 GetAddressByNameW(DWORD NameSpace, 83 LPGUID ServiceType, 84 LPWSTR ServiceName, 85 LPINT Protocols, 86 DWORD Resolution, 87 LPSERVICE_ASYNC_INFO ServiceAsyncInfo, 88 LPVOID CsaddrBuffer, 89 LPDWORD BufferLength, 90 LPWSTR AliasBuffer, 91 LPDWORD AliasBufferLength) 92 { 93 OutputDebugStringW(L"w32sock GetAddressByNameW stub called\n"); 94 95 return SOCKET_ERROR; 96 } 97 98 99 /* 100 * @unimplemented 101 */ 102 INT 103 WINAPI 104 GetServiceA(DWORD NameSpace, 105 LPGUID Guid, 106 LPSTR ServiceName, 107 DWORD Properties, 108 LPVOID Buffer, 109 LPDWORD BufferSize, 110 LPSERVICE_ASYNC_INFO ServiceAsyncInfo) 111 { 112 OutputDebugStringW(L"w32sock GetServiceA stub called\n"); 113 114 return SOCKET_ERROR; 115 } 116 117 118 /* 119 * @unimplemented 120 */ 121 INT 122 WINAPI 123 GetServiceW(DWORD NameSpace, 124 LPGUID Guid, 125 LPWSTR ServiceName, 126 DWORD Properties, 127 LPVOID Buffer, 128 LPDWORD BufferSize, 129 LPSERVICE_ASYNC_INFO ServiceAsyncInfo) 130 { 131 OutputDebugStringW(L"w32sock GetServiceW stub called\n"); 132 133 return SOCKET_ERROR; 134 } 135 136 137 /* 138 * @unimplemented 139 */ 140 INT 141 WINAPI 142 GetTypeByNameA(LPSTR ServiceName, 143 LPGUID ServiceType) 144 { 145 OutputDebugStringW(L"w32sock GetTypeByNameA stub called\n"); 146 147 return SOCKET_ERROR; 148 } 149 150 151 /* 152 * @unimplemented 153 */ 154 INT 155 WINAPI 156 GetTypeByNameW(LPWSTR ServiceName, 157 LPGUID ServiceType) 158 { 159 OutputDebugStringW(L"w32sock GetTypeByNameW stub called\n"); 160 161 return SOCKET_ERROR; 162 } 163 164 165 /* 166 * @unimplemented 167 */ 168 INT 169 WINAPI 170 MigrateWinsockConfiguration(DWORD Unknown1, 171 DWORD Unknown2, 172 DWORD Unknown3) 173 { 174 OutputDebugStringW(L"w32sock MigrateWinsockConfiguration stub called\n"); 175 176 return SOCKET_ERROR; 177 } 178 179 180 /* 181 * @unimplemented 182 */ 183 INT 184 WINAPI 185 SetServiceA(DWORD NameSpace, 186 DWORD Operation, 187 DWORD Flags, 188 LPSERVICE_INFOA ServiceInfo, 189 LPSERVICE_ASYNC_INFO ServiceAsyncInfo, 190 LPDWORD dwStatusFlags) 191 { 192 OutputDebugStringW(L"w32sock SetServiceA stub called\n"); 193 194 return SOCKET_ERROR; 195 } 196 197 198 /* 199 * @unimplemented 200 */ 201 INT 202 WINAPI 203 SetServiceW(DWORD NameSpace, 204 DWORD Operation, 205 DWORD Flags, 206 LPSERVICE_INFOW ServiceInfo, 207 LPSERVICE_ASYNC_INFO ServiceAsyncInfo, 208 LPDWORD dwStatusFlags) 209 { 210 OutputDebugStringW(L"w32sock SetServiceW stub called\n"); 211 212 return SOCKET_ERROR; 213 } 214 215 216 /* 217 * @unimplemented 218 */ 219 int 220 WINAPI 221 WSARecvEx(SOCKET Sock, 222 char *Buf, 223 int Len, 224 int *Flags) 225 { 226 OutputDebugStringW(L"w32sock WSARecvEx stub called\n"); 227 228 return SOCKET_ERROR; 229 } 230 231 232 /* 233 * @unimplemented 234 */ 235 int 236 WINAPI 237 dn_expand(unsigned char *MessagePtr, 238 unsigned char *EndofMesOrig, 239 unsigned char *CompDomNam, 240 unsigned char *ExpandDomNam, 241 int Length) 242 { 243 OutputDebugStringW(L"w32sock dn_expand stub called\n"); 244 245 return SOCKET_ERROR; 246 } 247 248 249 /* 250 * @unimplemented 251 */ 252 struct netent * 253 WINAPI 254 getnetbyname(const char *name) 255 { 256 OutputDebugStringW(L"w32sock getnetbyname stub called\n"); 257 258 return NULL; 259 } 260 261 262 /* 263 * @unimplemented 264 */ 265 UINT 266 WINAPI 267 inet_network(const char *cp) 268 { 269 OutputDebugStringW(L"w32sock inet_network stub called\n"); 270 271 return INADDR_NONE; 272 } 273 274 275 /* 276 * @unimplemented 277 */ 278 SOCKET 279 WINAPI 280 rcmd(char **AHost, 281 USHORT InPort, 282 char *LocUser, 283 char *RemUser, 284 char *Cmd, 285 int *Fd2p) 286 { 287 OutputDebugStringW(L"w32sock rcmd stub called\n"); 288 289 return INVALID_SOCKET; 290 } 291 292 293 /* 294 * @unimplemented 295 */ 296 SOCKET 297 WINAPI 298 rexec(char **AHost, 299 int InPort, 300 char *User, 301 char *Passwd, 302 char *Cmd, 303 int *Fd2p) 304 { 305 OutputDebugStringW(L"w32sock rexec stub called\n"); 306 307 return INVALID_SOCKET; 308 } 309 310 311 /* 312 * @unimplemented 313 */ 314 SOCKET 315 WINAPI 316 rresvport(int *port) 317 { 318 OutputDebugStringW(L"w32sock rresvport stub called\n"); 319 320 return INVALID_SOCKET; 321 } 322 323 324 /* 325 * @unimplemented 326 */ 327 void 328 WINAPI 329 s_perror(const char *str) 330 { 331 OutputDebugStringW(L"w32sock s_perror stub called\n"); 332 } 333 334 335 /* 336 * @unimplemented 337 */ 338 int 339 WINAPI 340 sethostname(char *Name, int NameLen) 341 { 342 OutputDebugStringW(L"w32sock sethostname stub called\n"); 343 344 return SOCKET_ERROR; 345 } 346 347 348 /* 349 * @unimplemented 350 */ 351 BOOL 352 WINAPI 353 DllMain(HINSTANCE InstDLL, 354 DWORD Reason, 355 LPVOID Reserved) 356 { 357 return TRUE; 358 } 359 360 361 /* 362 * @unimplemented 363 */ 364 INT 365 WINAPI 366 GetNameByTypeA(LPGUID lpServiceType,LPSTR lpServiceName,DWORD dwNameLength) 367 { 368 OutputDebugStringW(L"w32sock GetNameByTypeA stub called\n"); 369 return TRUE; 370 } 371 372 373 /* 374 * @unimplemented 375 */ 376 INT 377 WINAPI 378 GetNameByTypeW(LPGUID lpServiceType,LPWSTR lpServiceName,DWORD dwNameLength) 379 { 380 OutputDebugStringW(L"w32sock GetNameByTypeW stub called\n"); 381 return TRUE; 382 } 383 384 /* 385 * @unimplemented 386 */ 387 int 388 WINAPI 389 WSPStartup( 390 IN WORD wVersionRequested, 391 OUT LPWSPDATA lpWSPData, 392 IN LPWSAPROTOCOL_INFOW lpProtocolInfo, 393 IN WSPUPCALLTABLE UpcallTable, 394 OUT LPWSPPROC_TABLE lpProcTable 395 ) 396 { 397 return TRUE; 398 } 399 400 401 /* 402 * @unimplemented 403 */ 404 INT 405 WINAPI 406 NPLoadNameSpaces( 407 IN OUT LPDWORD lpdwVersion, 408 IN OUT LPNS_ROUTINE nsrBuffer, 409 IN OUT LPDWORD lpdwBufferLength 410 ) 411 { 412 OutputDebugStringW(L"mswsock NPLoadNameSpaces stub called\n"); 413 414 *lpdwVersion = 1; 415 416 return TRUE; 417 } 418 419 420 /* 421 * @unimplemented 422 */ 423 VOID 424 WINAPI 425 StartWsdpService() 426 { 427 OutputDebugStringW(L"mswsock StartWsdpService stub called\n"); 428 } 429 430 431 /* 432 * @unimplemented 433 */ 434 VOID 435 WINAPI 436 StopWsdpService() 437 { 438 OutputDebugStringW(L"mswsock StopWsdpService stub called\n"); 439 } 440 441 442 /* 443 * @unimplemented 444 * 445 * See https://www.geoffchappell.com/studies/windows/win32/services/svchost/dll/svchostpushserviceglobals.htm 446 */ 447 VOID 448 WINAPI 449 SvchostPushServiceGlobals(PSVCHOST_GLOBAL_DATA lpGlobals) 450 { 451 OutputDebugStringW(L"mswsock SvchostPushServiceGlobals stub called\n"); 452 } 453 454 455 /* 456 * @unimplemented 457 */ 458 VOID 459 WINAPI 460 ServiceMain(DWORD Unknown1, DWORD Unknown2) 461 { 462 OutputDebugStringW(L"mswsock ServiceMain stub called\n"); 463 } 464