ADMINDLL.C

/****************************************************************************** 
* This is a part of the Microsoft Source Code Samples.
* Copyright 1992 - 1998 Microsoft Corporation.
* All rights reserved.
* This source code is only intended as a supplement to
* RasAdmin API usage and is meant to help user with
* RasAdmin API Calling convention. Use this code at your own risk.
* Microsoft disclaims any implied warranty. This sample code can
* be copied and distributed.

******************************************************************************/

/********************************************************************
* admindll.c -- Sample program demonstrating the use of RasAdmin
* CallOut API's
*
*****************************************************************************/
/***************************************************************************
* Functions:
* Init(void);
* Init2(void);
*****************************************************************************/

#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <stdlib.h>
#include <lm.h>
#include <stdio.h>
#include <time.h>
#include <rassapi.h>
#include <memory.h>
WCHAR*
StrDupWFromA(
CHAR* psz );



#define Number_Of_Flags 6
#define Num_Ip_Address 256
#define ConstIpAddress 0x010A0F0E
HANDLE IPFile = NULL;
HANDLE ConDisFile = NULL;
HANDLE ErrLogFile = NULL;
HANDLE ErrLogFileIP = NULL;
BOOL IPFileInValid = FALSE;
BOOL ConnectDisconnectInValid = FALSE;
BOOL ErrorLogInValid = FALSE;
BOOL ErrLogIPInValid = FALSE;
VOID File_Print(RAS_PORT_1 * pRasPort1,
RAS_PORT_STATISTICS * pRasStats,
RAS_PARAMETERS * pRasParams
);
VOID Debug_Print(RAS_PORT_1 * pRasPort1,
RAS_PORT_STATISTICS * pRasStats,
RAS_PARAMETERS * pRasParams
);
VOID Init(void);
VOID Init2(void);
typedef struct Static_IP_Database
{
WCHAR wszUserName[UNLEN+1];
WCHAR wszPortName[RASSAPI_MAX_PORT_NAME];
DWORD IpAddress;
} Static_IP_Database;
Static_IP_Database Static_IP[Num_Ip_Address];

typedef struct Static_Statistic{
BOOL bTaken;
WCHAR wszUserName[UNLEN+1];
WCHAR wszPortName[RASSAPI_MAX_PORT_NAME];
DWORD NumMediaParms;
DWORD SizeMediaParms;
DWORD dwStartSessionTime;
RAS_PORT_STATISTICS pRasStats;
RAS_PARAMETERS pRasParams;
} Static_Statistic;

Static_Statistic Static_Check_Stats[Num_Ip_Address];
BOOL First_Call = TRUE;

WCHAR*
StrDupWFromA(
CHAR* psz )

/* Returns heap block containing a copy of 0-terminated string 'psz' or
** NULL on error or if 'psz' is NULL. The output string is converted to
** UNICODE. It is caller's responsibility to Free the returned string.
*/
{
WCHAR* pszNew = NULL;

if (psz)
{
DWORD cb;

cb = MultiByteToWideChar( CP_ACP, 0, psz, -1, NULL, 0 );

pszNew = malloc( cb * sizeof(TCHAR) );
if (!pszNew)
{
return NULL;
}

cb = MultiByteToWideChar( CP_ACP, 0, psz, -1, pszNew, cb );
if (cb == 0)
{
free( pszNew );
return NULL;
}
}

return pszNew;
}




// Format and write debug information to OutputDebugString
ULONG
_cdecl
DbgPrint(
PCH Format,
...
)
{
CHAR szbuffer[255];
WCHAR buffer[255];
WCHAR *temp=NULL;
LPINT lpResult=0;
va_list marker;
va_start (marker,Format);
if (IsTextUnicode(Format, sizeof(marker),lpResult))
{
temp=StrDupWFromA(Format);
wvsprintfW (buffer,temp, marker);
OutputDebugString (buffer);
free(temp);
}
else
{
wvsprintfA (szbuffer,Format, marker);
temp=StrDupWFromA(szbuffer);
OutputDebugString (temp);
free(temp);
}
return TRUE;
}







//Called from RasAdminGetIpAddressForUser which in trun gets called by RasMan
VOID Init(void)
{
INT i=0;

IPFile = CreateFile(TEXT("IpAddress.log"),
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ,
(LPSECURITY_ATTRIBUTES) NULL,
CREATE_ALWAYS,
0,
(HANDLE) NULL);
if (IPFile== INVALID_HANDLE_VALUE) {
IPFileInValid = TRUE;
}
ErrLogFileIP = CreateFile(TEXT("IpAddError.log"),
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ,
(LPSECURITY_ATTRIBUTES) NULL,
CREATE_ALWAYS,
0,
(HANDLE) NULL);
if (ErrLogFileIP== INVALID_HANDLE_VALUE) {
ErrLogIPInValid = TRUE;
}

//First call initialize my Stats Database, I Fill out the struct if Call is Accepted the call.
First_Call=FALSE;
}
//Called by RasAdminAcceptNewConnection which in trun gets called by RAS Server (Rassrv)
VOID Init2(void)
{
INT i=0;
ConDisFile = CreateFile(TEXT("ConDis.log"),
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ,
(LPSECURITY_ATTRIBUTES) NULL,
OPEN_ALWAYS,
0,
(HANDLE) NULL);
if (ConDisFile== INVALID_HANDLE_VALUE) {
ConnectDisconnectInValid = TRUE;
}
ErrLogFile = CreateFile(TEXT("AdminErr.log"),
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ,
(LPSECURITY_ATTRIBUTES) NULL,
OPEN_ALWAYS,
0,
(HANDLE) NULL);
if (ErrLogFile == INVALID_HANDLE_VALUE) {
ErrorLogInValid = TRUE;
}
for (i=0;i < Num_Ip_Address; i++);
Static_Check_Stats[i].bTaken=FALSE;
}


