Rassapi.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:10k
- /*++
- Copyright (c) Microsoft Corporation. All rights reserved.
- Module Name:
- rassapi.h
- Description:
- This file contains the RASADMIN structures, defines and
- function prototypes for the following APIs and they can
- be imported from RASSAPI.DLL:
- RasAdminServerGetInfo
- RasAdminGetUserAccountServer
- RasAdminUserSetInfo
- RasAdminUserGetInfo
- RasAdminPortEnum
- RasAdminPortGetInfo
- RasAdminPortClearStatistics
- RasAdminPortDisconnect
- RasAdminFreeBuffer
- Note:
- This header file and the sources containing the APIs will work
- only with UNICODE strings.
- --*/
- #ifndef _RASSAPI_H_
- #define _RASSAPI_H_
- #if _MSC_VER > 1000
- #pragma once
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #ifndef UNLEN
- #include <lmcons.h>
- #endif
- #define RASSAPI_MAX_PHONENUMBER_SIZE 128
- #define RASSAPI_MAX_MEDIA_NAME 16
- #define RASSAPI_MAX_PORT_NAME 16
- #define RASSAPI_MAX_DEVICE_NAME 128
- #define RASSAPI_MAX_DEVICETYPE_NAME 16
- #define RASSAPI_MAX_PARAM_KEY_SIZE 32
- // Bits indicating user's Remote Access privileges and mask to isolate
- // call back privilege.
- //
- // Note: Bit 0 MUST represent NoCallback due to a quirk of the "userparms"
- // storage method. When a new LAN Manager user is created, bit 0 of the
- // userparms field is set to 1 and all other bits are 0. These bits are
- // arranged so this "no Dial-In info" state maps to the "default Dial-In
- // privilege" state.
- #define RASPRIV_NoCallback 0x01
- #define RASPRIV_AdminSetCallback 0x02
- #define RASPRIV_CallerSetCallback 0x04
- #define RASPRIV_DialinPrivilege 0x08
- #define RASPRIV_CallbackType (RASPRIV_AdminSetCallback
- | RASPRIV_CallerSetCallback
- | RASPRIV_NoCallback)
- //
- // Modem condition codes
- //
- #define RAS_MODEM_OPERATIONAL 1 // No modem errors.
- #define RAS_MODEM_NOT_RESPONDING 2
- #define RAS_MODEM_HARDWARE_FAILURE 3
- #define RAS_MODEM_INCORRECT_RESPONSE 4
- #define RAS_MODEM_UNKNOWN 5
- //
- // Line condition codes
- //
- #define RAS_PORT_NON_OPERATIONAL 1
- #define RAS_PORT_DISCONNECTED 2
- #define RAS_PORT_CALLING_BACK 3
- #define RAS_PORT_LISTENING 4
- #define RAS_PORT_AUTHENTICATING 5
- #define RAS_PORT_AUTHENTICATED 6
- #define RAS_PORT_INITIALIZING 7
- // The following three structures are same as the ones
- // defined in rasman.h and have been renamed to prevent
- // redefinitions when both header files are included.
- enum RAS_PARAMS_FORMAT {
- ParamNumber = 0,
- ParamString = 1
- } ;
- typedef enum RAS_PARAMS_FORMAT RAS_PARAMS_FORMAT ;
- union RAS_PARAMS_VALUE {
- DWORD Number ;
- struct {
- DWORD Length ;
- PCHAR Data ;
- } String ;
- } ;
- typedef union RAS_PARAMS_VALUE RAS_PARAMS_VALUE ;
- struct RAS_PARAMETERS {
- CHAR P_Key [RASSAPI_MAX_PARAM_KEY_SIZE] ;
- RAS_PARAMS_FORMAT P_Type ;
- BYTE P_Attributes ;
- RAS_PARAMS_VALUE P_Value ;
- } ;
- typedef struct RAS_PARAMETERS RAS_PARAMETERS ;
- // structures used by the RASADMIN APIs
- typedef struct _RAS_USER_0
- {
- BYTE bfPrivilege;
- WCHAR szPhoneNumber[ RASSAPI_MAX_PHONENUMBER_SIZE + 1];
- } RAS_USER_0, *PRAS_USER_0;
- typedef struct _RAS_PORT_0
- {
- WCHAR wszPortName[RASSAPI_MAX_PORT_NAME];
- WCHAR wszDeviceType[RASSAPI_MAX_DEVICETYPE_NAME];
- WCHAR wszDeviceName[RASSAPI_MAX_DEVICE_NAME];
- WCHAR wszMediaName[RASSAPI_MAX_MEDIA_NAME];
- DWORD reserved;
- DWORD Flags;
- WCHAR wszUserName[UNLEN + 1];
- WCHAR wszComputer[NETBIOS_NAME_LEN];
- DWORD dwStartSessionTime; // seconds from 1/1/1970
- WCHAR wszLogonDomain[DNLEN + 1];
- BOOL fAdvancedServer;
- } RAS_PORT_0, *PRAS_PORT_0;
- // Possible values for MediaId
- #define MEDIA_UNKNOWN 0
- #define MEDIA_SERIAL 1
- #define MEDIA_RAS10_SERIAL 2
- #define MEDIA_X25 3
- #define MEDIA_ISDN 4
- // Possible bits set in Flags field
- #define USER_AUTHENTICATED 0x0001
- #define MESSENGER_PRESENT 0x0002
- #define PPP_CLIENT 0x0004
- #define GATEWAY_ACTIVE 0x0008
- #define REMOTE_LISTEN 0x0010
- #define PORT_MULTILINKED 0x0020
- typedef ULONG IPADDR;
- // The following PPP structures are same as the ones
- // defined in rasppp.h and have been renamed to prevent
- // redefinitions when both header files are included
- // in a module.
- /* Maximum length of address string, e.g. "255.255.255.255" for IP.
- */
- #define RAS_IPADDRESSLEN 15
- #define RAS_IPXADDRESSLEN 22
- #define RAS_ATADDRESSLEN 32
- typedef struct _RAS_PPP_NBFCP_RESULT
- {
- DWORD dwError;
- DWORD dwNetBiosError;
- CHAR szName[ NETBIOS_NAME_LEN + 1 ];
- WCHAR wszWksta[ NETBIOS_NAME_LEN + 1 ];
- } RAS_PPP_NBFCP_RESULT;
- typedef struct _RAS_PPP_IPCP_RESULT
- {
- DWORD dwError;
- WCHAR wszAddress[ RAS_IPADDRESSLEN + 1 ];
- } RAS_PPP_IPCP_RESULT;
- typedef struct _RAS_PPP_IPXCP_RESULT
- {
- DWORD dwError;
- WCHAR wszAddress[ RAS_IPXADDRESSLEN + 1 ];
- } RAS_PPP_IPXCP_RESULT;
- typedef struct _RAS_PPP_ATCP_RESULT
- {
- DWORD dwError;
- WCHAR wszAddress[ RAS_ATADDRESSLEN + 1 ];
- } RAS_PPP_ATCP_RESULT;
- typedef struct _RAS_PPP_PROJECTION_RESULT
- {
- RAS_PPP_NBFCP_RESULT nbf;
- RAS_PPP_IPCP_RESULT ip;
- RAS_PPP_IPXCP_RESULT ipx;
- RAS_PPP_ATCP_RESULT at;
- } RAS_PPP_PROJECTION_RESULT;
- typedef struct _RAS_PORT_1
- {
- RAS_PORT_0 rasport0;
- DWORD LineCondition;
- DWORD HardwareCondition;
- DWORD LineSpeed; // in bits/second
- WORD NumStatistics;
- WORD NumMediaParms;
- DWORD SizeMediaParms;
- RAS_PPP_PROJECTION_RESULT ProjResult;
- } RAS_PORT_1, *PRAS_PORT_1;
- typedef struct _RAS_PORT_STATISTICS
- {
- // The connection statistics are followed by port statistics
- // A connection is across multiple ports.
- DWORD dwBytesXmited;
- DWORD dwBytesRcved;
- DWORD dwFramesXmited;
- DWORD dwFramesRcved;
- DWORD dwCrcErr;
- DWORD dwTimeoutErr;
- DWORD dwAlignmentErr;
- DWORD dwHardwareOverrunErr;
- DWORD dwFramingErr;
- DWORD dwBufferOverrunErr;
- DWORD dwBytesXmitedUncompressed;
- DWORD dwBytesRcvedUncompressed;
- DWORD dwBytesXmitedCompressed;
- DWORD dwBytesRcvedCompressed;
- // the following are the port statistics
- DWORD dwPortBytesXmited;
- DWORD dwPortBytesRcved;
- DWORD dwPortFramesXmited;
- DWORD dwPortFramesRcved;
- DWORD dwPortCrcErr;
- DWORD dwPortTimeoutErr;
- DWORD dwPortAlignmentErr;
- DWORD dwPortHardwareOverrunErr;
- DWORD dwPortFramingErr;
- DWORD dwPortBufferOverrunErr;
- DWORD dwPortBytesXmitedUncompressed;
- DWORD dwPortBytesRcvedUncompressed;
- DWORD dwPortBytesXmitedCompressed;
- DWORD dwPortBytesRcvedCompressed;
- } RAS_PORT_STATISTICS, *PRAS_PORT_STATISTICS;
- //
- // Server version numbers
- //
- #define RASDOWNLEVEL 10 // identifies a LM RAS 1.0 server
- #define RASADMIN_35 35 // Identifies a NT RAS 3.5 server or client
- #define RASADMIN_CURRENT 40 // Identifies a NT RAS 4.0 server or client
- typedef struct _RAS_SERVER_0
- {
- WORD TotalPorts; // Total ports configured on the server
- WORD PortsInUse; // Ports currently in use by remote clients
- DWORD RasVersion; // version of RAS server
- } RAS_SERVER_0, *PRAS_SERVER_0;
- //
- // function prototypes
- //
- DWORD APIENTRY RasAdminServerGetInfo(
- IN const WCHAR * lpszServer,
- OUT PRAS_SERVER_0 pRasServer0
- );
- DWORD APIENTRY RasAdminGetUserAccountServer(
- IN const WCHAR * lpszDomain,
- IN const WCHAR * lpszServer,
- OUT LPWSTR lpszUserAccountServer
- );
- DWORD APIENTRY RasAdminUserGetInfo(
- IN const WCHAR * lpszUserAccountServer,
- IN const WCHAR * lpszUser,
- OUT PRAS_USER_0 pRasUser0
- );
- DWORD APIENTRY RasAdminUserSetInfo(
- IN const WCHAR * lpszUserAccountServer,
- IN const WCHAR * lpszUser,
- IN const PRAS_USER_0 pRasUser0
- );
- DWORD APIENTRY RasAdminPortEnum(
- IN const WCHAR * lpszServer,
- OUT PRAS_PORT_0 * ppRasPort0,
- OUT WORD * pcEntriesRead
- );
- DWORD APIENTRY RasAdminPortGetInfo(
- IN const WCHAR * lpszServer,
- IN const WCHAR * lpszPort,
- OUT RAS_PORT_1 * pRasPort1,
- OUT RAS_PORT_STATISTICS * pRasStats,
- OUT RAS_PARAMETERS ** ppRasParams
- );
- DWORD APIENTRY RasAdminPortClearStatistics(
- IN const WCHAR * lpszServer,
- IN const WCHAR * lpszPort
- );
- DWORD APIENTRY RasAdminPortDisconnect(
- IN const WCHAR * lpszServer,
- IN const WCHAR * lpszPort
- );
- DWORD APIENTRY RasAdminFreeBuffer(
- PVOID Pointer
- );
- DWORD APIENTRY RasAdminGetErrorString(
- IN UINT ResourceId,
- OUT WCHAR * lpszString,
- IN DWORD InBufSize );
- BOOL APIENTRY RasAdminAcceptNewConnection (
- IN RAS_PORT_1 * pRasPort1,
- IN RAS_PORT_STATISTICS * pRasStats,
- IN RAS_PARAMETERS * pRasParams
- );
- VOID APIENTRY RasAdminConnectionHangupNotification (
- IN RAS_PORT_1 * pRasPort1,
- IN RAS_PORT_STATISTICS * pRasStats,
- IN RAS_PARAMETERS * pRasParams
- );
- DWORD APIENTRY RasAdminGetIpAddressForUser (
- IN WCHAR * lpszUserName,
- IN WCHAR * lpszPortName,
- IN OUT IPADDR * pipAddress,
- OUT BOOL * bNotifyRelease
- );
- VOID APIENTRY RasAdminReleaseIpAddress (
- IN WCHAR * lpszUserName,
- IN WCHAR * lpszPortName,
- IN IPADDR * pipAddress
- );
- // The following two APIs are used to get/set
- // RAS user permissions in to a UsrParms buffer
- // obtained by a call to NetUserGetInfo.
- //
- // Note that RasAdminUserGetInfo and RasAdminUserSetInfo
- // are the APIs you should be using for getting and
- // setting RAS permissions.
- DWORD APIENTRY RasAdminGetUserParms(
- IN WCHAR * lpszParms,
- OUT PRAS_USER_0 pRasUser0
- );
- DWORD APIENTRY RasAdminSetUserParms(
- IN OUT WCHAR * lpszParms,
- IN DWORD cchNewParms,
- IN PRAS_USER_0 pRasUser0
- );
- #ifdef __cplusplus
- }
- #endif
- #endif // _RASSAPI_H_