/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
info.c
Abstract:
This module handles the printing of the results of the Query and
Set commands.
Author:
Tom Adams (tomad) 2-Dec-1991
Revision History:
2-Apr-1991 tomad
created
Sanjeev Katariya (sanjeevk)
4-12-1993 Added Arcnet support
4-15-1993 Added additional OIDS
--*/
#include <nt.h>
#include <ntrtl.h>
#include <nturtl.h>
#include <windows.h>
//#include <ndis.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "tpctl.h"
#include "parse.h"
#define CHAR_SP 0x20
#define INDENT 12
#define MAX_STR_LEN 80
/*++
VOID
TpctlDumpNewLine(
LPSTR Buffer
);
--*/
#define TpctlDumpNewLine( Buffer ) { \
Buffer += (BYTE)sprintf( Buffer,"\n" ); \
}
/*++
VOID
TpctlDumpLabel(
LPSTR Buffer,
PBYTE Label
);
--*/
#define TpctlDumpLabel( Buffer,Label ) { \
DWORD i; \
DWORD Length; \
BYTE _Str[MAX_STR_LEN]; \
\
for ( i=0;i<INDENT;i++ ) { \
_Str[i] = CHAR_SP; \
} \
Length = strlen( Label ); \
strncpy( &_Str[INDENT],#Label,Length+2 ); \
\
for ( i=strlen( _Str ) ; i<MAX_STR_LEN ; i++ ) { \
_Str[i] = CHAR_SP; \
} \
_Str[INDENT+Length+2] = '\0'; \
Buffer += (BYTE)sprintf( Buffer,"%s",_Str ); \
\
TpctlDumpNewLine( Buffer ); \
}
/*++
VOID
TpctlDumpEquality(
LPSTR Buffer,
DWORD Value,
DWORD String
);
--*/
#define TpctlDumpEquality( Buffer,Value,String ) { \
\
if ( Value == String ) { \
TpctlDumpLabel( Buffer,#String ); \
return; \
} \
}
/*++
VOID
TpctlDumpBitField(
LPSTR Buffer,
DWORD PacketFilter,
DWORD BitField
);
--*/
#define TpctlDumpBitfield( Buffer,Value,BitField ) { \
\
if (( Value ) & BitField ) { \
TpctlDumpLabel( Buffer,#BitField ); \
} \
}
VOID
TpctlDumpOID(
LPSTR *B,
DWORD OID
)
{
//
// General Objects
//
TpctlDumpEquality( *B,OID,OID_GEN_SUPPORTED_LIST );
TpctlDumpEquality( *B,OID,OID_GEN_HARDWARE_STATUS );
TpctlDumpEquality( *B,OID,OID_GEN_MEDIA_SUPPORTED );
TpctlDumpEquality( *B,OID,OID_GEN_MEDIA_IN_USE );
TpctlDumpEquality( *B,OID,OID_GEN_MAXIMUM_LOOKAHEAD );
TpctlDumpEquality( *B,OID,OID_GEN_MAXIMUM_FRAME_SIZE );
TpctlDumpEquality( *B,OID,OID_GEN_LINK_SPEED );
TpctlDumpEquality( *B,OID,OID_GEN_TRANSMIT_BUFFER_SPACE );
TpctlDumpEquality( *B,OID,OID_GEN_RECEIVE_BUFFER_SPACE );
TpctlDumpEquality( *B,OID,OID_GEN_TRANSMIT_BLOCK_SIZE );
TpctlDumpEquality( *B,OID,OID_GEN_RECEIVE_BLOCK_SIZE );
TpctlDumpEquality( *B,OID,OID_GEN_VENDOR_ID );
TpctlDumpEquality( *B,OID,OID_GEN_VENDOR_DESCRIPTION );
TpctlDumpEquality( *B,OID,OID_GEN_CURRENT_PACKET_FILTER );
TpctlDumpEquality( *B,OID,OID_GEN_CURRENT_LOOKAHEAD );
TpctlDumpEquality( *B,OID,OID_GEN_DRIVER_VERSION );
TpctlDumpEquality( *B,OID,OID_GEN_MAXIMUM_TOTAL_SIZE );
TpctlDumpEquality( *B,OID,OID_GEN_PROTOCOL_OPTIONS );
TpctlDumpEquality( *B,OID,OID_GEN_MAC_OPTIONS );
TpctlDumpEquality( *B,OID,OID_GEN_XMIT_OK );
TpctlDumpEquality( *B,OID,OID_GEN_RCV_OK );
TpctlDumpEquality( *B,OID,OID_GEN_XMIT_ERROR );
TpctlDumpEquality( *B,OID,OID_GEN_RCV_ERROR );
TpctlDumpEquality( *B,OID,OID_GEN_RCV_NO_BUFFER );
TpctlDumpEquality( *B,OID,OID_GEN_DIRECTED_BYTES_XMIT );
TpctlDumpEquality( *B,OID,OID_GEN_DIRECTED_FRAMES_XMIT );
TpctlDumpEquality( *B,OID,OID_GEN_MULTICAST_BYTES_XMIT );
TpctlDumpEquality( *B,OID,OID_GEN_MULTICAST_FRAMES_XMIT );
TpctlDumpEquality( *B,OID,OID_GEN_BROADCAST_BYTES_XMIT );
TpctlDumpEquality( *B,OID,OID_GEN_BROADCAST_FRAMES_XMIT );
TpctlDumpEquality( *B,OID,OID_GEN_DIRECTED_BYTES_RCV );
TpctlDumpEquality( *B,OID,OID_GEN_DIRECTED_FRAMES_RCV );
TpctlDumpEquality( *B,OID,OID_GEN_MULTICAST_BYTES_RCV );
TpctlDumpEquality( *B,OID,OID_GEN_MULTICAST_FRAMES_RCV );
TpctlDumpEquality( *B,OID,OID_GEN_BROADCAST_BYTES_RCV );
TpctlDumpEquality( *B,OID,OID_GEN_BROADCAST_FRAMES_RCV );
TpctlDumpEquality( *B,OID,OID_GEN_RCV_CRC_ERROR );
TpctlDumpEquality( *B,OID,OID_GEN_TRANSMIT_QUEUE_LENGTH );
//
// 802.3 Objects
//
TpctlDumpEquality( *B,OID,OID_802_3_PERMANENT_ADDRESS );
TpctlDumpEquality( *B,OID,OID_802_3_CURRENT_ADDRESS );
TpctlDumpEquality( *B,OID,OID_802_3_MULTICAST_LIST );
TpctlDumpEquality( *B,OID,OID_802_3_MAXIMUM_LIST_SIZE );
TpctlDumpEquality( *B,OID,OID_802_3_RCV_ERROR_ALIGNMENT );
TpctlDumpEquality( *B,OID,OID_802_3_XMIT_ONE_COLLISION );
TpctlDumpEquality( *B,OID,OID_802_3_XMIT_MORE_COLLISIONS );
TpctlDumpEquality( *B,OID,OID_802_3_XMIT_DEFERRED);
TpctlDumpEquality( *B,OID,OID_802_3_XMIT_MAX_COLLISIONS );
TpctlDumpEquality( *B,OID,OID_802_3_RCV_OVERRUN );
TpctlDumpEquality( *B,OID,OID_802_3_XMIT_UNDERRUN );
TpctlDumpEquality( *B,OID,OID_802_3_XMIT_HEARTBEAT_FAILURE );
TpctlDumpEquality( *B,OID,OID_802_3_XMIT_TIMES_CRS_LOST );
TpctlDumpEquality( *B,OID,OID_802_3_XMIT_LATE_COLLISIONS );
//
// 802.5 Objects
//
TpctlDumpEquality( *B,OID,OID_802_5_PERMANENT_ADDRESS );
TpctlDumpEquality( *B,OID,OID_802_5_CURRENT_ADDRESS );
TpctlDumpEquality( *B,OID,OID_802_5_CURRENT_FUNCTIONAL );
TpctlDumpEquality( *B,OID,OID_802_5_CURRENT_GROUP );
TpctlDumpEquality( *B,OID,OID_802_5_LAST_OPEN_STATUS );
TpctlDumpEquality( *B,OID,OID_802_5_CURRENT_RING_STATUS );
TpctlDumpEquality( *B,OID,OID_802_5_CURRENT_RING_STATE );
TpctlDumpEquality( *B,OID,OID_802_5_LINE_ERRORS );
TpctlDumpEquality( *B,OID,OID_802_5_LOST_FRAMES );
TpctlDumpEquality( *B,OID,OID_802_5_BURST_ERRORS );
TpctlDumpEquality( *B,OID,OID_802_5_AC_ERRORS );
TpctlDumpEquality( *B,OID,OID_802_5_ABORT_DELIMETERS );
TpctlDumpEquality( *B,OID,OID_802_5_FRAME_COPIED_ERRORS );
TpctlDumpEquality( *B,OID,OID_802_5_FREQUENCY_ERRORS );
TpctlDumpEquality( *B,OID,OID_802_5_TOKEN_ERRORS );
TpctlDumpEquality( *B,OID,OID_802_5_INTERNAL_ERRORS );
//
// Fddi object
//
TpctlDumpEquality( *B,OID,OID_FDDI_LONG_PERMANENT_ADDR );
TpctlDumpEquality( *B,OID,OID_FDDI_LONG_CURRENT_ADDR );
TpctlDumpEquality( *B,OID,OID_FDDI_LONG_MULTICAST_LIST );
TpctlDumpEquality( *B,OID,OID_FDDI_LONG_MAX_LIST_SIZE );
TpctlDumpEquality( *B,OID,OID_FDDI_SHORT_PERMANENT_ADDR );
TpctlDumpEquality( *B,OID,OID_FDDI_SHORT_CURRENT_ADDR );
TpctlDumpEquality( *B,OID,OID_FDDI_SHORT_MULTICAST_LIST );
TpctlDumpEquality( *B,OID,OID_FDDI_SHORT_MAX_LIST_SIZE);
TpctlDumpEquality( *B,OID,OID_FDDI_ATTACHMENT_TYPE );
TpctlDumpEquality( *B,OID,OID_FDDI_UPSTREAM_NODE_LONG );
TpctlDumpEquality( *B,OID,OID_FDDI_DOWNSTREAM_NODE_LONG );
TpctlDumpEquality( *B,OID,OID_FDDI_FRAME_ERRORS );
TpctlDumpEquality( *B,OID,OID_FDDI_FRAMES_LOST );
TpctlDumpEquality( *B,OID,OID_FDDI_RING_MGT_STATE );
TpctlDumpEquality( *B,OID,OID_FDDI_LCT_FAILURES );
TpctlDumpEquality( *B,OID,OID_FDDI_LEM_REJECTS );
TpctlDumpEquality( *B,OID,OID_FDDI_LCONNECTION_STATE );
//
// STARTCHANGE
//
TpctlDumpEquality( *B,OID,OID_ARCNET_PERMANENT_ADDRESS );
TpctlDumpEquality( *B,OID,OID_ARCNET_CURRENT_ADDRESS ) ;
TpctlDumpEquality( *B,OID,OID_ARCNET_RECONFIGURATIONS ) ;
//
// STOPCHANGE
//
//
// Async Objects
//
/* Not currently supported.
TpctlDumpEquality( *B,OID,OID_ASYNC_PERMANENT_ADDRESS );
TpctlDumpEquality( *B,OID,OID_ASYNC_CURRENT_ADDRESS );
TpctlDumpEquality( *B,OID,OID_ASYNC_QUALITY_OF_SERVICE );
TpctlDumpEquality( *B,OID,OID_ASYNC_PROTOCOL_TYPE );
*/
//
// LocalTalk Objects
//
/* Not currently supported.
TpctlDumpEquality( *B,OID,OID_LTALK_CURRENT_NODE_ID );
TpctlDumpEquality( *B,OID,OID_LTALK_IN_BROADCASTS );
TpctlDumpEquality( *B,OID,OID_LTALK_IN_LENGTH_ERRORS );
TpctlDumpEquality( *B,OID,OID_LTALK_OUT_NO_HANDLERS );
TpctlDumpEquality( *B,OID,OID_LTALK_COLLISIONS );
TpctlDumpEquality( *B,OID,OID_LTALK_DEFERS );
TpctlDumpEquality( *B,OID,OID_LTALK_NO_DATA_ERRORS );
TpctlDumpEquality( *B,OID,OID_LTALK_RANDOM_CTS_ERRORS );
TpctlDumpEquality( *B,OID,OID_LTALK_FCS_ERRORS );
*/
}
VOID
TpctlDumpHardWareStatus(
LPSTR *B,
DWORD Status
)
{
TpctlDumpNewLine( *B );
TpctlDumpEquality( *B,Status,NdisHardwareStatusClosing );
TpctlDumpEquality( *B,Status,NdisHardwareStatusInitializing );
TpctlDumpEquality( *B,Status,NdisHardwareStatusNotReady );
TpctlDumpEquality( *B,Status,NdisHardwareStatusReady );
TpctlDumpEquality( *B,Status,NdisHardwareStatusReset );
TpctlDumpNewLine( *B );
}
VOID
TpctlDumpPacketFilter(
LPSTR *B,
DWORD PacketFilter
)
{
TpctlDumpNewLine( *B );
TpctlDumpBitfield( *B,PacketFilter,NDIS_PACKET_TYPE_DIRECTED );
TpctlDumpBitfield( *B,PacketFilter,NDIS_PACKET_TYPE_MULTICAST );
TpctlDumpBitfield( *B,PacketFilter,NDIS_PACKET_TYPE_ALL_MULTICAST );
TpctlDumpBitfield( *B,PacketFilter,NDIS_PACKET_TYPE_BROADCAST );
TpctlDumpBitfield( *B,PacketFilter,NDIS_PACKET_TYPE_SOURCE_ROUTING );
TpctlDumpBitfield( *B,PacketFilter,NDIS_PACKET_TYPE_PROMISCUOUS );
TpctlDumpBitfield( *B,PacketFilter,NDIS_PACKET_TYPE_MAC_FRAME );
TpctlDumpBitfield( *B,PacketFilter,NDIS_PACKET_TYPE_GROUP );
TpctlDumpBitfield( *B,PacketFilter,NDIS_PACKET_TYPE_FUNCTIONAL );
TpctlDumpBitfield( *B,PacketFilter,NDIS_PACKET_TYPE_ALL_FUNCTIONAL );
TpctlDumpNewLine( *B );
}
VOID
TpctlDumpNdisMedium(
LPSTR *B,
DWORD NdisMedium
)
{
TpctlDumpEquality( *B,NdisMedium,NdisMedium802_3 );
TpctlDumpEquality( *B,NdisMedium,NdisMedium802_5 );
TpctlDumpEquality( *B,NdisMedium,NdisMediumFddi );
//
// STARTCHANGE ARCNET
//
TpctlDumpEquality( *B,NdisMedium,NdisMediumArcnet878_2 );
//
// STOPCHANGE ARCNET
//
}
VOID
TpctlPrintQueryInfoResults(
PREQUEST_RESULTS Results,
DWORD CmdCode,
NDIS_OID OID
)
/*++
Routine Description:
Arguments:
Return Value:
--*/
{
DWORD Status;
LPSTR TmpBuf;
LPBYTE Address;
LPDWORD Counters;
DWORD BytesWritten;
DWORD i;
DWORD Number;
LPDWORD Supported;
//ASSERT( Results->Signature == REQUEST_RESULTS_SIGNATURE );
//ASSERT(( Results->NdisRequestType == NdisRequestQueryInformation ) ||
// ( Results->NdisRequestType == NdisRequestQueryStatistics ));
//ASSERT( Results->OID == OID );
TmpBuf = GlobalBuf;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tCmdCode = %s\n\n",
TpctlGetCmdCode( CmdCode ));
TmpBuf += (BYTE)sprintf(TmpBuf,"\t OID = 0x%08lX\n",OID);
TpctlDumpOID( &TmpBuf,OID );
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tReturn Status = %s\n",
TpctlGetStatus( Results->RequestStatus ));
TmpBuf += (BYTE)sprintf(TmpBuf,"\tRequest Pended = %s",
Results->RequestPended ? "TRUE" : "FALSE");
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
if (( Results->RequestStatus != NDIS_STATUS_SUCCESS ) &&
( Results->RequestStatus != NDIS_STATUS_NOT_SUPPORTED )) {
TmpBuf += (BYTE)sprintf(TmpBuf,"\tBytesWritten = %d\n",
Results->BytesReadWritten);
TmpBuf += (BYTE)sprintf(TmpBuf,"\tBytesNeeded = %d\n\n",
Results->BytesNeeded);
} else if ( Results->RequestStatus == NDIS_STATUS_SUCCESS ) {
switch ( Results->OID ) {
//
// GENERAL OBJECTS
//
//
// General Operational Characteristics
//
case OID_GEN_SUPPORTED_LIST: // 0x00010101
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tSupported OIDs are:\n\n");
Number = Results->BytesReadWritten / sizeof( DWORD );
Supported = (LPDWORD)Results->InformationBuffer;
for ( i=0;i<Number;i++ ) {
TpctlDumpOID( &TmpBuf,*Supported++ );
}
ADD_DIFF_FLAG( TmpBuf, "\t MAY_DIFFER" );
break;
case OID_GEN_HARDWARE_STATUS: // 0x00010102
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tHardware Status = 0x%lx\n",
*(LPDWORD)Results->InformationBuffer);
TpctlDumpHardWareStatus( &TmpBuf,*(LPDWORD)Results->InformationBuffer );
break;
case OID_GEN_MEDIA_SUPPORTED: // 0x00010103
case OID_GEN_MEDIA_IN_USE: // 0x00010104
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tMedia Types Supported are:\n\n");
Number = Results->BytesReadWritten / sizeof( DWORD );
Supported = (LPDWORD)Results->InformationBuffer;
for ( i=0;i<Number;i++ ) {
TpctlDumpNdisMedium( &TmpBuf,*Supported++ );
}
break;
case OID_GEN_MAXIMUM_LOOKAHEAD: // 0x00010105
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tMaximum Lookahead Size = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_MAXIMUM_FRAME_SIZE: // 0x00010106
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tMaximum Frame Size = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_LINK_SPEED: // 0x00010107
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLink Speed (bps) = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_TRANSMIT_BUFFER_SPACE: // 0x00010108
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tTransmit Buffer Space = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_RECEIVE_BUFFER_SPACE: // 0x00010109
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tReceive Buffer Space = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_TRANSMIT_BLOCK_SIZE: // 0x0001010A
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tTransmit Block Size = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_RECEIVE_BLOCK_SIZE: // 0x0001010B
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tReceive Block Size = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_VENDOR_ID: // 0x0001010C
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tVendor ID = %u",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_VENDOR_DESCRIPTION: // 0x0001010D
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tVendor Description = %s",
(PCHAR)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER");
break;
case OID_GEN_DRIVER_VERSION: // 0x00010110
{
LPBYTE Version = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tDriver Version Number = %d.%d\n",
Version[1],Version[0]);
break;
}
case OID_GEN_CURRENT_PACKET_FILTER: // 0x0001010E
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tCurrent Packet Filter = 0x%lx\n",
*(LPDWORD)Results->InformationBuffer);
TpctlDumpPacketFilter( &TmpBuf,*(LPDWORD)Results->InformationBuffer );
break;
case OID_GEN_CURRENT_LOOKAHEAD: // 0x0001010F
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tCurrent Lookahead Size = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_MAXIMUM_TOTAL_SIZE: // 0x00010111
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tMaximum Total Size = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_PROTOCOL_OPTIONS: // 0x00010112
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tGeneral Protocol Options = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_MAC_OPTIONS: // 0x00010113
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tGeneral MAC Options = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
//
// General Statitics - Mandatory
//
case OID_GEN_XMIT_OK: // 0x00020101
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrame Transmits - OK = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_RCV_OK: // 0x00020102
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrame Receives - OK = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_XMIT_ERROR: // 0x00020103
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrame Tranmsits With Error = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_RCV_ERROR: // 0x00020104
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrame Receives With Error = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_RCV_NO_BUFFER: // 0x00020105
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrames Missed, No Buffers = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
//
// General Statitics - Optional
//
case OID_GEN_DIRECTED_BYTES_XMIT: // 0x00020201
Counters = (LPDWORD)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tDirected Bytes Transmitted - OK = 0x%08lX - 0x%08lX",
Counters[1],Counters[0]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_DIRECTED_FRAMES_XMIT: // 0x00020202
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tDirected Frames Transmitted - OK = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_MULTICAST_BYTES_XMIT: // 0x00020203
Counters = (LPDWORD)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tMulticast Bytes Transmitted - OK = 0x%08lX - 0x%08lX",
Counters[1],Counters[0]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_MULTICAST_FRAMES_XMIT: // 0x00020204
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tMulticast Frames Transmitted - OK = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_BROADCAST_BYTES_XMIT: // 0x00020205
Counters = (LPDWORD)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tBroadcast Bytes Transmitted - OK = 0x%08lX - 0x%08lX",
Counters[1],Counters[0]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_BROADCAST_FRAMES_XMIT: // 0x00020206
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tBroadcast Frames Transmitted - OK = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_DIRECTED_BYTES_RCV: // 0x00020207
Counters = (LPDWORD)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tDirected Bytes Received - OK = 0x%08lX - 0x%08lX",
Counters[1],Counters[0]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_DIRECTED_FRAMES_RCV: // 0x00020208
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tDirected Frames Received - OK = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_MULTICAST_BYTES_RCV: // 0x00020209
Counters = (LPDWORD)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tMulticast Bytes Received - OK = 0x%08lX - 0x%08lX",
Counters[1],Counters[0]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_MULTICAST_FRAMES_RCV: // 0x0002020A
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tMulticast Frames Received - OK = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_BROADCAST_BYTES_RCV: // 0x0002020B
Counters = (LPDWORD)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tBroadcast Bytes Received - OK = 0x%08lX - 0x%08lX",
Counters[1],Counters[0]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_BROADCAST_FRAMES_RCV: // 0x0002020C
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tBroadcast Frames Received - OK = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_RCV_CRC_ERROR: // 0x0002020D
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrames Received With CRC/FCS Errors = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_GEN_TRANSMIT_QUEUE_LENGTH: // 0x0002020E
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLength of Tramsit Queue = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
//
// 802.3 OBJECTS
//
//
// 802.3 Operation Characteristics
//
case OID_802_3_PERMANENT_ADDRESS: // 0x01010101
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tPermanent Station Address = %02X-%02X-%02X-%02X-%02X-%02X",
Address[0],Address[1],Address[2],Address[3],Address[4],Address[5]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_3_CURRENT_ADDRESS: // 0x01010102
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tCurrent Station Address = %02X-%02X-%02X-%02X-%02X-%02X\n",
Address[0],Address[1],Address[2],Address[3],Address[4],Address[5]);
break;
case OID_802_3_MULTICAST_LIST: // 0x01010103
Number = Results->BytesReadWritten / ADDRESS_LENGTH;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tMulticast Address List:\n\n");
if ( Number == 0 ) {
TmpBuf += (BYTE)sprintf(TmpBuf,"\t\tNone.\n");
} else {
Address = (LPBYTE)&Results->InformationBuffer;
for ( i=0;i<Number;i++ ) {
TmpBuf += (BYTE)sprintf(TmpBuf,"\t\t%02X-%02X-%02X-%02X-%02X-%02X\n",
Address[0],Address[1],Address[2],Address[3],Address[4],Address[5]);
Address += (BYTE)ADDRESS_LENGTH;
}
}
break;
case OID_802_3_MAXIMUM_LIST_SIZE: // 0x01010104
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tMaximum Multicast List Size = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
//
// 802.3 Statitics - Mandatory
//
case OID_802_3_RCV_ERROR_ALIGNMENT: // 0x01020101
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrames Received With Alignment Error = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_3_XMIT_ONE_COLLISION: // 0x01020102
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrames Transmitted With One Collision = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_3_XMIT_MORE_COLLISIONS: // 0x01020103
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrames Transmitted With Greater Than One Collision = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
//
// 802.3 Statitics - Optional
//
case OID_802_3_XMIT_DEFERRED: // 0x01020201
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrames Transmitted After Deferral = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_3_XMIT_MAX_COLLISIONS: // 0x01020202
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrames Not Transmitted Due To Collisions = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_3_RCV_OVERRUN: // 0x01020203
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrames Not Received Due To Overrun = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_3_XMIT_UNDERRUN: // 0x01020204
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrames Not Transmitted Due To Underrun = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_3_XMIT_HEARTBEAT_FAILURE: // 0x01020205
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrames Transmitted With Heartbeat Failure = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_3_XMIT_TIMES_CRS_LOST: // 0x01020206
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tTimes CRC Lost During Transmit = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_3_XMIT_LATE_COLLISIONS: // 0x01020207
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLate Collisions Detected = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
//
// 802.5 OBJECTS
//
//
// 802.5 Operation Characteristics
//
case OID_802_5_PERMANENT_ADDRESS: // 0x02010101
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tPermanent Station Address = %02X-%02X-%02X-%02X-%02X-%02X",
Address[0],Address[1],Address[2],Address[3],Address[4],Address[5]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_5_CURRENT_ADDRESS: // 0x02010102
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tCurrent Station Address = %02X-%02X-%02X-%02X-%02X-%02X\n",
Address[0],Address[1],Address[2],Address[3],Address[4],Address[5]);
break;
case OID_802_5_CURRENT_FUNCTIONAL: // 0x02010103
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tCurrent Functional Address = %02X-%02X-%02X-%02X\n",
Address[0],Address[1],Address[2],Address[3]);
break;
case OID_802_5_CURRENT_GROUP: // 0x02010104
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tCurrent Group Address = %02X-%02X-%02X-%02X\n",
Address[0],Address[1],Address[2],Address[3]);
break;
case OID_802_5_LAST_OPEN_STATUS: // 0x02010105
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLast Open Status = %d",
*(LPWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_5_CURRENT_RING_STATUS: // 0x02010106
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tCurrent Ring Status = %d",
*(LPWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_5_CURRENT_RING_STATE: // 0x02010107
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tCurrent Ring State = %d",
*(LPWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
//
// 802.5 Statitics - Mandatory
//
case OID_802_5_LINE_ERRORS: // 0x02020101
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLine Errors Detected= %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_5_LOST_FRAMES: // 0x02020102
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLost Frames = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
//
// 802.5 Statitics - Optional
//
case OID_802_5_BURST_ERRORS: // 0x02020201
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tBurst Errors Detected = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_5_AC_ERRORS: // 0x02020202
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tA/C Errors = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_5_ABORT_DELIMETERS: // 0x02020203
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tAbort Delimeter Detected = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_5_FRAME_COPIED_ERRORS: // 0x02020204
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrame Copied Errors = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_5_FREQUENCY_ERRORS: // 0x02020205
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrequency Errors Detected = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_5_TOKEN_ERRORS: // 0x02020206
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tToken Errors = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_802_5_INTERNAL_ERRORS: // 0x02020207
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tInternal Errors = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
//
// FDDI
//
case OID_FDDI_LONG_PERMANENT_ADDR : // 0x03010101
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLong Permanent Station Address = %02X-%02X-%02X-%02X-%02X-%02X",
Address[0],Address[1],Address[2],Address[3],Address[4],Address[5]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_LONG_CURRENT_ADDR : // 0x03010102
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLong Current Station Address = %02X-%02X-%02X-%02X-%02X-%02X\n",
Address[0],Address[1],Address[2],Address[3],Address[4],Address[5]);
break;
case OID_FDDI_LONG_MULTICAST_LIST : // 0x03010103
Number = Results->BytesReadWritten / ADDRESS_LENGTH;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLong Multicast Address List:\n\n");
if ( Number == 0 ) {
TmpBuf += (BYTE)sprintf(TmpBuf,"\t\tNone.\n");
} else {
Address = (LPBYTE)&Results->InformationBuffer;
for ( i=0;i<Number;i++ ) {
TmpBuf += (BYTE)sprintf(TmpBuf,"\t\t%02X-%02X-%02X-%02X-%02X-%02X\n",
Address[0],Address[1],Address[2],Address[3],Address[4],Address[5]);
Address += (BYTE)ADDRESS_LENGTH;
}
}
break;
case OID_FDDI_LONG_MAX_LIST_SIZE : // 0x03010104
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLong Maximum Multicast List Size = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_SHORT_PERMANENT_ADDR : // 0x03010105
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tShort Permanent Station Address = %02X-%02X",
Address[0],Address[1]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_SHORT_CURRENT_ADDR : // 0x03010106
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tShort Current Station Address = %02X-%02X\n",
Address[0],Address[1]);
break;
case OID_FDDI_SHORT_MULTICAST_LIST : // 0x03010107
Number = Results->BytesReadWritten / ADDRESS_LENGTH;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tShort Multicast Address List:\n\n");
if ( Number == 0 ) {
TmpBuf += (BYTE)sprintf(TmpBuf,"\t\tNone.\n");
} else {
Address = (LPBYTE)&Results->InformationBuffer;
for ( i=0;i<Number;i++ ) {
TmpBuf += (BYTE)sprintf(TmpBuf,"\t\t%02X-%02X\n",
Address[0],Address[1]);
Address += (BYTE)ADDRESS_LENGTH;
}
}
break;
case OID_FDDI_SHORT_MAX_LIST_SIZE: // 0x03010108
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tShort Maximum Multicast List Size = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_ATTACHMENT_TYPE: // 0x03020101
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tAttachment Type = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_UPSTREAM_NODE_LONG: // 0x03020102
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLong Upstream Node Address = %02X-%02X-%02X-%02X-%02X-%02X",
Address[0],Address[1],Address[2],Address[3],Address[4],Address[5]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_DOWNSTREAM_NODE_LONG: // 0x03020103
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLong Downstream Node Address = %02X-%02X-%02X-%02X-%02X-%02X",
Address[0],Address[1],Address[2],Address[3],Address[4],Address[5]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_FRAME_ERRORS: // 0x03020104
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrame Errors = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_FRAMES_LOST: // 0x03020105
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tFrames Lost = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_RING_MGT_STATE: // 0x03020106
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tRing Management State = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_LCT_FAILURES: // 0x03020107
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLCT Failures = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_LEM_REJECTS: // 0x03020108
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tLEM Rejects = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_FDDI_LCONNECTION_STATE: // 0x03020109
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tL Connection State = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
//
// STARTCHANGE ARCNET
//
case OID_ARCNET_PERMANENT_ADDRESS: // 0x06010101
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tPermanent Station Address = %02X", Address[0]);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
case OID_ARCNET_CURRENT_ADDRESS: // 0x06010102
Address = (LPBYTE)&Results->InformationBuffer;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tCurrent Station Address = %02X\n", Address[0]);
break;
case OID_ARCNET_RECONFIGURATIONS: // 0x06010103
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tReconfigurations = %d",
*(LPDWORD)Results->InformationBuffer);
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
break;
//
// STOPCHANGE ARCNET
//
default:
TmpBuf +=(BYTE)sprintf(TmpBuf,"\tInvalid OID or OID not yet supported.\n");
break;
}
}
if (( CommandsFromScript ) || ( CommandLineLogging )) {
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\t**********************************");
}
TmpBuf += (BYTE)sprintf(TmpBuf,"\n");
if ( Verbose ) {
if ( !WriteFile(
GetStdHandle( STD_OUTPUT_HANDLE ),
GlobalBuf,
(TmpBuf-GlobalBuf),
&BytesWritten,
NULL
)) {
Status = GetLastError();
TpctlErrorLog("\n\tTpctl: WriteFile to screen failed, returned 0x%lx\n",(PVOID)Status);
}
}
if ( CommandsFromScript ) {
if ( !WriteFile(
Scripts[ScriptIndex].LogHandle,
GlobalBuf,
(TmpBuf-GlobalBuf),
&BytesWritten,
NULL
)) {
Status = GetLastError();
TpctlErrorLog("\n\tTpctl: WriteFile to logfile failed, returned 0x%lx\n",(PVOID)Status);
}
} else if ( CommandLineLogging ) {
if ( !WriteFile(
CommandLineLogHandle,
GlobalBuf,
(TmpBuf-GlobalBuf),
&BytesWritten,
NULL
)) {
Status = GetLastError();
TpctlErrorLog("\n\tTpctl: WriteFile to logfile failed, returned 0x%lx\n",(PVOID)Status);
}
}
}
VOID
TpctlPrintSetInfoResults(
PREQUEST_RESULTS Results,
DWORD CmdCode,
NDIS_OID OID
)
/*++
Routine Description:
Arguments:
Return Value:
--*/
{
DWORD Status;
LPSTR TmpBuf;
DWORD BytesWritten;
BOOL ErrorReturned = FALSE;
//ASSERT( Results->Signature == REQUEST_RESULTS_SIGNATURE );
//ASSERT( Results->NdisRequestType == NdisRequestSetInformation );
//ASSERT( Results->OID == OID );
TmpBuf = GlobalBuf;
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tCmdCode = %s\n\n",
TpctlGetCmdCode( CmdCode ));
TmpBuf += (BYTE)sprintf(TmpBuf,"\t OID = 0x%08lX\n",OID);
TpctlDumpOID( &TmpBuf,OID );
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\tReturn Status = %s\n",
TpctlGetStatus( Results->RequestStatus ));
if ( Results->RequestStatus != STATUS_SUCCESS ) {
ErrorReturned = TRUE;
}
TmpBuf += (BYTE)sprintf(TmpBuf,"\tRequest Pended = %s",
Results->RequestPended ? "TRUE" : "FALSE");
ADD_DIFF_FLAG( TmpBuf, "\tMAY_DIFFER" );
if ( Results->RequestStatus != NDIS_STATUS_SUCCESS ) {
TmpBuf += (BYTE)sprintf(TmpBuf,"\tBytesRead = %d\n",
Results->BytesReadWritten);
TmpBuf += (BYTE)sprintf(TmpBuf,"\tBytesNeeded = %d\n",
Results->BytesNeeded);
}
if (( CommandsFromScript ) || ( CommandLineLogging )) {
TmpBuf += (BYTE)sprintf(TmpBuf,"\n\t**********************************");
}
TmpBuf += (BYTE)sprintf(TmpBuf,"\n");
if ( Verbose ) {
if ( !WriteFile(
GetStdHandle( STD_OUTPUT_HANDLE ),
GlobalBuf,
(TmpBuf-GlobalBuf),
&BytesWritten,
NULL
)) {
Status = GetLastError();
TpctlErrorLog("\n\tTpctl: WriteFile to screen failed, returned 0x%lx\n",(PVOID)Status);
}
}
if (( CommandsFromScript ) &&
((( !Verbose ) && ( ErrorReturned )) || ( Verbose ))) {
if( !WriteFile(
Scripts[ScriptIndex].LogHandle,
GlobalBuf,
(TmpBuf-GlobalBuf),
&BytesWritten,
NULL
)) {
Status = GetLastError();
TpctlErrorLog("\n\tTpctl: WriteFile to logfile failed, returned 0x%lx\n",(PVOID)Status);
}
} else if ( CommandLineLogging ) {
if( !WriteFile(
CommandLineLogHandle,
GlobalBuf,
(TmpBuf-GlobalBuf),
&BytesWritten,
NULL
)) {
Status = GetLastError();
TpctlErrorLog("\n\tTpctl: WriteFile to logfile failed, returned 0x%lx\n",(PVOID)Status);
}
}
}