DWORD
APIENTRY
RasAdminGetIpAddressForUser(
IN WCHAR * lpwszUserName,
IN WCHAR * lpwszPortName,
IN OUT IPADDR * pIpAddress,
OUT BOOL * pfNotifyDLL
)
{
DWORD i=0;
DWORD dwBytesWritten=0;
CHAR buf[120];
//to check if the call is first rasman call out. If yes, call Initialize routine
if (First_Call) Init();
DbgPrint("First_Call %d\n",First_Call);
DbgPrint("\nGetIpAddressForUser called UserName=%ws,Port=%ws,IpAddress=%d\n",
lpwszUserName,lpwszPortName,(DWORD)*pIpAddress );

for (i=1;i < Num_Ip_Address;i++)
{
if (Static_IP[i].IpAddress != 1)
{
Static_IP[i].IpAddress = 1;
wcscpy(Static_IP[i].wszUserName, lpwszUserName);
wcscpy(Static_IP[i].wszPortName, lpwszPortName);
*pIpAddress = i + ConstIpAddress;
break;
}
}
if (IPFileInValid)
{
DbgPrint("GetIpAddressForUser setting IpAddress=%d\n",(DWORD)*pIpAddress );
}
else
{
sprintf(buf,"GetIpAddressForUser setting IpAddress=%d\n",(DWORD)*pIpAddress );
WriteFile(IPFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);

}
*pfNotifyDLL = TRUE;

return( NO_ERROR );
}


