windows-nt/Source/XPSP1/NT/net/rras/cm/common/source/raslink.cpp

103 lines
6 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
//+----------------------------------------------------------------------------
//
// File: raslink.cpp
//
// Module: CMDIAL32.DLL AND CMUTOA.DLL
//
// Synopsis: Declaration of the function name lists that are used for RAS
// linkage.
//
// Copyright (c) 1999 Microsoft Corporation
//
// Author: quintinb Created Header 08/19/99
//
//+----------------------------------------------------------------------------
// The RAS linkage system in CM is somewhat complicated. Unfortunately, RAS is different
// on pretty much every version of the OS we have ever shipped. There are APIs on the NT
// family that don't exist on the Win9x side and vice versa. In order for CM to dynamically
// allocate the correct functions without too much work, we have created the following
// arrays of function names used by LinkToRas. To further complicate matters, we have
// the ANSI versus Unicode problem. Thus you will notice that we have three sets of
// function lists. The c_ArrayOfRasFuncsA is actually used by Cmutoa.dll to load the
// real ANSI RAS functions that it calls after converting the parameters from Unicode to
// ANSI in its UA functions, which is why we have the c_ArrayOfRasFuncsUA list. These
// functions are the wrappers exported by cmutoa.dll that cmdial32.dll links to on Win9x
// instead of the W APIs located in c_ArrayOfRasFuncsW that it uses on NT. Please look
// at LinkToRas in cmdial\ras.cpp and InitCmRasUtoA in uapi\cmutoa.cpp. If you change
// anything here you will probably have to change the structs in raslink.h and probably
// even the code in the two functions above. Changer Beware!
#ifdef _CMUTOA_MODULE
static LPCSTR c_ArrayOfRasFuncsA[] = { "RasDeleteEntryA",
"RasGetEntryPropertiesA",
"RasSetEntryPropertiesA",
"RasGetEntryDialParamsA",
"RasSetEntryDialParamsA",
"RasEnumDevicesA",
"RasDialA",
"RasHangUpA",
"RasGetErrorStringA",
"RasGetConnectStatusA",
"RasSetSubEntryPropertiesA",
"RasDeleteSubEntryA",
NULL, //"RasSetCustomAuthDataA",
NULL, //"RasGetEapUserIdentityA",
NULL, //"RasFreeEapUserIdentityA",
NULL, //"RasInvokeEapUI",
NULL, //"RasGetCredentials",
NULL, //"RasSetCredentials",
NULL
};
#else
static LPCSTR c_ArrayOfRasFuncsUA[] = { "RasDeleteEntryUA",
"RasGetEntryPropertiesUA",
"RasSetEntryPropertiesUA",
"RasGetEntryDialParamsUA",
"RasSetEntryDialParamsUA",
"RasEnumDevicesUA",
"RasDialUA",
"RasHangUpUA",
"RasGetErrorStringUA",
"RasGetConnectStatusUA",
"RasSetSubEntryPropertiesUA",
"RasDeleteSubEntryUA",
NULL, //"RasSetCustomAuthDataUA",
NULL, //"RasGetEapUserIdentityUA",
NULL, //"RasFreeEapUserIdentityUA",
NULL, //"RasInvokeEapUI",
NULL, //"RasGetCredentials",
NULL, //"RasSetCredentials",
NULL
};
static LPCSTR c_ArrayOfRasFuncsW[] = { "RasDeleteEntryW",
"RasGetEntryPropertiesW",
"RasSetEntryPropertiesW",
"RasGetEntryDialParamsW",
"RasSetEntryDialParamsW",
"RasEnumDevicesW",
"RasDialW",
"RasHangUpW",
"RasGetErrorStringW",
"RasGetConnectStatusW",
"RasSetSubEntryPropertiesW",
"RasDeleteSubEntryW",
"RasSetCustomAuthDataW",
"RasGetEapUserIdentityW",
"RasFreeEapUserIdentityW",
"RasInvokeEapUI",
"RasGetCredentialsW",
"RasSetCredentialsW",
NULL
};
#endif
// Regarding DwDeleteSubEntry and RasDeleteSubEntry - NT5 shipped first
// with DwDeleteSubEntry, a private API. Millennium shipped next, by
// which time it looked like this was going to have to be made public,
// so it was prefixed with Ras. NT5.1 made the corresponding name change
// on the NT side, which we handle within LinkToRas (along with all other such
// cases).