mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
2.1 KiB
134 lines
2.1 KiB
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
globals.c
|
|
|
|
Abstract:
|
|
|
|
This module contains global variable definitions for the Winsock 2
|
|
to Winsock 1.1 Mapper Service Provider.
|
|
|
|
Author:
|
|
|
|
Keith Moore (keithmo) 29-May-1996
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
#include "precomp.h"
|
|
#pragma hdrstop
|
|
|
|
|
|
//
|
|
// This DLL's module handle. We need this to add an artificial reference
|
|
// to the DLL so that it doesn't go away while a worker thread is running.
|
|
//
|
|
|
|
HMODULE SockModuleHandle = NULL;
|
|
|
|
|
|
//
|
|
// Linked list of all sockets created by this provider.
|
|
//
|
|
|
|
LIST_ENTRY SockGlobalSocketListHead = { NULL };
|
|
|
|
|
|
//
|
|
// Critical section protecting global variables.
|
|
//
|
|
|
|
SOCK_CRITICAL_SECTION SockGlobalLock = { NULL };
|
|
|
|
|
|
//
|
|
// TLS slot for per-thread data.
|
|
//
|
|
|
|
DWORD SockTlsSlot = TLS_OUT_OF_INDEXES;
|
|
|
|
|
|
//
|
|
// Flags so we know when we're shutting down.
|
|
//
|
|
|
|
BOOL SockProcessTerminating = FALSE;
|
|
BOOL SockTerminating = FALSE;
|
|
|
|
|
|
//
|
|
// A count of the number of times the client has called WSPStartup().
|
|
//
|
|
|
|
LONG SockWspStartupCount = 0;
|
|
|
|
|
|
//
|
|
// Our procedure table, and WS2_32.DLL's upcall table.
|
|
//
|
|
|
|
WSPPROC_TABLE SockProcTable = {
|
|
|
|
&WSPAccept,
|
|
&WSPAddressToString,
|
|
&WSPAsyncSelect,
|
|
&WSPBind,
|
|
&WSPCancelBlockingCall,
|
|
&WSPCleanup,
|
|
&WSPCloseSocket,
|
|
&WSPConnect,
|
|
&WSPDuplicateSocket,
|
|
&WSPEnumNetworkEvents,
|
|
&WSPEventSelect,
|
|
&WSPGetOverlappedResult,
|
|
&WSPGetPeerName,
|
|
&WSPGetSockName,
|
|
&WSPGetSockOpt,
|
|
&WSPGetQOSByName,
|
|
&WSPIoctl,
|
|
&WSPJoinLeaf,
|
|
&WSPListen,
|
|
&WSPRecv,
|
|
&WSPRecvDisconnect,
|
|
&WSPRecvFrom,
|
|
&WSPSelect,
|
|
&WSPSend,
|
|
&WSPSendDisconnect,
|
|
&WSPSendTo,
|
|
&WSPSetSockOpt,
|
|
&WSPShutdown,
|
|
&WSPSocket,
|
|
&WSPStringToAddress
|
|
|
|
};
|
|
|
|
WSPUPCALLTABLE SockUpcallTable = { NULL };
|
|
|
|
|
|
//
|
|
// Hooker management.
|
|
//
|
|
|
|
LIST_ENTRY SockHookerListHead = { NULL };
|
|
HKEY SockHookerRegistryKey = NULL;
|
|
|
|
|
|
//
|
|
// Debug-specific data.
|
|
//
|
|
|
|
#if DBG
|
|
|
|
//
|
|
// Flags controlling debug output.
|
|
//
|
|
|
|
ULONG SockDebugFlags = 0;
|
|
|
|
#endif // DBG
|
|
|