home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
vc98
/
include
/
rasauth.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-04-25
|
8KB
|
191 lines
/********************************************************************/
/** Copyright(c) 1997 Microsoft Corporation. **/
/********************************************************************/
//***
//
// Filename: RASAUTH.H
//
// Description: Contains definitions to allow for third parties to plug in
// back-end authenticaion modules into Remote Access Service.
//
#ifndef _RASAUTH_
#define _RASAUTH_
#ifdef __cplusplus
extern "C" {
#endif
typedef enum _RAS_AUTH_ATTRIBUTE_TYPE_
{
raatMinimum = 0, // Undefined
raatUserName, // Value field is a Pointer
raatUserPassword, // Value field is a Pointer
raatMD5CHAPPassword, // Value field is a Pointer
raatNASIPAddress, // Value field is a 32 bit integral value
raatNASPort, // Value field is a 32 bit integral value
raatServiceType, // Value field is a 32 bit integral value
raatFramedProtocol, // Value field is a 32 bit integral value
raatFramedIPAddress, // Value field is a 32 bit integral value
raatFramedIPNetmask, // Value field is a 32 bit integral value
raatFramedRouting, // Value field is a 32 bit integral value
raatFilterId, // Value field is a Pointer
raatFramedMTU, // Value field is a 32 bit integral value
raatFramedCompression, // Value field is a 32 bit integral value
raatLoginIPHost, // Value field is a 32 bit integral value
raatLoginService, // Value field is a 32 bit integral value
raatLoginTCPPort, // Value field is a 32 bit integral value
raatUnassigned1, // Undefined
raatReplyMessage, // Value field is a Pointer
raatCallbackNumber, // Value field is a Pointer
raatCallbackId, // Value field is a Pointer
raatUnassigned2, // Undefined
raatFramedRoute, // Value field is a Pointer
raatFramedIPXNetwork, // Value field is a 32 bit integral value
raatState, // Value field is a Pointer
raatClass, // Value field is a Pointer
raatVendorSpecific, // Value field is a Pointer
raatSessionTimeout, // Value field is a 32 bit integral value
raatIdleTimeout, // Value field is a 32 bit integral value
raatTerminationAction, // Value field is a 32 bit integral value
raatCalledStationId, // Value field is a Pointer
raatCallingStationId, // Value field is a Pointer
raatNASIdentifier, // Value field is a Pointer
raatProxyState, // Value field is a Pointer
raatLoginLATService, // Value field is a Pointer
raatLoginLATNode, // Value field is a Pointer
raatLoginLATGroup, // Value field is a Pointer
raatFramedAppleTalkLink, // Value field is a 32 bit integral value
raatFramedAppleTalkNetwork, // Value field is a 32 bit integral value
raatFramedAppleTalkZone, // Value field is a Pointer
raatAcctStatusType, // Value field is a 32 bit integral value
raatAcctDelayType, // Value field is a 32 bit integral value
raatAcctInputOctets, // Value field is a 32 bit integral value
raatAcctOutputOctets, // Value field is a 32 bit integral value
raatAcctSessionId, // Value field is a Pointer
raatAcctAuthentic, // Value field is a 32 bit integral value
raatAcctSessionTime, // Value field is a 32 bit integral value
raatAcctInputPackets, // Value field is a 32 bit integral value
raatAcctOutputPackets, // Value field is a 32 bit integral value
raatAcctTerminateCause, // Value field is a 32 bit integral value
raatAcctMultiSessionId, // Value field is a Pointer
raatAcctLinkCount, // Value field is a 32 bit integral value
raatMD5CHAPChallenge = 60, // Value field is a Pointer
raatNASPortType, // Value field is a 32 bit integral value
raatPortLimit, // Value field is a 32 bit integral value
raatLoginLATPort, // Value field is a Pointer
raatPrompt, // Value field is a 32 bit integral value
raatConnectInfo, // Value field is a Pointer
raatSignature, // Value field is a Pointer
raatEAPMessage, // Value field is a Pointer
raatConfigurationToken, // Value field is a Pointer
raatPasswordRetry, // Value field is a 32 bit integral value
raatARAPPassword, // Value field is a Pointer
raatARAPFeatures, // Value field is a Pointer
raatARAPZoneAccess, // Value field is a 32 bit integral value
raatARAPSecurity, // Value field is a 32 bit integral value
raatARAPSecurityData, // Value field is a Pointer
raatReserved = (0xFFFFFFFF) // Undefined
}RAS_AUTH_ATTRIBUTE_TYPE;
//
// Value is set to the 32 bit integral value or a pointer to data.
// 32 bit integral values should be in host format, not network format.
// Length for a 32 bit integral value can be 1, 2 or 4. The array of
// attributes must be terminated with an attribute of type raatMinimum.
//
typedef struct _RAS_AUTH_ATTRIBUTE
{
RAS_AUTH_ATTRIBUTE_TYPE raaType;
DWORD dwLength;
PVOID Value;
}RAS_AUTH_ATTRIBUTE, *PRAS_AUTH_ATTRIBUTE;
//
// The following APIs (except for RasStartAccounting and RasStopAccounting)
// must be exported by the back-end authentication DLL
//
//
// Called from setup application to allow backend package to bring up UI to
// configure itself.
//
VOID APIENTRY
RasAuthSetup(
VOID
);
DWORD APIENTRY
RasAuthConfigChangeNotification(
VOID
);
//
// Called once before any other calls are made.
//
DWORD APIENTRY
RasAuthInitialize(
VOID
);
//
// Called once to deallocate resources etc. No more calls will be made before
// calling RasAuthInitialize again
//
DWORD APIENTRY
RasAuthTerminate(
VOID
);
//
// Called once per multilink connection, not per link.
//
DWORD APIENTRY
RasStartAccounting(
IN RAS_AUTH_ATTRIBUTE * pInAttributes,
OUT PRAS_AUTH_ATTRIBUTE * ppOutAttributes
);
//
// Called once per multilink connection, not per link.
//
DWORD APIENTRY
RasStopAccounting(
IN RAS_AUTH_ATTRIBUTE * pInAttributes,
OUT PRAS_AUTH_ATTRIBUTE * ppOutAttributes
);
//
// Called to authenticate a dialed in user.
//
DWORD APIENTRY
RasAuthenticateUser(
IN RAS_AUTH_ATTRIBUTE * pInAttributes,
OUT PRAS_AUTH_ATTRIBUTE * ppOutAttributes,
OUT DWORD * lpdwResultCode
);
//
// Called to free attributes allocated by the back-end module
//
DWORD APIENTRY
RasFreeAttributes(
IN RAS_AUTH_ATTRIBUTE * pAttributes
);
#ifdef __cplusplus
}
#endif
#endif