ReactOS 0.4.15-dev-7991-ge77da17
dllmain.c File Reference
#include <ws2_32.h>
Include dependency graph for dllmain.c:

Go to the source code of this file.

Functions

BOOL APIENTRY DllMain (HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
 
INT WSAAPI WSAGetLastError (VOID)
 
VOID WSAAPI WSASetLastError (IN INT iError)
 

Variables

HANDLE WsSockHeap
 
HINSTANCE WsDllHandle
 
DWORD GlobalTlsIndex = TLS_OUT_OF_INDEXES
 

Function Documentation

◆ DllMain()

BOOL APIENTRY DllMain ( HANDLE  hModule,
DWORD  dwReason,
LPVOID  lpReserved 
)

Definition at line 29 of file dllmain.c.

32{
33 PWSPROCESS WsProcess;
34
35 /* Main Entrypoint */
36 switch (dwReason)
37 {
39 /* Save DLL Handle */
41
42 /* Get Global Heap */
44
45 /* TLS Allocation */
47 {
50 {
51 return FALSE;
52 }
53 }
54
55 /* Initialize some critical sections */
59 break;
60
62 break;
63
65 /* Destroy the attached Winsock Thread */
67 break;
68
70 /* Make sure we were initialized */
71 if (!WsDllHandle) break;
72
73 /* Check if this was a FreeLibrary call (ie: not process cleanup) */
74 if (lpReserved)
75 {
76 /* Destroy the thread which is exiting */
78
79 /* Check if we have a process and destroy it */
80 WsProcess = WsGetProcess();
81 if (WsProcess) WsProcDelete(WsProcess);
82
83 /* Cleanup the Thread and Socket managers */
86
87 /* Cleanup critical sections */
90
91 /* Free the TLS Index */
93 }
94
95 /* Cleanup RAS auto-dial helper */
97
98 /* Clear our handle */
100 break;
101 }
102
103 /* Return to OS */
104 return TRUE;
105}
DWORD dwReason
Definition: misc.cpp:154
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
HMODULE hModule
Definition: animate.c:44
#define GetProcessHeap()
Definition: compat.h:736
#define DLL_THREAD_DETACH
Definition: compat.h:133
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define DLL_PROCESS_DETACH
Definition: compat.h:130
#define DLL_THREAD_ATTACH
Definition: compat.h:132
DWORD WINAPI TlsAlloc(VOID)
Definition: thread.c:1100
BOOL WINAPI TlsFree(IN DWORD Index)
Definition: thread.c:1166
DWORD GlobalTlsIndex
Definition: dllmain.c:23
HINSTANCE WsDllHandle
Definition: dllmain.c:22
HANDLE WsSockHeap
Definition: dllmain.c:21
#define TLS_OUT_OF_INDEXES
Definition: winbase.h:549
VOID WSAAPI WsSockCleanup(VOID)
Definition: dsocket.c:36
VOID WSAAPI WsRasInitializeAutodial(VOID)
Definition: rasdial.c:47
FORCEINLINE PWSPROCESS WsGetProcess(VOID)
Definition: ws2_32p.h:885
VOID WSAAPI WsThreadCleanup(VOID)
Definition: dthread.c:170
VOID WSAAPI WsProcDelete(IN PWSPROCESS Process)
Definition: dprocess.c:247
VOID WSAAPI WsDestroyStartupSynchronization(VOID)
Definition: startup.c:36
VOID WSAAPI WsCreateStartupSynchronization(VOID)
Definition: startup.c:28
VOID WSAAPI WsRasUninitializeAutodial(VOID)
Definition: rasdial.c:55
VOID WSAAPI WsThreadDestroyCurrentThread(VOID)
Definition: dthread.c:225
VOID WSAAPI WsAsyncGlobalTerminate(VOID)
Definition: async.c:39
VOID WSAAPI WsAsyncGlobalInitialize(VOID)
Definition: async.c:31

◆ WSAGetLastError()

INT WSAAPI WSAGetLastError ( VOID  )

Definition at line 112 of file dllmain.c.

113{
114 /* Let the Windows Function do the work */
115 return GetLastError();
116}
DWORD WINAPI GetLastError(void)
Definition: except.c:1042

Referenced by __rpc_fd2sockinfo(), __rpc_get_time_offset(), AcceptConnections(), AdapterDiscoveryThread(), AreLegacyFunctionsSupported(), bindresvport_sa(), clnt_vc_create(), create_netconn_socket(), CreateSocket(), dataconn(), detectChange(), do_bind(), drain_socket_thread(), EchoIncomingPackets(), ErrorExit(), event_client(), Exit(), fputcSocket(), fputSocket(), FTP_Connect(), FTPFILE_WriteFile(), getdomainname(), GetIpHostName(), got_one(), InternetTransport_ReadLine(), InternetTransport_WndProc(), InternetTransport_Write(), IsWinsockInitialized(), main(), make_listening_socket(), mwsNSPLookupServiceBegin(), mwsNSPLookupServiceNext(), NetBTRecv(), NETCON_is_alive(), NETCON_recv(), NETCON_send(), NETCON_set_timeout(), netconn_create(), netconn_is_alive(), netconn_set_timeout(), netfinger(), open_http(), POP3Transport_ParseResponse(), print_getaddrinfo(), processRequest(), read_ssl_chunk(), read_vc(), ReceiveIncomingPackets(), recvrequest(), ResolveTarget(), rpcrt4_conn_tcp_read(), rpcrt4_conn_tcp_write(), rpcrt4_ip_tcp_parse_top_of_tower(), rpcrt4_ncacn_ip_tcp_open(), rpcrt4_protseq_ncacn_ip_tcp_open_endpoint(), rpcrt4_protseq_sock_get_wait_array(), rpcrt4_sock_wait_for_recv(), rpcrt4_sock_wait_for_send(), rtime(), SConnect(), select_server(), send_file(), SendLine(), sendrequest(), SendRequest(), SendTime(), SError(), setup_iocp_src(), SetUpListener(), ShutdownConnection(), sock_recv(), sock_send(), START_TEST(), svc_run(), Test_CloseDuplicatedSocket(), Test_CloseWhileSelectDuplicatedSocket(), Test_CloseWhileSelectSameSocket(), test_events(), test_GetAddrInfoW(), test_gethostbyname(), test_ip_pktinfo(), Test_Overread(), test_select(), test_send(), test_sendto(), test_set_getsockopt(), test_WithoutWSAStartup(), test_WithWSAStartup(), test_WSAEnumProtocolsA(), test_WSAEnumProtocolsW(), Test_WSAIoctl_GetInterfaceList(), Test_WSARecv(), TestBind(), TestNodeName(), TestServiceName(), wmain(), write_vc(), WspiapiLegacyGetNameInfo(), and WspiapiQueryDNS().

◆ WSASetLastError()

Variable Documentation

◆ GlobalTlsIndex

DWORD GlobalTlsIndex = TLS_OUT_OF_INDEXES

Definition at line 23 of file dllmain.c.

Referenced by DllMain().

◆ WsDllHandle

HINSTANCE WsDllHandle

Definition at line 22 of file dllmain.c.

Referenced by DllMain(), and WSAStartup().

◆ WsSockHeap