VOID
APIENTRY
RasAdminReleaseIpAddress(
IN WCHAR * lpwszUserName,
IN WCHAR * lpwszPortName,
IN OUT IPADDR * pIpAddress
)
{
DWORD dwBytesWritten=0;
CHAR buf[120];
DbgPrint( "\nReleaseIpAddressr called UserName=%ws,Port=%ws,IpAddress=%d\n",
lpwszUserName,lpwszPortName,(DWORD)*pIpAddress );
if (wcscmp(Static_IP[(DWORD)*pIpAddress-ConstIpAddress].wszUserName,lpwszUserName) == 0)
{
if (wcscmp(Static_IP[(DWORD)*pIpAddress-ConstIpAddress].wszPortName,lpwszPortName) == 0)
{
Static_IP[(DWORD)*pIpAddress-ConstIpAddress].IpAddress = 0;
}
else
{
DbgPrint("ERROR ReleaseIP PortName Incorrect, Cannot free IP Address %ws\n",Static_IP[(DWORD)*pIpAddress-ConstIpAddress].wszPortName);
if (!(ErrLogIPInValid))
{
sprintf(buf,"ERROR ReleaseIP PortName Incorrect, Cannot free IP Address %ws\n",Static_IP[(DWORD)*pIpAddress-ConstIpAddress].wszPortName);
WriteFile(ErrLogFileIP, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
}
}
else
{
DbgPrint("ERROR ReleaseIP UserName Incorrect, Cannot free IP Address %ws\n",Static_IP[(DWORD)*pIpAddress-ConstIpAddress].wszUserName);
if (!(ErrLogIPInValid))
{
sprintf(buf,"ERROR ReleaseIP UserName Incorrect, Cannot free IP Address %ws\n",Static_IP[(DWORD)*pIpAddress-ConstIpAddress].wszUserName);
WriteFile(ErrLogFileIP, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
}
}


BOOL
APIENTRY
RasAdminAcceptNewConnection(
RAS_PORT_1 * pRasPort1,
RAS_PORT_STATISTICS * pRasStats,
RAS_PARAMETERS * pRasParams
)
{
INT i=0;
DWORD dwResult;
WCHAR szUserAccountServer[UNLEN+1];
PRAS_USER_0 ppRasUser0;
RAS_USER_0 RasUser0;
WCHAR Buf[512];
WCHAR *lpszString;
DWORD dwBytesWritten=0;
CHAR szBuf[120];
WCHAR lpszServerName[50];
DWORD Permission;
lpszString = &Buf[0];
ppRasUser0 = &RasUser0;

//to check if the call is first rassrv call out. If yes, call Initialize routine

if (First_Call) {Init2(); First_Call = FALSE;}
DbgPrint("ConnectDisconnect %d\n",ConDisFile);
DbgPrint("ConnectDisconnectInValid %d\n",ConnectDisconnectInValid);
DbgPrint("ErrorLogFile %d\n",ErrLogFile);
DbgPrint("ErrorLogInValid %d\n",ErrorLogInValid);
if (ConnectDisconnectInValid)
{
DbgPrint( "\nRasAdminAcceptNewConnection called \n" );
Debug_Print( pRasPort1, pRasStats, pRasParams);
}
else
{
sprintf(szBuf, "\nRasAdminAcceptNewConnection called \n" );
WriteFile(ConDisFile, (LPSTR)szBuf, strlen(szBuf), &dwBytesWritten, NULL);
File_Print( pRasPort1, pRasStats, pRasParams);
}
if (pRasPort1->rasport0.fAdvancedServer > 0){
dwResult = RasAdminGetUserAccountServer(pRasPort1->rasport0.wszLogonDomain, NULL, &szUserAccountServer[0]);}
else {
lstrcpy(lpszServerName, TEXT("\\\\"));
lstrcat(&lpszServerName[0], pRasPort1->rasport0.wszLogonDomain);
DbgPrint("%ws\n",lpszServerName);
dwResult = RasAdminGetUserAccountServer(NULL, &lpszServerName[0], &szUserAccountServer[0]);
}

if (dwResult == ERROR_SUCCESS)
{
DbgPrint("UserAccount Succeeded\n");
dwResult = RasAdminUserGetInfo(szUserAccountServer, pRasPort1->rasport0.wszUserName, ppRasUser0);
if (dwResult == ERROR_SUCCESS)
{
DbgPrint("AdminUserGetInfo Succeeded");
DbgPrint(" Priviledge %d\n",ppRasUser0->bfPrivilege);
Permission = ppRasUser0->bfPrivilege - (ppRasUser0->bfPrivilege & RASPRIV_DialinPrivilege);
DbgPrint("Permission %d\n",Permission);
if (Permission == RASPRIV_AdminSetCallback || Permission == RASPRIV_CallerSetCallback)
{
DbgPrint ("Don't Accept Call\n");
return (FALSE);
}
}
else
{
DbgPrint("RasAdminUserGetInfo %d\n",dwResult);
dwResult = RasAdminGetErrorString((UINT) dwResult, lpszString, 512);
if (dwResult == ERROR_SUCCESS)
{
DbgPrint("ERROR RasAdminUserGetInfo %s\n",lpszString);
sprintf(szBuf, "ERROR RasAdminUserGetInfo %s\n",lpszString);
WriteFile(ErrLogFile, (LPSTR)szBuf, strlen(szBuf), &dwBytesWritten, NULL);
}
else
{
DbgPrint("ERROR RasAdminGetErrorString %d\n",dwResult);
sprintf(szBuf, "ERROR RasAdminGetErrorString %d\n",dwResult);
WriteFile(ErrLogFile, (LPSTR)szBuf, strlen(szBuf), &dwBytesWritten, NULL);
}
}
}
else
{
DbgPrint("RasAdminGetUserAccountServer %d\n",dwResult);
dwResult = RasAdminGetErrorString((UINT)dwResult, lpszString, 512);
if (dwResult == ERROR_SUCCESS)
{
DbgPrint("ERROR RasAdminUserAccountServer %s\n",lpszString);
sprintf(szBuf, "ERROR RasAdminUserAccountServer %s\n",lpszString);
WriteFile(ErrLogFile, (LPSTR)szBuf, strlen(szBuf), &dwBytesWritten, NULL);
}
else
{
DbgPrint("ERROR RasAdminGetErrorString %d\n",dwResult);
sprintf(szBuf, "ERROR RasAdminGetErrorString %d\n",dwResult);
WriteFile(ErrLogFile, (LPSTR)szBuf, strlen(szBuf), &dwBytesWritten, NULL);
}
}

if (( lstrcmp( pRasPort1->rasport0.wszUserName, TEXT("Administrator") ) ) == 0)
{
DbgPrint("Do not Accept Connection\n");
FlushFileBuffers(ErrLogFile);
FlushFileBuffers(ConDisFile);
return( FALSE );
}
else
{
for (i=0;i < Num_Ip_Address; i++)
if (!(Static_Check_Stats[i].bTaken))
{
wcscpy(Static_Check_Stats[i].wszUserName, pRasPort1->rasport0.wszUserName);
wcscpy(Static_Check_Stats[i].wszPortName, pRasPort1->rasport0.wszPortName);
Static_Check_Stats[i].bTaken = TRUE;
Static_Check_Stats[i].NumMediaParms = pRasPort1->NumMediaParms;
Static_Check_Stats[i].SizeMediaParms = pRasPort1->SizeMediaParms;
Static_Check_Stats[i].dwStartSessionTime = pRasPort1->rasport0.dwStartSessionTime;
memcpy(&Static_Check_Stats[i].pRasStats,pRasStats, sizeof(RAS_PORT_STATISTICS));
memcpy(&Static_Check_Stats[i].pRasParams,pRasParams, sizeof(pRasParams));
break;
}
DbgPrint("Accept Connection\n");
FlushFileBuffers(ErrLogFile);
FlushFileBuffers(ConDisFile);
return( TRUE );
}
}

VOID
APIENTRY
RasAdminConnectionHangupNotification(
RAS_PORT_1 * pRasPort1,
RAS_PORT_STATISTICS * pRasStats,
RAS_PARAMETERS * pRasParams
)
{
INT i=0;
DWORD dwBytesWritten=0;
CHAR buf[120];
//if (First_Call) Init2();
if (ConnectDisconnectInValid)
{
DbgPrint( "\nRasAdminConnectionHangupNotification called \n" );
Debug_Print( pRasPort1, pRasStats, pRasParams);
}
else
{
sprintf(buf, "\nRasAdminConnectionHangupNotification called \n" );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
File_Print( pRasPort1, pRasStats, pRasParams);
}


//Sanity checks
for (i=0; i < Num_Ip_Address; i++)
{
if (Static_Check_Stats[i].bTaken)
{
if (wcscmp(Static_Check_Stats[i].wszPortName,pRasPort1->rasport0.wszPortName) == 0)
{
if (ErrorLogInValid)
{
if (wcscmp(Static_Check_Stats[i].wszUserName,pRasPort1->rasport0.wszUserName) != 0)
DbgPrint("ERROR User Name Differs %ws ->Passed, %ws ->Stored\n",pRasPort1->rasport0.wszUserName,Static_Check_Stats[i].wszUserName);
Static_Check_Stats[i].bTaken = FALSE;
if (Static_Check_Stats[i].NumMediaParms != pRasPort1->NumMediaParms)
DbgPrint("ERROR NumMediaParm %d ->Passed, %d ->Stored\n",Static_Check_Stats[i].NumMediaParms != pRasPort1->NumMediaParms);
if (Static_Check_Stats[i].SizeMediaParms != pRasPort1->SizeMediaParms)
DbgPrint("ERROR SizeMediaParm %d ->Passed, %d ->Stored\n",Static_Check_Stats[i].SizeMediaParms != pRasPort1->SizeMediaParms);
if (Static_Check_Stats[i].dwStartSessionTime != pRasPort1->rasport0.dwStartSessionTime)
DbgPrint("ERROR StartSessionTime %d ->Passed, %d ->Stored\n",Static_Check_Stats[i].dwStartSessionTime, pRasPort1->rasport0.dwStartSessionTime);
if (pRasStats->dwBytesXmited < Static_Check_Stats[i].pRasStats.dwBytesXmited)
DbgPrint( "ERROR dwBytesXmited Passed=%d , dwBytesXmited Stored=%d\n", pRasStats->dwBytesXmited,Static_Check_Stats[i].pRasStats.dwBytesXmited);
if (pRasStats->dwBytesRcved < Static_Check_Stats[i].pRasStats.dwBytesRcved)
DbgPrint( "ERROR dwBytesRcved Passed=%d , dwBytesRcved Stored=%d\n", pRasStats->dwBytesRcved,Static_Check_Stats[i].pRasStats.dwBytesRcved );
if (pRasStats->dwFramesXmited < Static_Check_Stats[i].pRasStats.dwFramesXmited)
DbgPrint( "ERROR dwFramesXmited Passed=%d , dwFramesXmited Stored=%d\n", pRasStats->dwFramesXmited,Static_Check_Stats[i].pRasStats.dwFramesXmited );
if (pRasStats->dwFramesRcved < Static_Check_Stats[i].pRasStats.dwFramesRcved)
DbgPrint( "ERROR dwFramesRcved Passed=%d , dwFramesRcved Stored=%d\n", pRasStats->dwFramesRcved,Static_Check_Stats[i].pRasStats.dwFramesRcved);
if (pRasStats->dwCrcErr < Static_Check_Stats[i].pRasStats.dwCrcErr)
DbgPrint( "ERROR dwCrcErr Passed=%d , dwCrcErr Stored=%d\n", pRasStats->dwCrcErr,Static_Check_Stats[i].pRasStats.dwCrcErr);
if (pRasStats->dwTimeoutErr < Static_Check_Stats[i].pRasStats.dwTimeoutErr)
DbgPrint( "ERROR dwTimeoutErr Passed=%d , dwTimeoutErr Stored=%d\n", pRasStats->dwTimeoutErr,Static_Check_Stats[i].pRasStats.dwTimeoutErr);
if (pRasStats->dwAlignmentErr < Static_Check_Stats[i].pRasStats.dwAlignmentErr)
DbgPrint( "ERROR dwAlignmentErr Passed=%d , dwAlignmentErr Stored=%d\n", pRasStats->dwAlignmentErr,Static_Check_Stats[i].pRasStats.dwAlignmentErr);
if (pRasStats->dwHardwareOverrunErr < Static_Check_Stats[i].pRasStats.dwHardwareOverrunErr)
DbgPrint( "ERROR dwHardwareOverrunErr Passed=%d , dwHardwareOverrunErr Stored=%d\n", pRasStats->dwHardwareOverrunErr,Static_Check_Stats[i].pRasStats.dwHardwareOverrunErr);
if (pRasStats->dwFramingErr < Static_Check_Stats[i].pRasStats.dwFramingErr)
DbgPrint( "ERROR dwFramingErr Passed=%d , dwFramingErr Stored=%d\n", pRasStats->dwFramingErr,Static_Check_Stats[i].pRasStats.dwFramingErr);
if (pRasStats->dwBufferOverrunErr < Static_Check_Stats[i].pRasStats.dwBufferOverrunErr)
DbgPrint( "ERROR dwBufferOverrunErr Passed=%d , dwBufferOverrunErr Stored=%d\n", pRasStats->dwBufferOverrunErr,Static_Check_Stats[i].pRasStats.dwBufferOverrunErr);
if (pRasStats->dwBytesXmitedUncompressed < Static_Check_Stats[i].pRasStats.dwBytesXmitedUncompressed)
DbgPrint( "ERROR dwBytesXmitedUncompressed Passed=%d , dwBytesXmitedUncompressed Stored=%d\n",
pRasStats->dwBytesXmitedUncompressed,Static_Check_Stats[i].pRasStats.dwBytesXmitedUncompressed);
if (pRasStats->dwBytesRcvedUncompressed < Static_Check_Stats[i].pRasStats.dwBytesRcvedUncompressed)
DbgPrint( "ERROR dwBytesRcvedUncompressed Passed=%d ,dwBytesRcvedUncompressed Stored=%d\n",
pRasStats->dwBytesRcvedUncompressed,Static_Check_Stats[i].pRasStats.dwBytesRcvedUncompressed);
if (pRasStats->dwBytesXmitedCompressed < Static_Check_Stats[i].pRasStats.dwBytesXmitedCompressed)
DbgPrint( "ERROR dwBytesXmitedCompressed Passed=%d ,dwBytesXmitedCompressed Stored=%d\n",
pRasStats->dwBytesXmitedCompressed,Static_Check_Stats[i].pRasStats.dwBytesXmitedCompressed);
if (pRasStats->dwBytesRcvedCompressed < Static_Check_Stats[i].pRasStats.dwBytesRcvedCompressed)
DbgPrint( "ERROR dwBytesRcvedCompressed Passed=%d ,dwBytesRcvedCompressed Stored=%d\n",
pRasStats->dwBytesRcvedCompressed,Static_Check_Stats[i].pRasStats.dwBytesRcvedCompressed);
if (memcmp(&Static_Check_Stats[i].pRasParams,pRasParams, sizeof(pRasParams)) != 0)
DbgPrint( "ERROR RASParams Passed & RASParasms Stored are different\n");
}
else
{
if (wcscmp(Static_Check_Stats[i].wszUserName,pRasPort1->rasport0.wszUserName) != 0)
{sprintf(buf,"ERROR User Name Differs %ws ->Passed, %ws ->Stored\n",pRasPort1->rasport0.wszUserName,Static_Check_Stats[i].wszUserName);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
Static_Check_Stats[i].bTaken = FALSE;
if (Static_Check_Stats[i].NumMediaParms != pRasPort1->NumMediaParms)
{sprintf(buf,"ERROR NumMediaParm %d ->Passed, %d ->Stored\n",Static_Check_Stats[i].NumMediaParms != pRasPort1->NumMediaParms);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (Static_Check_Stats[i].SizeMediaParms != pRasPort1->SizeMediaParms)
{sprintf(buf,"ERROR SizeMediaParm %d ->Passed, %d ->Stored\n",Static_Check_Stats[i].SizeMediaParms != pRasPort1->SizeMediaParms);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (Static_Check_Stats[i].dwStartSessionTime != pRasPort1->rasport0.dwStartSessionTime)
{sprintf(buf,"ERROR StartSessionTime %d ->Passed, %d ->Stored\n",Static_Check_Stats[i].dwStartSessionTime != pRasPort1->rasport0.dwStartSessionTime);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwBytesXmited < Static_Check_Stats[i].pRasStats.dwBytesXmited)
{ sprintf(buf, "ERROR dwBytesXmited Passed=%d , dwBytesXmited Stored=%d\n", pRasStats->dwBytesXmited,Static_Check_Stats[i].pRasStats.dwBytesXmited);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwBytesRcved < Static_Check_Stats[i].pRasStats.dwBytesRcved)
{ sprintf(buf, "ERROR dwBytesRcved Passed=%d , dwBytesRcved Stored=%d\n", pRasStats->dwBytesRcved,Static_Check_Stats[i].pRasStats.dwBytesRcved );
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwFramesXmited < Static_Check_Stats[i].pRasStats.dwFramesXmited)
{sprintf(buf, "ERROR dwFramesXmited Passed=%d , dwFramesXmited Stored=%d\n", pRasStats->dwFramesXmited,Static_Check_Stats[i].pRasStats.dwFramesXmited );
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwFramesRcved < Static_Check_Stats[i].pRasStats.dwFramesRcved)
{sprintf(buf, "ERROR dwFramesRcved Passed=%d , dwFramesRcved Stored=%d\n", pRasStats->dwFramesRcved,Static_Check_Stats[i].pRasStats.dwFramesRcved);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwCrcErr < Static_Check_Stats[i].pRasStats.dwCrcErr)
{sprintf(buf, "ERROR dwCrcErr Passed=%d , dwCrcErr Stored=%d\n", pRasStats->dwCrcErr,Static_Check_Stats[i].pRasStats.dwCrcErr);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwTimeoutErr < Static_Check_Stats[i].pRasStats.dwTimeoutErr)
{sprintf(buf, "ERROR dwTimeoutErr Passed=%d , dwTimeoutErr Stored=%d\n", pRasStats->dwTimeoutErr,Static_Check_Stats[i].pRasStats.dwTimeoutErr);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwAlignmentErr < Static_Check_Stats[i].pRasStats.dwAlignmentErr)
{sprintf(buf, "ERROR dwAlignmentErr Passed=%d , dwAlignmentErr Stored=%d\n", pRasStats->dwAlignmentErr,Static_Check_Stats[i].pRasStats.dwAlignmentErr);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwHardwareOverrunErr < Static_Check_Stats[i].pRasStats.dwHardwareOverrunErr)
{sprintf(buf, "ERROR dwHardwareOverrunErr Passed=%d , dwHardwareOverrunErr Stored=%d\n", pRasStats->dwHardwareOverrunErr,Static_Check_Stats[i].pRasStats.dwHardwareOverrunErr);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwFramingErr < Static_Check_Stats[i].pRasStats.dwFramingErr)
{sprintf(buf, "ERROR dwFramingErr Passed=%d , dwFramingErr Stored=%d\n", pRasStats->dwFramingErr,Static_Check_Stats[i].pRasStats.dwFramingErr);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwBufferOverrunErr < Static_Check_Stats[i].pRasStats.dwBufferOverrunErr)
{sprintf(buf, "ERROR dwBufferOverrunErr Passed=%d , dwBufferOverrunErr Stored=%d\n", pRasStats->dwBufferOverrunErr,Static_Check_Stats[i].pRasStats.dwBufferOverrunErr);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwBytesXmitedUncompressed < Static_Check_Stats[i].pRasStats.dwBytesXmitedUncompressed)
{ sprintf(buf, "ERROR dwBytesXmitedUncompressed Passed=%d , dwBytesXmitedUncompressed Stored=%d\n",
pRasStats->dwBytesXmitedUncompressed,Static_Check_Stats[i].pRasStats.dwBytesXmitedUncompressed);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwBytesRcvedUncompressed < Static_Check_Stats[i].pRasStats.dwBytesRcvedUncompressed)
{sprintf(buf, "ERROR dwBytesRcvedUncompressed Passed=%d ,dwBytesRcvedUncompressed Stored=%d\n",
pRasStats->dwBytesRcvedUncompressed,Static_Check_Stats[i].pRasStats.dwBytesRcvedUncompressed);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwBytesXmitedCompressed < Static_Check_Stats[i].pRasStats.dwBytesXmitedCompressed)
{sprintf(buf, "ERROR dwBytesXmitedCompressed Passed=%d ,dwBytesXmitedCompressed Stored=%d\n",
pRasStats->dwBytesXmitedCompressed,Static_Check_Stats[i].pRasStats.dwBytesXmitedCompressed);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasStats->dwBytesRcvedCompressed < Static_Check_Stats[i].pRasStats.dwBytesRcvedCompressed)
{ sprintf(buf, "ERROR dwBytesRcvedCompressed Passed=%d ,dwBytesRcvedCompressed Stored=%d\n",
pRasStats->dwBytesRcvedCompressed,Static_Check_Stats[i].pRasStats.dwBytesRcvedCompressed);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (memcmp(&Static_Check_Stats[i].pRasParams,pRasParams, sizeof(pRasParams)) != 0)
{ sprintf(buf, "ERROR RASParams Passed & RASParasms Stored are different\n");
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}

}
break;
}
else
{ if (i == 255){
if (ErrorLogInValid)
{DbgPrint("ERROR Port Name Differs %ws ->Passed, %ws ->Stored\n",pRasPort1->rasport0.wszPortName,Static_Check_Stats[i].wszPortName);}
else
{sprintf(buf,"ERROR Port Name Differs %ws ->Passed, %ws ->Stored\n",pRasPort1->rasport0.wszPortName,Static_Check_Stats[i].wszPortName);
WriteFile(ErrLogFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
}
}
}
}
FlushFileBuffers(ErrLogFile);
FlushFileBuffers(ConDisFile);

}

VOID Debug_Print(RAS_PORT_1 * pRasPort1,
RAS_PORT_STATISTICS * pRasStats,
RAS_PARAMETERS * pRasParams
)
{
WCHAR *Media_Name[] = {TEXT("MEDIA_UNKNOWN"),TEXT( "MEDIA_SERIAL"),
TEXT("MEDIA_RAS10_SERIAL"),TEXT( "MEDIA_ISDN")};
WCHAR *Flag_Name[] = {TEXT("USER_AUTHENTICATED"),TEXT( "MESSENGER_PRESENT"),
TEXT("PPP_CLIENT"),TEXT("GATEWAY_ACTIVE"),TEXT("REMOTE_LISTEN"),TEXT("PORT_MULTILINKED")};
WCHAR *Line_Condition[]={TEXT("RAS_PORT_NON_OPERATIONAL"),TEXT("RAS_PORT_DISCONNECTED"),
TEXT("RAS_PORT_CALLING_BACK"),TEXT("RAS_PORT_LISTENING"),TEXT("RAS_PORT_AUTHENTICATING"),
TEXT("RAS_PORT_AUTHENTICATED"),TEXT("RAS_PORT_INITIALIZING")};
WCHAR *Hdw_Error[]={TEXT("RAS_MODEM_OPERATIONAL"),TEXT("RAS_MODEM_NOT_RESPONDING"),TEXT("RAS_MODEM_HARDWARE_FAILURE"),
TEXT("RAS_MODEM_INCORRECT_RESPONSE"),TEXT("RAS_MODEM_UNKNOWN")};
INT i=0;
INT temp = 0;
INT temp1 =0;
DWORD dwsize=0;
CHAR szBuf[100];
DbgPrint( "\nRasAdminAcceptNewConnection called \n" );
DbgPrint( "pRasPort1->rasport0.wszPortName=%ws\n",
pRasPort1->rasport0.wszPortName );
DbgPrint( "pRasPort1->rasport0.wszDeviceType=%ws\n",
pRasPort1->rasport0.wszDeviceType );
DbgPrint( "pRasPort1->rasport0.wszDeviceName=%ws\n",
pRasPort1->rasport0.wszDeviceName );
DbgPrint( "pRasPort1->rasport0.wszMediaName=%ws\n",
pRasPort1->rasport0.wszMediaName );
DbgPrint( "pRasPort1->rasport0.reserved=%d\n",
pRasPort1->rasport0.reserved );
DbgPrint(" %ws\n",Media_Name[pRasPort1->rasport0.reserved]);
DbgPrint( "pRasPort1->rasport0.Flags=%d\n",
pRasPort1->rasport0.Flags );
//printing Flags
temp1 = 1;
for (i=0; i <= Number_Of_Flags; i++)
{
temp = (pRasPort1->rasport0.Flags & temp1);
if (temp)
{
DbgPrint("Flag %ws \n",Flag_Name[i]);
}
temp1 = temp1*2;
}
DbgPrint( "pRasPort1->rasport0.wszUserName=%ws\n",
pRasPort1->rasport0.wszUserName );
DbgPrint( "pRasPort1->rasport0.wszComputer=%ws\n",
pRasPort1->rasport0.wszComputer );
DbgPrint( "pRasPort1->rasport0.dwStartSessionTime;=%d\n",
pRasPort1->rasport0.dwStartSessionTime );
DbgPrint("Formatted session start time/date : %s\n",ctime(&pRasPort1->rasport0.dwStartSessionTime));
DbgPrint( "pRasPort1->rasport0.wszLogonDomain=%ws\n",
pRasPort1->rasport0.wszLogonDomain );
DbgPrint( "pRasPort1->rasport0.fAdvancedServer=%d\n",
pRasPort1->rasport0.fAdvancedServer );
DbgPrint( "pRasPort1->LineCondition=%d\n", pRasPort1->LineCondition );
DbgPrint(" %ws\n",Line_Condition[pRasPort1->LineCondition-1]);
DbgPrint( "pRasPort1->HardwareCondition=%d\n",pRasPort1->HardwareCondition);
DbgPrint(" %ws\n",Hdw_Error[pRasPort1->HardwareCondition-1]);
DbgPrint( "pRasPort1->LineSpeed=%d bits/sec\n",pRasPort1->LineSpeed);
DbgPrint( "pRasPort1->NumStatistics=%d\n",pRasPort1->NumStatistics);
DbgPrint( "pRasPort1->NumMediaParms=%d\n",pRasPort1->NumMediaParms);
DbgPrint( "pRasPort1->SizeMediaParms=%d\n",pRasPort1->SizeMediaParms);
DbgPrint( "\npRasPort1->ProjResult.nbf.dwError=%d\n",
pRasPort1->ProjResult.nbf.dwError );
if (pRasPort1->ProjResult.nbf.dwError == NO_ERROR)
{
DbgPrint( "pRasPort1->ProjResult.nbf.dwNetBiosError=%d\n",
pRasPort1->ProjResult.nbf.dwNetBiosError );
DbgPrint( "pRasPort1->ProjResult.nbf.szName=%s\n",
pRasPort1->ProjResult.nbf.szName );
DbgPrint( "pRasPort1->ProjResult.nbf.wszWksta=%ws\n",
pRasPort1->ProjResult.nbf.wszWksta );
}
DbgPrint( "pRasPort1->ProjResult.ip.dwError=%d\n",
pRasPort1->ProjResult.ip.dwError );

if (pRasPort1->ProjResult.ip.dwError == NO_ERROR) 
{
DbgPrint( "pRasPort1->ProjResult.ip.wszAddress=%ws\n",
pRasPort1->ProjResult.ip.wszAddress );
}
DbgPrint( "pRasPort1->ProjResult.ipx.dwError=%d\n",
pRasPort1->ProjResult.ipx.dwError );
if (pRasPort1->ProjResult.ipx.dwError == NO_ERROR)
{
DbgPrint( "pRasPort1->ProjResult.ipx.wszAddress=%ws\n",
pRasPort1->ProjResult.ipx.wszAddress );
}
DbgPrint( "pRasPort1->ProjResult.at.dwError=%d\n",
pRasPort1->ProjResult.at.dwError );
if (pRasPort1->ProjResult.at.dwError == NO_ERROR)
{
DbgPrint( "pRasPort1->ProjResult.at.wszAddress=%ws\n",
pRasPort1->ProjResult.at.wszAddress );
}
DbgPrint( "\ndwBytesXmited=%d\n", pRasStats->dwBytesXmited );
DbgPrint( "dwBytesRcved=%d\n", pRasStats->dwBytesRcved );
DbgPrint( "dwFramesXmited=%d\n", pRasStats->dwFramesXmited );
DbgPrint( "dwFramesRcved=%d\n", pRasStats->dwFramesRcved);
DbgPrint( "dwCrcErr=%d\n", pRasStats->dwCrcErr);
DbgPrint( "dwTimeoutErr=%d\n", pRasStats->dwTimeoutErr);
DbgPrint( "dwAlignmentErr=%d\n", pRasStats->dwAlignmentErr);
DbgPrint( "dwHardwareOverrunErr=%d\n", pRasStats->dwHardwareOverrunErr);
DbgPrint( "dwFramingErr=%d\n", pRasStats->dwFramingErr);
DbgPrint( "dwBufferOverrunErr=%d\n", pRasStats->dwBufferOverrunErr);
DbgPrint( "dwBytesXmitedUncompressed=%d\n",
pRasStats->dwBytesXmitedUncompressed);
DbgPrint( "dwBytesRcvedUncompressed=%d\n",
pRasStats->dwBytesRcvedUncompressed);
DbgPrint( "dwBytesXmitedCompressed=%d\n",
pRasStats->dwBytesXmitedCompressed);
DbgPrint( "dwBytesRcvedCompressed=%d\n",
pRasStats->dwBytesRcvedCompressed);
for (i=0; i<pRasPort1->NumMediaParms;i++)
{
DbgPrint( "pRasParams->P_Key= %s\n",pRasParams[i].P_Key);
DbgPrint( "pRasParams->P_Type= %d\n",pRasParams[i].P_Type);
if (pRasParams[i].P_Type == 1)
{
DbgPrint("pRasParams->P_Value.Length=%d\n",pRasParams[i].P_Value.String.Length);
sprintf(szBuf," \n");
strncpy(szBuf, pRasParams[i].P_Value.String.Data, pRasParams[i].P_Value.String.Length);
DbgPrint("pRasParams->P_Value.Data= %s\n",szBuf);
}
if (pRasParams[i].P_Type == 0)
{
DbgPrint("pRasParams->P_Value.Number=%d\n", pRasParams[i].P_Value.Number);
}
DbgPrint( "pRasParams->P_Attributes= %d\n",pRasParams[i].P_Attributes);
}
}



VOID File_Print(RAS_PORT_1 * pRasPort1,
RAS_PORT_STATISTICS * pRasStats,
RAS_PARAMETERS * pRasParams
)
{
char *Media_Name[] = {"MEDIA_UNKNOWN", "MEDIA_SERIAL",
"MEDIA_RAS10_SERIAL", "MEDIA_ISDN"};
char *Flag_Name[] = {"USER_AUTHENTICATED", "MESSENGER_PRESENT",
"PPP_CLIENT","GATEWAY_ACTIVE","REMOTE_LISTEN","PORT_MULTILINKED"};
char *Line_Condition[]={"RAS_PORT_NON_OPERATIONAL","RAS_PORT_DISCONNECTED",
"RAS_PORT_CALLING_BACK","RAS_PORT_LISTENING","RAS_PORT_AUTHENTICATING",
"RAS_PORT_AUTHENTICATED","RAS_PORT_INITIALIZING"};
char *Hdw_Error[]={"RAS_MODEM_OPERATIONAL","RAS_MODEM_NOT_RESPONDING","RAS_MODEM_HARDWARE_FAILURE",
"RAS_MODEM_INCORRECT_RESPONSE","RAS_MODEM_UNKNOWN"};
INT i=0;
INT temp = 0;
INT temp1 =0;
DWORD dwsize=0;
CHAR szBuf[50];
CHAR buf[120];
DWORD dwBytesWritten=0;
sprintf(buf, "pRasPort1->rasport0.wszPortName=%ws\n",
pRasPort1->rasport0.wszPortName );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf,"pRasPort1->rasport0.wszDeviceType=%ws\n",
pRasPort1->rasport0.wszDeviceType );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf,"pRasPort1->rasport0.wszDeviceName=%ws\n",
pRasPort1->rasport0.wszDeviceName );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->rasport0.wszMediaName=%ws\n",
pRasPort1->rasport0.wszMediaName );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf,"pRasPort1->rasport0.reserved=%d\n",
pRasPort1->rasport0.reserved );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf," %s\n",Media_Name[pRasPort1->rasport0.reserved]);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->rasport0.Flags=%d\n",
pRasPort1->rasport0.Flags );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
//printing Flags
temp1 = 1;
for (i=0; i <= Number_Of_Flags; i++)
{
temp = (pRasPort1->rasport0.Flags & temp1);
if (temp)
{
sprintf(buf,"Flag %s \n",Flag_Name[i]);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
temp1 = temp1*2;
}
sprintf(buf, "pRasPort1->rasport0.wszUserName=%ws\n",
pRasPort1->rasport0.wszUserName );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->rasport0.wszComputer=%ws\n",
pRasPort1->rasport0.wszComputer );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->rasport0.dwStartSessionTime;=%d\n",
pRasPort1->rasport0.dwStartSessionTime );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf,"Formatted session start time/date : %s\n",ctime(&pRasPort1->rasport0.dwStartSessionTime));
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->rasport0.wszLogonDomain=%ws\n",
pRasPort1->rasport0.wszLogonDomain );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->rasport0.fAdvancedServer=%d\n",
pRasPort1->rasport0.fAdvancedServer );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->LineCondition=%d\n", pRasPort1->LineCondition );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf," %s\n",Line_Condition[pRasPort1->LineCondition-1]);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->HardwareCondition=%d\n",pRasPort1->HardwareCondition);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf," %s\n",Hdw_Error[pRasPort1->HardwareCondition-1]);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->LineSpeed=%d bits/sec\n",pRasPort1->LineSpeed);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->NumStatistics=%d\n",pRasPort1->NumStatistics);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->NumMediaParms=%d\n",pRasPort1->NumMediaParms);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->SizeMediaParms=%d\n",pRasPort1->SizeMediaParms);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "\npRasPort1->ProjResult.nbf.dwError=%d\n",
pRasPort1->ProjResult.nbf.dwError );
if (pRasPort1->ProjResult.nbf.dwError == NO_ERROR)
{
sprintf(buf, "pRasPort1->ProjResult.nbf.dwNetBiosError=%d\n",
pRasPort1->ProjResult.nbf.dwNetBiosError );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->ProjResult.nbf.szName=%s\n",
pRasPort1->ProjResult.nbf.szName );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasPort1->ProjResult.nbf.wszWksta=%ws\n",
pRasPort1->ProjResult.nbf.wszWksta );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
sprintf(buf, "pRasPort1->ProjResult.ip.dwError=%d\n",
pRasPort1->ProjResult.ip.dwError );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
if (pRasPort1->ProjResult.ip.dwError == NO_ERROR)
{
sprintf(buf, "pRasPort1->ProjResult.ip.wszAddress=%ws\n",
pRasPort1->ProjResult.ip.wszAddress );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
sprintf(buf, "pRasPort1->ProjResult.ipx.dwError=%d\n",
pRasPort1->ProjResult.ipx.dwError );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
if (pRasPort1->ProjResult.ipx.dwError == NO_ERROR)
{
sprintf(buf, "pRasPort1->ProjResult.ipx.wszAddress=%ws\n",
pRasPort1->ProjResult.ipx.wszAddress );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
sprintf(buf, "pRasPort1->ProjResult.at.dwError=%d\n",
pRasPort1->ProjResult.at.dwError );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
if (pRasPort1->ProjResult.at.dwError == NO_ERROR)
{
sprintf(buf, "pRasPort1->ProjResult.at.wszAddress=%ws\n",
pRasPort1->ProjResult.at.wszAddress );
}
sprintf(buf, "\ndwBytesXmited=%d\n", pRasStats->dwBytesXmited );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwBytesRcved=%d\n", pRasStats->dwBytesRcved );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwFramesXmited=%d\n", pRasStats->dwFramesXmited );
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwFramesRcved=%d\n", pRasStats->dwFramesRcved);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwCrcErr=%d\n", pRasStats->dwCrcErr);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwTimeoutErr=%d\n", pRasStats->dwTimeoutErr);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwAlignmentErr=%d\n", pRasStats->dwAlignmentErr);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwHardwareOverrunErr=%d\n", pRasStats->dwHardwareOverrunErr);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwFramingErr=%d\n", pRasStats->dwFramingErr);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwBufferOverrunErr=%d\n", pRasStats->dwBufferOverrunErr);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwBytesXmitedUncompressed=%d\n",
pRasStats->dwBytesXmitedUncompressed);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwBytesRcvedUncompressed=%d\n",
pRasStats->dwBytesRcvedUncompressed);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwBytesXmitedCompressed=%d\n",
pRasStats->dwBytesXmitedCompressed);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "dwBytesRcvedCompressed=%d\n",
pRasStats->dwBytesRcvedCompressed);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
for (i=0; i<pRasPort1->NumMediaParms;i++)
{
sprintf(buf, "pRasParams->P_Key= %s\n",pRasParams[i].P_Key);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(buf, "pRasParams->P_Type= %d\n",pRasParams[i].P_Type);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
if (pRasParams[i].P_Type == 1)
{
sprintf(buf,"pRasParams->P_Value.Length=%d\n",pRasParams[i].P_Value.String.Length);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
sprintf(szBuf," \n");
strncpy(szBuf, pRasParams[i].P_Value.String.Data, pRasParams[i].P_Value.String.Length);
sprintf(buf,"pRasParams->P_Value.Data= %s\n",szBuf);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
if (pRasParams[i].P_Type == 0)
{
sprintf(buf,"pRasParams->P_Value.Number=%d\n", pRasParams[i].P_Value.Number);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
sprintf(buf, "pRasParams->P_Attributes= %d\n",pRasParams[i].P_Attributes);
WriteFile(ConDisFile, (LPSTR)buf, strlen(buf), &dwBytesWritten, NULL);
}
}