Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

713 lines
24 KiB

/***************************************************************************
*
* File Name: ./netware/nwdiag.h
*
* Copyright (C) 1993-1996 Hewlett-Packard Company.
* All rights reserved.
*
* 11311 Chinden Blvd.
* Boise, Idaho 83714
*
* This is a part of the HP JetAdmin Printer Utility
*
* This source code is only intended as a supplement for support and
* localization of HP JetAdmin by 3rd party Operating System vendors.
* Modification of source code cannot be made without the express written
* consent of Hewlett-Packard.
*
*
* Description:
*
* Author: Name
*
*
* Modification history:
*
* date initials change description
*
* mm-dd-yy MJB
*
*
*
*
*
*
***************************************************************************/
/* (c) COPYRIGHT 1988-1991 by Novell, Inc. All Rights Reserved. */
#ifndef _DIAG_H
#define _DIAG_H
#ifndef ECB_STRUCTURES_DEFINED
#define ECB_STRUCTURES_DEFINED
typedef struct ECBFragment
{
void far *address;
WORD size; /* low-high */
} ECBFragment;
typedef struct ECB
{
WORD linkAddress[2]; /* offset-segment */
WORD ESRAddress[2]; /* offset-segment */
BYTE inUseFlag;
BYTE completionCode;
WORD socketNumber; /* high-low */
BYTE IPXWorkspace[4]; /* N/A */
BYTE driverWorkspace[12]; /* N/A */
BYTE immediateAddress[6]; /* high-low */
WORD fragmentCount; /* low-high */
ECBFragment fragmentDescriptor[2];
} ECB;
#endif
#ifndef _NXT_H
#include ".\nxtw.h"
#endif
#define MAX_NETWORKS 120
#define MAX_SERVERS 150
#define MAX_NODES 120
#define MAX_EXCLUSIONS 80
#define MAX_COMPONENTS 10
#define MAX_LOCAL_NETWORKS 4
#define MAX_ROUTES 47
#define MAX_IPX_PACKET_SIZE 576
#define IPX_SPX_COMPONENT 0
#define BRIDGE_DRIVER_COMPONENT 1
#define SHELL_DRIVER_COMPONENT 2
#define SHELL_COMPONENT 3
#define VAP_SHELL_COMPONENT 4
#define BRIDGE_COMPONENT 5
#define FILE_SERVER_COMPONENT 6
#define NONDEDICATED_IPX_SPX_COMPONENT 7
#define IPX_ONLY 8
#define NO_ERRORS 0x00
#define COULD_NOT_GET_LOCAL_TARGET 0xFF
#define COULD_NOT_OPEN_SOCKET 0xFE
#define COULD_NOT_BEGIN_CONNECTION 0xFD
#define COULD_NOT_ESTABLISH_CONNECTION 0xFC
#define COULD_NOT_TERMINATE_CONNECTION 0xFB
#define BAD_CONNECTION_ID 0xFA
#define COULD_NOT_SEND_REQUEST 0xF9
#define RECEIVED_REPLY_IN_ERROR 0xF8
#define NETWORK_NOT_FOUND 0xEF
#define NO_RESPONSE_FROM_DESTINATION 0xEE
#define RESPONSE_COMPLETION_CODE_BAD 0xED
#define LIST_SIZE_TOO_SMALL 0xEC
#define INTERNAL_LIST_ERROR 0xEB
#define NODE_NOT_FOUND_OR_NO_RESPONSE 0xEA
#define MEMORY_ALLOCATION_ERROR 0xDF
#define VERSION_DOES_NOT_SUPPORT 0xDE
typedef struct IPXAddress BeginDiagnosticStruct;
typedef struct StructIPXPacket
{
BYTE data[MAX_IPX_PACKET_SIZE - sizeof(IPXHeader)];
} IPXPacket;
typedef struct StructSPXPacket
{
BYTE data[MAX_IPX_PACKET_SIZE - sizeof(SPXHeader)];
} SPXPacket;
typedef struct StructExclusionList
{
BYTE nodeAddress[6];
}ExclusionListStruct;
typedef struct StructExclusionPacket
{
BYTE numberOfExclusions;
ExclusionListStruct structureArray[MAX_EXCLUSIONS];
}ExclusionPacketStructure;
typedef struct StructAddr
{
BYTE network[4];
BYTE node[6];
} AddrStruct;
struct StructDriver
{
BYTE localNetworkType;
BYTE network[4];
BYTE node[6];
};
typedef struct StructBridge
{
BYTE numberOfNets;
struct StructDriver bridge[MAX_LOCAL_NETWORKS];
} BridgeStruct;
typedef struct StructNode
{
char name[12];
BeginDiagnosticStruct target;
BYTE numberOfComponents;
BYTE componentID[MAX_COMPONENTS];
BridgeStruct *bridgePtr;
} NodeStruct;
typedef struct StructConfigurationResponse
{
AddrStruct address;
struct
{
BYTE majorVersion;
BYTE minorVersion;
WORD SPXDiagnosticSocket;
BYTE numberOfComponents;
BYTE componentStructure[MAX_IPX_PACKET_SIZE -
sizeof(IPXHeader) - sizeof(AddrStruct) - 3];
} packet;
} ConfigurationResponseStruct;
typedef struct StructAllResp
{
BYTE completionCode;
long intervalMarker;
} AllResponseData;
typedef struct StructIPXSPXVersion
{
BYTE IPXMajorVersion;
BYTE IPXMinorVersion;
BYTE SPXMajorVersion;
BYTE SPXMinorVersion;
} IPXSPXVersion;
typedef struct StructIPXStatistics
{
long sendPacketCount;
WORD malformedPacketCount;
long getECBRequestCount;
long getECBFailureCount;
long AESEventCount;
WORD postponedAESEventCount;
WORD maxConfiguredSocketsCount;
WORD maxOpenSocketsCount;
WORD openSocketFailureCount;
long listenECBCount;
WORD ECBCancelFailureCount;
WORD findRouteFailureCount;
} IPXStatisticsStruct;
typedef struct StructSPXStatistics
{
WORD maxConnectionsCount;
WORD maxUsedConnectionsCount;
WORD establishConnectionRequest;
WORD establishConnectionFailure;
WORD listenConnectionRequestCount;
WORD listenConnectionFailureCount;
long sendPacketCount;
long windowChokeCount;
WORD badSendPacketCount;
WORD sendFailureCount;
WORD abortConnectionCount;
long listenPacketCount;
WORD badListenPacketCount;
long incomingPacketCount;
WORD badIncomingPacketCount;
WORD suppressedPacketCount;
WORD noSessionListenECBCount;
WORD watchdogDestroySessionCount;
} SPXStatisticsStruct;
typedef struct SPReq
{
BeginDiagnosticStruct target;
BYTE immediateAddress[6];
WORD numberOfPackets;
BYTE timerTickInterval;
BYTE packetsPerTickInterval;
WORD packetSize;
WORD changeSize;
} SendPacketsRequestStruct;
typedef struct SPResp
{
WORD numberOfTransmitErrors;
} SendPacketsResponseStruct;
typedef struct StructStartCountingPackets
{
WORD destinationSocket;
} StartCountingPacketsStruct;
typedef struct StructReturnReceivedPacket
{
WORD packetsReceived;
} ReturnReceivedPacketStruct;
typedef BYTE status;
typedef struct StructBridgeDriverStatus
{
status LANBoard[4];
} BridgeDriverStatusStruct;
typedef struct StructDriverConf
{
BYTE networkAddress[4];
BYTE nodeAddress[6];
BYTE LANMode;
BYTE nodeAddressType;
WORD maxDataSize;
WORD reserved1;
BYTE LANHardwareID;
WORD transportTime;
BYTE reserved2[11];
BYTE majorVersion;
BYTE minorVersion;
BYTE ethernetFlagBits;
BYTE selectedConfiguration;
BYTE LANDescription[80];
WORD IOAddress1;
WORD IODecodeRange1;
WORD IOAddress2;
WORD IODecodeRange2;
BYTE memoryAddress1[3];
WORD memoryDecodeRange1;
BYTE memoryAddress2[3];
WORD memoryDecodeRange2;
BYTE interruptIsUsed1;
BYTE interruptLine1;
BYTE interruptIsUsed2;
BYTE interruptLine2;
BYTE DMAIsUsed1;
BYTE DMALine1;
BYTE DMAIsUsed2;
BYTE DMALine2;
BYTE microChannelFlagBits;
BYTE reserved3;
BYTE textDescription[80];
} DriverConfigurationStruct;
typedef struct StructDriverStat
{
BYTE driverVersion[2];
BYTE statisticsVersion[2];
long totalTxPacketCount;
long totalRxPacketCount;
WORD noECBAvailableCount;
WORD packetTxTooBigCount;
WORD packetTxTooSmallCount;
WORD packetRxOverflowCount;
WORD packetRxTooBigCount;
WORD packetRxTooSmallCount;
WORD packetTxMiscErrorCount;
WORD packetRxMiscErrorCount;
WORD retryTxCount;
WORD checksumErrorCount;
WORD hardwareRxMismatchCount;
WORD numberOfCustomVariables;
BYTE variableData[495];
/* BYTE variableData[1]; */
} DriverStatisticsStruct;
typedef struct StructOSVersion
{
BYTE machineID;
BYTE versionData[41];
} OSVersionStruct;
typedef struct IPXAddress ShellAddressStruct;
typedef struct StructShellStatistics
{
long shellRequestsCount;
WORD operatorAbortsCount;
WORD operatorRetriesCount;
WORD timeoutsCount;
WORD writeErrorCount;
WORD invalidReplyHeaderCount;
WORD invalidSlotCount;
WORD invalidSequenceNumberCount;
WORD errorReceivingCount;
WORD noRouterFoundCount;
WORD beingProcessedCount;
WORD unknownErrorCount;
WORD invalidServerSlotCount;
WORD networkGoneCount;
WORD reserved1;
WORD allocateCannotFindRouteCount;
WORD allocateNoSlotsAvailableCount;
WORD allocateServerIsDownCount;
} ShellStatisticsStruct;
typedef struct StructAddressTable
{
BYTE serverUsed;
BYTE orderNumber;
BYTE serverNetwork[4];
BYTE serverNode[6];
WORD serverSocket;
WORD receivedTimeOut;
BYTE immediateNode[6];
BYTE sequenceNumber;
BYTE connectionNumber;
BYTE connectionOK;
WORD maximumTimeOut;
BYTE reserved[5];
} AddressTableStruct;
typedef struct StructServerAddressTable
{
AddressTableStruct addressTable[8];
} ServerAddressTableStruct;
typedef struct StructNameTable
{
BYTE name[48];
} NameTableStruct;
typedef struct StructServerNameTable
{
NameTableStruct nameTable[8];
} ServerNameTableStruct;
typedef struct StructPrimaryServer
{
BYTE number;
} PrimaryServerStruct;
typedef struct StructShellVersion
{
BYTE minor;
BYTE major;
BYTE rev;
} ShellVersionStruct;
typedef struct StructBridgeStatistics
{
WORD tooManyHopsCount;
WORD unknownNetworkCount;
WORD noSpaceForServiceCount;
WORD noReceiveBuffersCount;
WORD notMyNetwork;
long netBIOSPropogateCount;
long totalPacketsServiced;
long totalPacketsRouted;
} BridgeStatisticsStruct;
typedef struct StructNumber
{
BYTE number[4];
} NumberStruct;
typedef struct StructNodeAddress
{
BYTE address[6];
BYTE reserved[2];
} NodeAddressStruct;
typedef struct StructLocalTables
{
NumberStruct localNetworkNumber[16];
NodeAddressStruct localNodeAddress[16];
} LocalTablesStruct;
typedef struct StructNetworkAddress
{
BYTE address[4];
} NetworkAddressStruct;
typedef struct StructAllKnownNetworks
{
WORD numberOfNetworkAddresses;
NetworkAddressStruct networkAddress[128];
} AllKnownNetworksStruct;
typedef struct StructRoutingInfo
{
BYTE routerForwardingAddress[6];
BYTE routerBoardNumber;
BYTE reserved[2];
BYTE routeHops;
WORD routeTime;
} RoutingInfoStruct;
typedef struct StructSpecificNetInfo
{
BYTE networkAddress[4];
BYTE hopsToNet;
BYTE reservedA[7];
WORD routeTimeToNet;
WORD numberOfKnownRouters;
RoutingInfoStruct routingInfo[MAX_ROUTES];
} SpecificNetworkInfoStruct;
typedef struct StrSrvrInfo
{
WORD serverType;
BYTE serverName[48];
} ServerInfoStruct;
typedef struct StructAllKnownServers
{
WORD numberOfServers;
ServerInfoStruct serverInfo[10];
} AllKnownServersStruct;
typedef struct StructRouteSourceInfo
{
BYTE routeSourceAddress[6];
WORD routeHopsToSource;
BYTE reserved[2];
} RouteSourceInfoStruct;
typedef struct StrSpecSrvrInfo
{
ServerInfoStruct serverInfo;
BYTE serverAddress[12];
WORD hopsToServer;
BYTE reserved1[2];
WORD numberOfRoutes;
RouteSourceInfoStruct routeSourceInfo[MAX_ROUTES];
} SpecificServerInfoStruct;
typedef struct StructConnectionStatusBlock
{
BYTE connectionState;
BYTE connectionFlags;
BYTE sourceConnectionID[2]; /* hi-lo */
BYTE destinationConnectionID[2]; /* hi-lo */
BYTE sequenceNumber[2]; /* hi-lo */
BYTE acknowledgeNumber[2]; /* hi-lo */
BYTE allocationNumber[2]; /* hi-lo */
BYTE remoteAcknowledgeNumber[2]; /* hi-lo */
BYTE remoteAllocationNumber[2]; /* hi-lo */
WORD connectionSocket; /* hi-lo */
BYTE immediateAddress[6]; /* hi-lo */
struct IPXAddress destination;
BYTE retransmissionCount[2]; /* hi-lo */
BYTE estimatedRoundTripDelay[2]; /* hi-lo */
BYTE retransmittedPackets[2]; /* hi-lo */
BYTE suppressedPackets[2]; /* hi-lo */
} ConnectionStatusBlock;
#define RESPONSE_ECBS 4
#ifndef REQUEST_SIZE
# define REQUEST_SIZE 2
#endif
#ifdef DIAGNOSTIC_DATA
int NWErrno = 0;
DWORD DiagIPXTaskID = 0xFFFFFFFE;
WORD dnumApps = 0;
SPXHeader responseHeader [RESPONSE_ECBS];
ECB responseECB [RESPONSE_ECBS];
BYTE responseData [RESPONSE_ECBS] [sizeof(SPXPacket)];
MSG diagmsg;
BYTE Request[sizeof(SPXPacket)];
#else
extern int NWErrno;
extern DWORD DiagIPXTaskID;
extern WORD dnumApps;
extern SPXHeader responseHeader [RESPONSE_ECBS];
extern ECB responseECB [RESPONSE_ECBS];
extern BYTE responseData [RESPONSE_ECBS] [sizeof(SPXPacket)];
extern MSG diagmsg;
extern BYTE Request[sizeof(SPXPacket)];
#endif
/*---------------------------- PROTOTYPES -----------------------------*/
extern int FAR PASCAL AbortSendingPackets(
WORD connectionID,
BYTE componentNumber);
extern int FAR PASCAL BeginDiagnostics (
BeginDiagnosticStruct FAR *destination,
WORD FAR *connectionID,
BYTE FAR *componentList);
extern int FAR PASCAL EndDiagnostics( WORD connectionID);
extern int FAR PASCAL GetAllKnownNetworks(
WORD connectionID,
BYTE componentNumber,
WORD nextNetworkOffset,
AllResponseData FAR *Response,
AllKnownNetworksStruct FAR *ResponseData);
extern int FAR PASCAL GetAllKnownServers(
WORD connectionID,
BYTE componentNumber,
WORD numberServersToSkip,
AllResponseData FAR *Response,
AllKnownServersStruct FAR *ResponseData);
extern int FAR PASCAL GetBridgeDriverConfiguration(
WORD connectionID,
BYTE componentNumber,
BYTE LANBoardNumber,
AllResponseData FAR *Response,
DriverConfigurationStruct FAR *ResponseData);
extern int FAR PASCAL GetBridgeDriverStatus(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
BridgeDriverStatusStruct FAR *ResponseData);
extern int FAR PASCAL GetBridgeDriverStatistics(
WORD connectionID,
BYTE componentNumber,
BYTE LANBoardNumber,
AllResponseData FAR *Response,
DriverStatisticsStruct FAR *ResponseData);
extern int FAR PASCAL GetBridgeStatistics(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
BridgeStatisticsStruct FAR *ResponseData);
extern int PASCAL GetDiagnosticResponse (
WORD connectionID,
BYTE FAR *buffer1,
WORD size1,
BYTE FAR *buffer2,
WORD size2);
extern int PASCAL GetDiagnosticStatus (WORD connectionID);
extern int FAR PASCAL GetIPXStatistics(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
IPXStatisticsStruct FAR *ResponseData);
extern int FAR PASCAL GetLocalTables(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
LocalTablesStruct FAR *ResponseData);
extern int FAR PASCAL GetOSVersionInfo(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
OSVersionStruct FAR *ResponseData);
extern int FAR PASCAL GetPrimaryServerNumber(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
PrimaryServerStruct FAR *ResponseData);
extern int FAR PASCAL GetRemoteSPXSocket(
BeginDiagnosticStruct FAR *destination,
BYTE FAR *cList );
extern int FAR PASCAL GetShellAddress(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
ShellAddressStruct FAR *ResponseData);
extern int FAR PASCAL GetServerAddressTable(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
ServerAddressTableStruct FAR *ResponseData);
extern int FAR PASCAL GetShellDriverConfiguration(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
DriverConfigurationStruct FAR *ResponseData);
extern int FAR PASCAL GetShellDriverStatistics(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
DriverStatisticsStruct FAR *ResponseData);
extern int FAR PASCAL GetSpecificNetworkInfo(
WORD connectionID,
BYTE componentNumber,
BYTE FAR *networkAddress,
AllResponseData FAR *Response,
SpecificNetworkInfoStruct FAR *ResponseData);
extern int FAR PASCAL GetServerNameTable(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
ServerNameTableStruct FAR *ResponseData);
extern int FAR PASCAL GetSPXStatistics(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
SPXStatisticsStruct FAR *ResponseData);
extern int FAR PASCAL GetSpecificServerInfo(
WORD connectionID,
BYTE componentNumber,
ServerInfoStruct FAR *Server,
AllResponseData FAR *Response,
SpecificServerInfoStruct FAR *ResponseData);
extern int FAR PASCAL GetShellStatistics(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
ShellStatisticsStruct FAR *ResponseData);
extern int FAR PASCAL GetShellVersionInfo(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
ShellVersionStruct FAR *ResponseData);
extern int FAR PASCAL GetIPXSPXVersion(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
IPXSPXVersion FAR *ResponseData);
extern BYTE FAR PASCAL FindComponentOffset(
BYTE FAR *componentList,
BYTE componentID );
extern int FAR PASCAL ReturnReceivedPacketCount(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
ReturnReceivedPacketStruct FAR *ResponseData);
extern int FAR PASCAL SendSPXPacket (
WORD connectionID,
BYTE FAR *buffer1,
WORD size1);
extern int FAR PASCAL StartCountingPkts(
WORD connectionID,
BYTE componentNumber,
AllResponseData FAR *Response,
StartCountingPacketsStruct FAR *ResponseData);
extern int FAR PASCAL StartSendingPktsTimed(
WORD connectionID,
BYTE componentNumber,
SendPacketsRequestStruct FAR *RequestData,
AllResponseData FAR *Response,
SendPacketsResponseStruct FAR *ResponseData,
WORD Ticks);
#endif