WindowsXP-SP1/termsrv/cdmodem/inc/rasapip.h
2020-09-30 16:53:49 +02:00

258 lines
4.8 KiB
C

/*++
Copyright (C) 1994-98 Microsft Corporation. All rights reserved.
Module Name:
rasapip.h
Abstract:
This file has definitions for private apis for ras connections.
These apis are exported from rasapi32.dll
Author:
Rao Salapaka (raos) 30-Jan-1998
Revision History:
--*/
#ifndef _RASAPIP_
#define _RASAPIP_
#include <windef.h> //for MAX_PATH
#ifdef __cplusplus
extern "C" {
#endif
#define RASAPIP_MAX_DEVICE_NAME 128
#define RASAPIP_MAX_ENTRY_NAME 256
#define RAS_DEVICE_TYPE(_x) ((_x) & 0x0000FFFF)
#define RAS_DEVICE_CLASS(_x) ((_x) & 0xFFFF0000)
enum _RASDEVICETYPE
{
RDT_Modem = 0,
RDT_X25,
RDT_Isdn,
RDT_Serial,
RDT_FrameRelay,
RDT_Atm,
RDT_Sonet,
RDT_Sw56,
RDT_Tunnel_Pptp,
RDT_Tunnel_L2tp,
RDT_Irda,
RDT_Parallel,
RDT_Other,
//
// The following flags when set
// specify the class of the device
//
RDT_Tunnel = 0x00010000,
RDT_Direct = 0x00020000,
RDT_Null_Modem = 0x000040000
};
typedef enum _RASDEVICETYPE RASDEVICETYPE;
typedef struct _RASENUMENTRYDETAILS
{
DWORD dwSize;
DWORD dwFlags; // same as RASENTRYNAME.dwFlags
DWORD dwType; // same as RASENTRY.dwType
GUID guidId; // same as RASENTRY.guidId
BOOL fShowMonitorIconInTaskBar; // same as RASENTRY.fShowMonitorIconInTaskBar
RASDEVICETYPE rdt;
WCHAR szDeviceName[RASAPIP_MAX_DEVICE_NAME];
WCHAR szEntryName[RASAPIP_MAX_ENTRY_NAME + 1];
WCHAR szPhonebookPath[MAX_PATH + 1];
} RASENUMENTRYDETAILS, *LPRASENUMENTRYDETAILS;
DWORD
APIENTRY
DwEnumEntryDetails (
IN LPCWSTR lpszPhonebookPath,
OUT LPRASENUMENTRYDETAILS lprasentryname,
IN OUT LPDWORD lpcb,
OUT LPDWORD lpcEntries
);
DWORD
DwCloneEntry(
IN LPCWSTR lpwszPhonebookPath,
IN LPCWSTR lpwszSrcEntryName,
IN LPCWSTR lpwszDstEntryName
);
// Implemented in rasman.dll
//
DWORD
APIENTRY
RasReferenceRasman (
IN BOOL fAttach
);
// Implemented in netcfgx.dll
//
HRESULT
WINAPI
RasAddBindings (
IN OUT UINT* pcIpOut,
IN OUT UINT* pcNbfIn,
IN OUT UINT* pcNbfOut);
HRESULT
WINAPI
RasCountBindings (
OUT UINT* pcIpOut,
OUT UINT* pcNbfIn,
OUT UINT* pcNbfOut);
HRESULT
WINAPI
RasRemoveBindings (
IN OUT UINT* pcIpOutBindings,
IN const GUID* pguidIpOutBindings,
IN OUT UINT* pcNbfIn,
IN OUT UINT* pcNbfOut);
typedef struct _RASCONFIGENDPOINTS
{
DWORD dwSize;
DWORD dwFlags;
INT cTotalEndpoints;
INT cLimitSimultaneousIncomingCalls;
INT cLimitSimultaneousOutgoingCalls;
} RASCONFIGENDPOINTS;
HRESULT
APIENTRY
RasConfigureEndpoints (
IN OUT RASCONFIGENDPOINTS* pInfo
);
//+---------------------------------------------------------------------------
// RAS Event notifications into netman.
//
typedef enum _RASEVENTTYPE
{
ENTRY_ADDED,
ENTRY_DELETED,
ENTRY_MODIFIED,
ENTRY_RENAMED,
ENTRY_CONNECTED,
ENTRY_CONNECTING,
ENTRY_DISCONNECTING,
ENTRY_DISCONNECTED,
INCOMING_CONNECTED,
INCOMING_DISCONNECTED,
SERVICE_EVENT,
} RASEVENTTYPE;
typedef enum _SERVICEEVENTTYPE
{
RAS_SERVICE_STARTED,
RAS_SERVICE_STOPPED,
} SERVICEEVENTTYPE;
typedef enum _RASSERVICE
{
RASMAN,
RASAUTO,
REMOTEACCESS,
} RASSERVICE;
typedef struct _RASEVENT
{
RASEVENTTYPE Type;
union
{
// ENTRY_ADDED,
// ENTRY_MODIFIED,
struct
{
RASENUMENTRYDETAILS Details;
};
// ENTRY_DELETED,
// ENTRY_CONNECTED,
// ENTRY_CONNECTING,
// ENTRY_DISCONNECTING,
// ENTRY_DISCONNECTED,
// INCOMING_CONNECTED,
// INCOMING_DISCONNECTED,
// guidId is valid
// ENTRY_RENAMED,
struct
{
GUID guidId;
WCHAR pszwNewName [RASAPIP_MAX_ENTRY_NAME + 1];
};
// SERVICE_EVENT,
struct
{
SERVICEEVENTTYPE Event;
RASSERVICE Service;
};
};
} RASEVENT;
typedef struct _RASENTRYHEADER
{
DWORD dwEntryType;
WCHAR szEntryName[RASAPIP_MAX_ENTRY_NAME + 1];
} RASENTRYHEADER, *PRASENTRYHEADER;
// Implemented in netman.dll
//
typedef VOID (APIENTRY *RASEVENTNOTIFYPROC)(const RASEVENT* pEvent);
VOID
APIENTRY
RasEventNotify (
const RASEVENT* pEvent);
DWORD
DwEnumEntriesForAllUsers(
DWORD *lpcb,
DWORD *lpcEntries,
RASENTRYHEADER * pRasEntryHeader);
#ifdef __cplusplus
}
#endif
#endif // _RASAPIP_