|
|
/*****************************************************************************\
* * * rnap.h - Remote Network Access (RNA) private interface * * * * Version 1.00 * * * * Copyright (c) 1992-1993, Microsoft Corp. All rights reserved. * * * ******************************************************************************/
#ifndef _RNAP_H_
#define _RNAP_H_
#define RAS_MaxPortName 128
#define RAS_MaxComment 255
#define RAS_MaxCountry 3
#define RAS_MaxAreaCode 10
#define RAS_MaxLocal 36
#define RAS_MaxExtension 5
#define RAS_MaxSMMDesc 63
#define RAS_MaxProtocolDesc 63
/******************************************************************************
Private RASCONNSTATE ******************************************************************************/
#define RASCS_PrivateStart RASCS_Disconnected+1
#define RASCS_StartClosing RASCS_PrivateStart
#define RASCS_LoggingOff RASCS_PrivateStart+1
#define RASCS_Closing RASCS_PrivateStart+2
#define RASCS_Closed RASCS_PrivateStart+3
#define RASCS_Terminating RASCS_PrivateStart+4
/******************************************************************************
Registry key paths ******************************************************************************/
#define REGSTR_KEY_RNA "RemoteAccess"
#define REGSTR_PATH_RNA REGSTR_PATH_SERVICES"\\"REGSTR_KEY_RNA
#define REGSTR_VAL_IMPLICIT "EnableImplicit"
#define REGSTR_VAL_DIALUI "DialUI"
#define REGSTR_KEY_PROF REGSTR_KEY_RNA"\\Profile"
#define REGSTR_VAL_USER "User"
#define REGSTR_VAL_DOMAIN "Domain"
#define REGSTR_VAL_NUMBER "Number"
#define REGSTR_VAL_SCRIPT "PPPScript"
#define REGSTR_VAL_MODE "Mode"
#define REGSTR_VAL_TERM "Terminal"
#define REGSTR_VAL_AUTODIALDLL "AutodialDllName"
#define REGSTR_VAL_AUTODIALFN "AutodialFcnName"
#define REGSTR_VAL_ML "MultiLink"
/******************************************************************************
Related RNA module names and internal exported ******************************************************************************/
#define RNA_SERVER_MOD_NAME "RNASERV.DLL"
#define CALLER_ACCESS_FUNC_NAME "CallerAccess"
#define RNADLL_MODULE_NAME "RASAPI32.DLL"
#define RNASCRIPT_MODULE_NAME "SMMSCRPT.DLL"
#define RUN_SCRIPT_FUNC_NAME "RunRnaScript"
#define RNAUI_MODULE_NAME "RNAUI.DLL"
#define CREATE_ENTRY_FUNC_NAME "Remote_CreateEntry"
#define EDIT_ENTRY_FUNC_NAME "Remote_EditEntry"
#define NOTIFY_FUNC_NAME "Remote_Notify"
/******************************************************************************
Asynchronous event notification from RNA engine via WM_RASDIALEVENT ******************************************************************************/
#define RNA_ASYNCEVENT 0xFFFFFFFF // wParam value
#define RNA_ADD_DEVICE 0 // A new device was added
#define RNA_DEL_DEVICE 1 // A new device was removed
#define RNA_REINIT_DEVICE 2 // The device needs to be reintied
#define RNA_SHUTDOWN 3 // The engine needs to shutdown
#define RNA_TRANSLATECHANGE 4 // Translate address caps changed
/******************************************************************************
Communication with RNA engine ******************************************************************************/
#define CLIENT_CONNECTION 1 // Client connection
#define SERVER_CONNECTION 2 // Server connection
#define WM_RNAMSG WM_USER+10
#define RL_MINMSG WM_RNAMSG
#define RL_CREATE RL_MINMSG // create a connection
#define RL_TERMINATE RL_MINMSG+1 // terminate the connection
#define RL_CONNECTED RL_MINMSG+2 // a connection is active
#define RL_DISCONNECTED RL_MINMSG+3 // a connection is not active
#define RL_SUPRV RL_MINMSG+4 // initialize supervisor
#define RL_ACTIVATE RL_MINMSG+5 // activate supervisor change
#define RL_REINIT RL_MINMSG+6 // Reinitialize the engine
#define RL_REG_DEVCHG RL_MINMSG+7 // Register device notification
#define RL_GET_COUNT RL_MINMSG+8 // Get the count
#define RL_GW_NOTIFY RL_MINMSG+9 // Gateway callback
/******************************************************************************
Communication with Dial engine ******************************************************************************/
#define DL_MINMSG WM_RNAMSG
#define DL_DIALEVENT DL_MINMSG // continue dial-up sequence
#define DL_DISCONNECTED DL_MINMSG+1 // a connection is not active
#define DL_AUTHENTICATE DL_MINMSG+2 // auth module sent a message
#define DL_CONNECTED DL_MINMSG+3 // a new connection is active
#define DL_CLOSE DL_MINMSG+4 // Terminate the connection window
#define DL_MAC_MSG DL_MINMSG+5 // MAC requests disconnection
#define DL_RECONNECT DL_MINMSG+6 // a connection needs reconnect
#define DL_NOTIFYICON DL_MINMSG+7 // tray icon notification
#define DL_SHOW_STAT DL_MINMSG+8 // display the status dialog
//****************************************************************************
// Communication with gateway manager
//****************************************************************************
#define GW_MINMSG WM_RNAMSG
#define GW_DIALEVENT DL_DIALEVENT // !!WARNING!! shared message
#define GW_CONNECTED GW_MINMSG + 1
#define GW_DISCONNECTED GW_MINMSG + 2
#define GW_LOG GW_MINMSG + 3
#define GW_CLOSE DL_CLOSE // !!WARNING!! shared message
#define GW_MAC_MSG DL_MAC_MSG // MAC requests disconnection
#define MAX_AUTODISCONNECT 60000 // server autodisconnect sec.
//
// Gateway to Supervisor Communication
//
LRESULT WINAPI DialInMessage(HWND, UINT, WPARAM, LPARAM);
/******************************************************************************
Request for services from RNADLL ******************************************************************************/
DWORD WINAPI RnaEngineRequest (UINT uCommand, DWORD dwParam); DWORD WINAPI DialEngineRequest (UINT uCommand, DWORD dwParam1, DWORD dwParam2); DWORD WINAPI SuprvRequest (UINT uCommand, DWORD dwParam1, DWORD dwParam2);
#define RA_MINCMD 0
#define RA_LOAD RA_MINCMD // Notify Rna process is a loader
#define RA_INIT RA_MINCMD+1 // Initialize the rna engine
#define RA_TERMINATE RA_MINCMD+2 // rna engine terminated
#define RA_REG_DEVCHG RA_MINCMD+3 // register dev change notification
#define RA_DEREG_DEVCHG RA_MINCMD+4 // deregister dev change notification
#define RA_REINIT RA_MINCMD+5 // Reinitialize the rna engine
#define RA_ADD_DEVICE RA_MINCMD+6 // Device added
#define RA_DEL_DEVICE RA_MINCMD+7 // Device removed
#define RA_GET_PROP RA_MINCMD+8 // Get property page
#define RA_MAXCMD RA_MINCMD+50
#define GA_MINCMD RA_MAXCMD+1
#define GA_INIT_SUPRV GA_MINCMD // Initialize supervisor
#define GA_ACTIVE_SUPRV GA_MINCMD+1 // Activate supervisor
#define GA_SHUTDOWN RA_MINCMD+2 // Shutdown the system
#define GA_LOG_SUPRV GA_MINCMD+3 // Register log event
#define GA_LOGON_INFO GA_MINCMD+4 // Logon session information
#define GA_DISCONNECT GA_MINCMD+5 // Terminate logon session
#define GA_START_SUPRV GA_MINCMD+6 // Start the host
#define GA_STOP_SUPRV GA_MINCMD+7 // Stop the host
#define GA_DEV_CHANGE GA_MINCMD+8 // A device changed
#define GA_GET_STATS GA_MINCMD+9 // Get the server information
#define GA_COUNT_ACTIVE GA_MINCMD+10 // Count the active connection
#define GA_MAXCMD GA_MINCMD+50
#define DA_MINCMD GA_MAXCMD+1
#define DA_CONNINFO DA_MINCMD // connection information
#define DA_DISCONNECT DA_MINCMD+1 // disconnect an active connection
#define DA_RECONNECT DA_MINCMD+2 // reconnect a dropped connection
#define DA_NEWCONN DA_MINCMD+3 // a new connection is added
#define DA_SHUTDOWN DA_MINCMD+4 // Shutdown the system
#define DA_NEWEVENT DA_MINCMD+5 // Notify a new event
#define DA_COMPASYN DA_MINCMD+6 // Notify a async operation completion
#define DA_DEV_CHANGE DA_MINCMD+7 // A device changed
#define DA_GET_UI_WND DA_MINCMD+8 // Get the UI window
#define DA_SET_WND_POS DA_MINCMD+9 // Set the status window position
#define DA_GETSTATS DL_MINMSG+10 // a connection needs stats
#define DA_GET_CONNSTAT DL_MINMSG+11 // Get current connection status
#define DA_GET_SUBENTRY DL_MINMSG+12 // Get sub-entry information
#define DA_DIAL_SUBENTRY DL_MINMSG+13 // Dial a sub-entry
#define DA_MAXCMD DA_MINCMD+50
typedef struct tagConnInfo { char szEntryName[RAS_MaxEntryName+1]; DWORD dwRate; char szSMMDesc[RAS_MaxSMMDesc+1]; DWORD fdwProtocols; char szDeviceType[RAS_MaxDeviceType+1]; char szDeviceName[RAS_MaxDeviceName+1]; } CONNINFO, *PCONNINFO, FAR* LPCONNINFO;
typedef struct tagMLInfo { BOOL fEnabled; DWORD cSubEntries; } MLINFO, *PMLINFO, FAR* LPMLINFO;
typedef struct tagSubConnInfo { DWORD iSubEntry; MLINFO mli; } SUBCONNINFO, *PSUBCONNINFO, FAR* LPSUBCONNINFO;
#define PARENT_ENTRY_ID 0xFFFFFFFF
// Flags for protocols in fdwProtocols
//
#define PROTOCOL_AMB 0x00000001
#define PROTOCOL_PPPNBF 0x00000002
#define PROTOCOL_PPPIPX 0x00000004
#define PROTOCOL_PPPIP 0x00000008
//****************************************************************************
// RNAAPP Command line interface
//****************************************************************************
#define RNAAPP_EXE_NAME "rnaapp"
#define LOAD_REQ "-l" // RnaDll loads Rnaapp
//****************************************************************************
// RNAUI Private Interface
//****************************************************************************
#define DT_NULLMODEM "null"
#define DT_MODEM "modem"
#define DT_ISDN "isdn"
#define DT_UNKNOWN "unknown"
#define DIRECTCC "Direct Cable Connection Host Logon"
typedef HICON FAR* LPHICON;
// SMM Usage type flags
//
#define CLIENT_SMM 0x00000001
#define SERVER_SMM 0x00000002
typedef struct tagSMMCFG { DWORD dwSize; DWORD fdwOptions; DWORD fdwProtocols; } SMMCFG, *PSMMCFG, FAR* LPSMMCFG;
typedef struct tagSMMINFO { char szSMMType[RNA_MaxSMMType+1]; SMMCFG SMMConfig; } SMMINFO, *PSMMINFO, FAR* LPSMMINFO;
typedef struct tagIPData { DWORD dwSize; DWORD fdwTCPIP; DWORD dwIPAddr; DWORD dwDNSAddr; DWORD dwDNSAddrAlt; DWORD dwWINSAddr; DWORD dwWINSAddrAlt; } IPDATA, *PIPDATA, FAR *LPIPDATA;
typedef struct tagSMMData { struct tagSMMData *pNext; SMMINFO smmi; DWORD fdwOptAllow; DWORD fdwProtAllow; IPDATA ipData; } SMMDATA, *PSMMDATA, FAR *LPSMMDATA;
// Flags for the fdwTCPIP field
//
#define IPF_IP_SPECIFIED 0x00000001
#define IPF_NAME_SPECIFIED 0x00000002
#define IPF_NO_COMPRESS 0x00000004
#define IPF_NO_WAN_PRI 0x00000008
typedef struct tagDEVICEINFO { DWORD dwVersion; UINT uSize; char szDeviceName[RAS_MaxDeviceName+1]; char szDeviceType[RAS_MaxDeviceType+1]; } DEVICEINFO, *PDEVICEINFO, FAR* LPDEVICEINFO;
typedef struct tagDevConfig { HICON hIcon; SMMINFO smmi; DEVICEINFO di; } DEVCONFIG, *PDEVCONFIG, FAR* LPDEVCONFIG;
typedef struct tagPhoneNum { DWORD dwCountryID; DWORD dwCountryCode; char szAreaCode[RAS_MaxAreaCode+1]; char szLocal[RAS_MaxLocal+1]; char szExtension[RAS_MaxExtension+1]; } PHONENUM, *PPHONENUM, FAR *LPPHONENUM;
typedef struct tagCountryInfo { DWORD dwCountryID; DWORD dwNextCountryID; DWORD dwCountryCode; DWORD dwCountryNameOffset; } COUNTRYINFO, *PCOUNTRYINFO, FAR* LPCOUNTRYINFO;
typedef struct tagConnEntry { PSTR pszEntry; PHONENUM pn; PDEVCONFIG pDevConfig; DWORD dwFlags; DWORD cSubEntry; } CONNENTRY, *PCONNENTRY, FAR* LPCONNENTRY;
#define CESZENTRY(pCE) ((PSTR)(((PBYTE)pCE)+sizeof(CONNENTRY)))
#define DEVCONFIGSIZE(diSize) (diSize+(sizeof(DEVCONFIG)-sizeof(DEVICEINFO)))
typedef struct tagSubConnEntry { DWORD dwSize; DWORD dwFlags; char szDeviceType[RAS_MaxDeviceType+1]; char szDeviceName[RAS_MaxDeviceName+1]; char szLocal[RAS_MaxPhoneNumber+1]; } SUBCONNENTRY, *PSUBCONNENTRY, FAR* LPSUBCONNENTRY;
typedef struct tagConnEntDlg { PCONNENTRY pConnEntry; PDEVCONFIG pDevConfig; PSMMDATA pSMMList; PSMMDATA pSMMType; PMLINFO pmli; DWORD cmlChannel; } CONNENTDLG, *PCONNENTDLG, FAR *LPCONNENTDLG;
typedef struct tagRNAPropPage { UINT idPage; HMODULE hModule; UINT idRes; DLGPROC pfn; } RNAPROPPAGE, *PRNAPROPPAGE, FAR *LPRNAPROPPAGE;
#define SRV_TYPE_PAGE 0 // Server Type page id
DWORD WINAPI RnaEnumConnEntries(LPSTR lpBuf, UINT cb, LPDWORD lpcEntries); PCONNENTRY WINAPI RnaGetConnEntry(LPSTR szEntry, BOOL bNeedIcon, BOOL fDevice); BOOL WINAPI RnaFreeConnEntry(PCONNENTRY); DWORD WINAPI RnaSaveConnEntry(PCONNENTRY lpConnEntry); BOOL WINAPI RnaDeleteConnEntry(LPSTR szEntry); DWORD WINAPI RnaRenameConnEntry(LPSTR szOldEntry, LPSTR szNewEntry); DWORD WINAPI RnaValidateEntryName (LPSTR szEntry, BOOL fNew);
DWORD WINAPI RnaEnumCountryInfo (LPCOUNTRYINFO, LPDWORD); DWORD WINAPI RnaGetAreaCodeList (LPSTR, LPDWORD); DWORD WINAPI RnaGetCurrentCountry (LPDWORD);
DWORD WINAPI RnaEnumDevices (LPBYTE lpBuff, LPDWORD lpcbSize, LPDWORD lpcEntries); PDEVCONFIG WINAPI RnaGetDefaultDevConfig (LPSTR szDeviceName); DWORD WINAPI RnaGetDeviceInfo(LPSTR szDeviceName, LPDEVICEINFO lpdi); DWORD WINAPI RnaGetDeviceChannel (LPSTR szDeviceName); PDEVCONFIG WINAPI RnaBuildDevConfig (PDEVCONFIG pDevConfig, HICON hIcon, BOOL bNeedIcon); DWORD WINAPI RnaDevConfigDlg(HWND hWnd, PDEVCONFIG pDevConfig); BOOL WINAPI RnaFreeDevConfig(PDEVCONFIG pDevConfig);
DWORD WINAPI RnaSMMInfoDialog(HWND hWnd, LPSTR szEntryName, LPSTR szDeviceName, LPSMMINFO lpsmmi, DWORD dwUsage); DWORD WINAPI RnaEnumerateMacNames (LPSTR szDeviceName, LPBYTE lpBuff, LPDWORD lpcb); DWORD WINAPI RnaEnumerateSMMNames (LPSTR szDeviceName, LPBYTE lpBuff, LPDWORD lpcb, DWORD dwType); DWORD WINAPI RnaGetDefaultSMMInfo(LPSTR szDeviceName, LPSMMINFO lpsmmi, BOOL fClient); DWORD WINAPI RnaGetIPInfo(LPSTR szEntryName, PIPDATA pIpData, BOOL fDefault); DWORD WINAPI RnaSetIPInfo(LPSTR szEntryName, PIPDATA pIpData);
DWORD WINAPI RnaLogon(HWND); DWORD WINAPI RnaActivateEngine(); DWORD WINAPI RnaDeactivateEngine(); DWORD WINAPI RnaUIDial(HWND, LPSTR); DWORD WINAPI RnaImplicitDial(HWND, LPSTR);
DWORD WINAPI RnaFindDriver(HWND hwnd, LPSTR lpszDriverList); DWORD WINAPI RnaInstallDriver (HWND hwnd, LPSTR lpszDriverList);
DWORD WINAPI RnaExportEntry (LPSTR szEntryName, LPSTR szFileName); DWORD WINAPI RnaImportEntry (LPSTR szFileName, LPBYTE lpBuff, DWORD cb); DWORD WINAPI RnaValidateImportEntry (LPSTR szFileName);
DWORD WINAPI RnaGetMultiLinkInfo (LPSTR, LPMLINFO); DWORD WINAPI RnaSetMultiLinkInfo (LPSTR, LPMLINFO); DWORD WINAPI RnaGetSubEntry (LPSTR, DWORD, PSUBCONNENTRY, LPDWORD); DWORD WINAPI RnaSetSubEntry (LPSTR, DWORD, PSUBCONNENTRY, DWORD);
#define LOG_INACTIVE 0
#define LOG_DISCONNECTION 1
#define LOG_ACTIVE 2
#define LOG_LISTEN 3
#define LOG_AUTH_TIMEOUT 4
#define LOG_CALLBACK 5
#define LOG_ANSWERED 6
#define LOG_ERROR 7
typedef struct tagLOGINFO { LPSTR szPortName; HWND hwnd; UINT uLogEvent; } LOGINFO, *PLOGINFO, FAR* LPLOGINFO;
typedef struct tagGWLOGONINFO { LPSTR szPortName; char szUserName[UNLEN+1]; SYSTEMTIME sysTime; } GWLOGONINFO, *PGWLOGONINFO, FAR* LPGWLOGONINFO;
typedef enum tagRNASECURITY { RNAPASSWORD, RNAPASSTHROUGH } RNASECURITY;
#define RNAADMIN_DIALIN 1
#define USERTYPE_USER 0x00000001
#define USERTYPE_GROUP 0x00000002
#define USERTYPE_WORLD 0x00000004
typedef struct tagUSER_ACCESS { RNAACCESSTYPE accesstype; BOOL fUseCallbacks; DWORD dwUsertype; } USERACCESS, *PUSERACCESS, FAR *LPUSERACCESS;
typedef struct tagPORTSTATS { char szPortName[RAS_MaxPortName+1]; char szDeviceType[RAS_MaxDeviceType+1]; BOOL fAccessEnabled; UINT TimeOut; SMMINFO smmi; char szComment[RAS_MaxComment+1]; BOOL AdminAccess; RNASECURITY security; union { struct tagPassthru { DWORD cUsers; DWORD dwOffsetUsers; } Passthru;
struct tagPassword { USERACCESS shareaccess; char szPassword[PWLEN+1]; } Password; }; } RNAPORTSTATS, *PRNAPORTSTATS, FAR *LPRNAPORTSTATS;
DWORD WINAPI SuprvEnumAccessInfo (LPBYTE, LPINT, LPINT); DWORD WINAPI SuprvGetAccessInfo (LPSTR, LPRNAPORTSTATS, LPDWORD); DWORD WINAPI SuprvSetAccessInfo (LPRNAPORTSTATS); DWORD WINAPI SuprvInitialize (LPDWORD); DWORD WINAPI SuprvDeInitialize(); DWORD WINAPI SuprvGetAdminConfig();
DWORD WINAPI RnaSetCallbackList (DWORD, LPSTR, LPSTR, int);
DWORD WINAPI RnaAllocateLana(HANDLE hConn, LPDWORD lpLana); DWORD WINAPI RnaDeallocateLana(HANDLE hConn);
DWORD WINAPI RnaRunScript(HANDLE hConn, PSESS_CONFIGURATION_INFO lpSCI, BOOL fForce);
typedef DWORD (WINAPI * LPFNCREATE)(HWND); typedef DWORD (WINAPI * LPFNEDIT)(HWND, LPSTR); typedef void (WINAPI * LPFNUINOTIFY)(LPSTR);
DWORD WINAPI Remote_CreateEntry (HWND); DWORD WINAPI Remote_EditEntry (HWND, LPSTR); void WINAPI Remote_Notify (LPSTR);
//***************************************************************************
// Dial global setting for redial and implicit connection
//***************************************************************************
#define MAX_REDIAL_COUNT 100
#define MIN_REDIAL_COUNT 1
#define MAX_REDIAL_MINUTE 119
#define MIN_REDIAL_MINUTE 0
#define MAX_REDIAL_SECOND 59
#define MIN_REDIAL_SECOND 0
typedef struct tagRnaSetting { BOOL fRedial; DWORD cRetry; DWORD dwMin; DWORD dwSec; BOOL fImplicit; DWORD dwDialUI; } RNASETTING, *PRNASETTING, FAR *LPRNASETTING;
#define DIALUI_NO_PROMPT 0x00000001 // Do not display connect prompt
#define DIALUI_NO_CONFIRM 0x00000002 // Do not display connect confirm
#define DIALUI_NO_TRAY 0x00000004 // No tray icon
DWORD WINAPI RnaGetDialSettings(LPRNASETTING); DWORD WINAPI RnaSetDialSettings(LPRNASETTING);
//***************************************************************************
// The following are SMM Interface we cut from version 1.0
//***************************************************************************
#ifndef WINNT_RAS
//
// CALLBACKINFO conflicts with a structure defined in "pbuser.h",
// and RAS_STATISTICS conflicts with a structure in "rasman.h".
// The Win9x scripting code uses neither, so they have been commented out.
//
// Callback request information
//
typedef struct tagCALLBACKINFO { DWORD dwSize; BOOL fUseCallbackDelay; DWORD dwCallbackDelay; char szPhoneNumber[RAS_MaxPhoneNumber+1]; } CALLBACKINFO, *PCALLBACKINFO, FAR* LPCALLBACKINFO;
DWORD WINAPI RnaSetCallbackInfo( HANDLE hConn, LPCALLBACKINFO lpcbinfo );
DWORD WINAPI RnaReportLinkSpeed( HANDLE hConn, DWORD dwLinkSpeed ); DWORD WINAPI RnaUIStatus( HANDLE hConn, LPSTR lpszStatusMsg ); DWORD WINAPI RnaLog( HANDLE hConn, LPSTR lpszLogMsg );
//***************************************************************************
// The following are connection statistics
//***************************************************************************
#define NUM_RAS_SERIAL_STATS 14
#define BYTES_XMITED 0 //Generic Stats
#define BYTES_RCVED 1
#define FRAMES_XMITED 2
#define FRAMES_RCVED 3
#define CRC_ERR 4 //Serial Stats
#define TIMEOUT_ERR 5
#define ALIGNMENT_ERR 6
#define SERIAL_OVERRUN_ERR 7
#define FRAMING_ERR 8
#define BUFFER_OVERRUN_ERR 9
#define BYTES_XMITED_UNCOMP 10 //Compression Stats
#define BYTES_RCVED_UNCOMP 11
#define BYTES_XMITED_COMP 12
#define BYTES_RCVED_COMP 13
typedef struct tagRAS_STATISTICS { DWORD S_NumOfStatistics ; DWORD S_Statistics[NUM_RAS_SERIAL_STATS] ; } RAS_STATISTICS, FAR* LPRAS_STATISTICS; #endif // WINNT_RAS
//**************************************************************************
// Script support
//**************************************************************************
// Script processing mode
//
#define NORMAL_MODE 0
#define TEST_MODE 1
typedef DWORD (WINAPI * PFN_RUN_SCRIPT)(HANDLE, LPSESS_CONFIGURATION_INFO);
#endif // _RNAP_H_
|