|
|
/* Copyright (c) 1992-1995, Microsoft Corporation, all rights reserved
** ** ras.h ** Remote Access Session Management Service Provider Interface ** Public header for Session Management Provider Interface */
#ifndef _RNASPI_H_
#define _RNASPI_H_
//****************************************************************************
// RNA Session Management Module Service Provider Interface
//****************************************************************************
#define RNA_MaxSMMType 32
// The type of RNA session
//
typedef enum { SESSTYPE_INITIATOR, SESSTYPE_RESPONDER } SESSTYPE;
// Session configuration options
//
#define SMMCFG_SW_COMPRESSION 0x00000001 // Software compression is on
#define SMMCFG_PW_ENCRYPTED 0x00000002 // Encrypted password only
#define SMMCFG_NW_LOGON 0x00000004 // Logon to the network
#define SMMCFG_SW_ENCRYPTION 0x00000010 // SW encryption is okay
#define SMMCFG_ALL 0x00000017 // All the user-specified options
// Negotiated protocols
//
#define SMMPROT_NB 0x00000001 // NetBEUI
#define SMMPROT_IPX 0x00000002 // IPX
#define SMMPROT_IP 0x00000004 // TCP/IP
#define SMMPROT_ALL 0x00000007 // all protocols negotiated
// Error codes that a MAC can return when posting disconnect message
//
#define MACERR_REMOTE_DISCONNECTING 0x00000001
#define MACERR_REMOTE_NO_RESPONSE 0x00000002
// The session confuration information
//
typedef struct tagSESS_CONFIGURATION_INFO { DWORD dwSize; char szEntryName[RAS_MaxEntryName + 1]; SESSTYPE stSessType; DWORD fdwSessOption; DWORD fdwProtocols; BOOL fUserSecurity; char szUserName[UNLEN + 1]; char szPassword[PWLEN + 1]; char szDomainName[DNLEN + 1]; } SESS_CONFIGURATION_INFO, *PSESS_CONFIGURATION_INFO, FAR *LPSESS_CONFIGURATION_INFO;
// Session configuration start/stop functions
//
typedef DWORD (WINAPI * SESSSTARTPROC)(HANDLE, LPSESS_CONFIGURATION_INFO); typedef DWORD (WINAPI * SESSSTOPPROC)(HANDLE);
// Session configuration entry point table
//
typedef struct tagRNA_FUNCS { DWORD dwSize; // The structure size
SESSSTARTPROC lpfnStart; // RnaSessStart Entry
SESSSTOPPROC lpfnStop; // RnaSessStop Entry
} RNA_FUNCS, *PRNA_FUNCS, FAR *LPRNA_FUNCS;
// Session Management Module initialization function
//
typedef DWORD (WINAPI * SESSINITIALIZEPROC)(LPSTR, LPRNA_FUNCS);
//****************************************************************************
// RNA Session Manager Service Interface
//****************************************************************************
typedef struct tagRnaComplete_Info { DWORD dwSize; // The structure size
DWORD dwResult; // The returning error code
UINT idMsg; // SMM-specific error message ID
BOOL fUnload; // Unload the module on success?
HANDLE hThread; // Event to wait for unloading
} COMPLETE_INFO, *PCOMPLETE_INFO, FAR *LPCOMPLETE_INFO;
typedef struct tagProjection_Info { DWORD dwSize; // The structure size
RASPROJECTION RasProjection; // The projection type
union { RASAMB RasAMB; RASPPPNBF RasPPPNBF; RASPPPIPX RasPPPIPX; RASPPPIP RasPPPIP; } ProjInfo; } PROJECTION_INFO, *PPROJECTION_INFO, FAR *LPPROJECTION_INFO;
//
// Responses to Session Management Request
//
DWORD WINAPI RnaComplete( HANDLE hConn, LPCOMPLETE_INFO lpci, LPPROJECTION_INFO lppi, DWORD cEntries); DWORD WINAPI RnaTerminate( HANDLE hConn, HANDLE hThread );
//
// MAC management services
//
#define IEEE_ADDRESS_LENGTH 6 // Token-ring and Ethernet address lengths
typedef struct tagMAC_FEATURES { DWORD SendFeatureBits; // A bit field of compression/features sendable
DWORD RecvFeatureBits; // A bit field of compression/features receivable
DWORD MaxSendFrameSize; // Maximum frame size that can be sent
// must be less than or equal default
DWORD MaxRecvFrameSize; // Maximum frame size that can be rcvd
// must be less than or equal default
DWORD LinkSpeed; // New RAW link speed in bits/sec
// Ignored if 0
} MAC_FEATURES, *PMAC_FEATURES, FAR* LPMAC_FEATURES;
#ifdef _WIN64
#pragma pack(8)
#else
#pragma pack(4)
#endif
typedef struct tagMAC_OPEN { WORD hRasEndpoint; // unique for each endpoint assigned
LPVOID MacAdapter; // Which binding to AsyMac to use
// if NULL, will default to last binding
DWORD LinkSpeed; // RAW link speed in bits per sec
WORD QualOfConnect; // NdisAsyncRaw, NdisAsyncErrorControl, ...
BYTE IEEEAddress[IEEE_ADDRESS_LENGTH]; // The 802.5 or 802.3
MAC_FEATURES macFeatures; // Readable configuration parameters
enum { // All different types of device drivers
SERIAL_DEVICE, // are listed here. For instance
SNA_DEVICE, // the serial driver requires diff.
// irps than the SNA driver.
MINIPORT_DEVICE // NDIS WAN Miniport Devices.
} DeviceType;
union { // handles required for above device
// driver types.
LONG FileHandle; // the Win32 or Nt File Handle
struct SNAHandle { LPVOID ReadHandle; LPVOID WriteHandle; }; } Handles;
DWORD hWndConn; // Window handle for connection
DWORD wMsg; // The msg to post when disconnecting
DWORD dwStatus; // The status of the open call
} MAC_OPEN, *PMAC_OPEN, FAR* LPMAC_OPEN; #pragma pack()
typedef struct tagDEVICE_PORT_INFO { DWORD dwSize; HANDLE hDevicePort; HANDLE hLine; HANDLE hCall; DWORD dwAddressID; DWORD dwLinkSpeed; char szDeviceClass[RAS_MaxDeviceType+1]; } DEVICE_PORT_INFO, *PDEVICE_PORT_INFO, FAR* LPDEVICE_PORT_INFO;
DWORD WINAPI RnaGetDevicePort( HANDLE hConn, LPDEVICE_PORT_INFO lpdpi ); DWORD WINAPI RnaOpenMac( HANDLE hConn, HANDLE *lphMAC, LPMAC_OPEN lpmo, DWORD dwSize, HANDLE hEvent ); DWORD WINAPI RnaCloseMac( HANDLE hConn );
//
// User Profile Services
//
typedef enum tagRNAACCESSTYPE { PCONLY, NETANDPC } RNAACCESSTYPE;
typedef struct tagUSER_PROFILE { DWORD dwSize; char szUserName[UNLEN + 1]; char szPassword[PWLEN + 1]; char szDomainName[DNLEN + 1]; BOOL fUseCallbacks; RNAACCESSTYPE accesstype; UINT uTimeOut; } USER_PROFILE, *PUSER_PROFILE, FAR *LPUSER_PROFILE;
DWORD WINAPI RnaGetUserProfile( HANDLE hConn, LPUSER_PROFILE lpUserProfile );
//
// Callback security services
//
// Callback security type
//
enum { CALLBACK_SECURE, CALLBACK_CONVENIENCE };
DWORD WINAPI RnaGetCallbackList( DWORD * lpdwType, LPSTR lpszLocList, LPINT lpcbLoc, LPSTR lpszPhoneList, LPINT lpcbPhone, LPINT lpcEntries); DWORD WINAPI RnaUICallbackDialog( HANDLE hConn, LPSTR lpszLocList, DWORD dwType, BOOL fOptional, LPINT lpIndex, LPSTR lpszSelectLocation, UINT cbBuff); DWORD WINAPI RnaStartCallback( HANDLE hConn, HANDLE hEvent);
// Miscellaneous services
//
DWORD WINAPI RnaUIUsernamePassword( HANDLE hConn, LPSTR lpszUsername, UINT cbUsername, LPSTR lpszPassword, UINT cbPassword, LPSTR lpszDomain, UINT cbDomain); DWORD WINAPI RnaUIChangePassword( HANDLE hConn, LPSTR lpszUsername, UINT cbPassword); DWORD WINAPI RnaGetOverlaidSMM ( LPSTR lpszSMMType, LPSTR lpszModuleName, LPBYTE lpBuf, DWORD dwSize);
#endif // _RNASPI_H_
|