home *** CD-ROM | disk | FTP | other *** search
/ Network Support Encyclopedia 96-1 / novell-nsepro-1996-1-cd2.iso / download / netware / glttst.exe / NWDIAG.H < prev    next >
C/C++ Source or Header  |  1995-08-21  |  35KB  |  1,128 lines

  1. /*    (c) COPYRIGHT 1988-1991 by Novell, Inc.  All Rights Reserved.   */
  2. #ifndef _DIAG_H
  3. #define _DIAG_H
  4.  
  5. #ifndef _NXT_H
  6. #include <nxtw.h>
  7. #endif /* _NXT_H */
  8.  
  9. /* ------------------------ Defines ----------------------- */
  10. /* Limits */
  11. #define MAX_NETWORKS    120
  12. #define MAX_SERVERS     150
  13. #define MAX_NODES       120
  14. #define MAX_EXCLUSIONS  80
  15.  
  16. #define MAX_LOCAL_NETWORKS  4
  17. #define MAX_ROUTES          47
  18.  
  19. #define MAX_IPX_PACKET_SIZE 576
  20.  
  21. #define MAX_SERVER_NAME_LENGTH        16
  22. #define WORKGROUP_NAME_LENGTH         16
  23. #define OEM_NAME_LENGTH               16
  24.  
  25. /* Component IDs */
  26. #define IPX_SPX_COMPONENT              0
  27. #define BRIDGE_DRIVER_COMPONENT        1
  28. #define SHELL_DRIVER_COMPONENT         2
  29. #define SHELL_COMPONENT                3
  30. #define VAP_SHELL_COMPONENT            4
  31. #define BRIDGE_COMPONENT               5
  32. #define FILE_SERVER_COMPONENT          6
  33. #define NONDEDICATED_IPX_SPX_COMPONENT 7
  34. #define IPX_ONLY                       8
  35. #define GNMA_DOS_COMPONENT             9
  36. #define GNMA_OS2_COMPONENT            10
  37. #define NWLITE_SERVER_COMPONENT       11
  38. #define NWLITE_CACHE_COMPONENT        12
  39.  
  40. #define MAX_COMPONENTS                13
  41.  
  42. /* Error Codes */
  43. #define NO_ERRORS                       0x00
  44. #define COULD_NOT_GET_LOCAL_TARGET      0xFF
  45. #define COULD_NOT_OPEN_SOCKET           0xFE
  46. #define COULD_NOT_BEGIN_CONNECTION      0xFD
  47. #define COULD_NOT_ESTABLISH_CONNECTION  0xFC
  48. #define COULD_NOT_TERMINATE_CONNECTION  0xFB
  49. #define BAD_CONNECTION_ID               0xFA
  50. #define COULD_NOT_SEND_REQUEST          0xF9
  51. #define RECEIVED_REPLY_IN_ERROR         0xF8
  52. #define NETWORK_NOT_FOUND               0xEF
  53. #define NO_RESPONSE_FROM_DESTINATION    0xEE
  54. #define RESPONSE_COMPLETION_CODE_BAD    0xED
  55. #define LIST_SIZE_TOO_SMALL             0xEC
  56. #define INTERNAL_LIST_ERROR             0xEB
  57. #define NODE_NOT_FOUND_OR_NO_RESPONSE   0xEA
  58. #define MEMORY_ALLOCATION_ERROR         0xDF
  59. #define VERSION_DOES_NOT_SUPPORT        0xDE
  60.  
  61.  
  62. /* ------------------------ Structures ----------------------- */
  63. typedef struct IPXAddress BeginDiagnosticStruct;
  64.  
  65. typedef struct StructIPXPacket
  66. {
  67.     BYTE    data[MAX_IPX_PACKET_SIZE - sizeof(IPXHeader)];
  68. } IPXPacket;
  69.  
  70. typedef struct StructSPXPacket
  71. {
  72.     BYTE    data[MAX_IPX_PACKET_SIZE - sizeof(SPXHeader)];
  73. } SPXPacket;
  74.  
  75. typedef struct StructExclusionList
  76. {
  77.     BYTE    nodeAddress[6];
  78. } ExclusionListStruct;
  79.  
  80. typedef struct StructExclusionPacket
  81. {
  82.     BYTE                    numberOfExclusions;
  83.     ExclusionListStruct     structureArray[MAX_EXCLUSIONS];
  84. } ExclusionPacketStructure;
  85.  
  86. typedef struct StructAddr
  87. {
  88.     BYTE    network[4];
  89.     BYTE    node[6];
  90. } AddrStruct;
  91.  
  92. struct StructDriver
  93. {
  94.     BYTE    localNetworkType;
  95.     BYTE    network[4];
  96.     BYTE    node[6];
  97. };
  98.  
  99. typedef struct StructBridge
  100. {
  101.     BYTE                    numberOfNets;
  102.     struct StructDriver     bridge[MAX_LOCAL_NETWORKS];
  103. } BridgeStruct;
  104.  
  105. typedef struct StructNode
  106. {
  107.     char                    name[12];
  108.     BeginDiagnosticStruct   target;
  109.     BYTE                    numberOfComponents;
  110.     BYTE                    componentID[MAX_COMPONENTS];
  111.     BridgeStruct            *bridgePtr;
  112. } NodeStruct;
  113.  
  114. typedef struct StructConfigurationResponse
  115. {
  116.     AddrStruct      address;
  117.     struct
  118.     {
  119.             BYTE    majorVersion;
  120.             BYTE    minorVersion;
  121.             WORD    SPXDiagnosticSocket;
  122.             BYTE    numberOfComponents;
  123.             BYTE    componentStructure[MAX_IPX_PACKET_SIZE  -
  124.                             sizeof(IPXHeader) - sizeof(AddrStruct) - 5];
  125.     } packet;
  126. } ConfigurationResponseStruct;
  127.  
  128. typedef struct StructAllResp
  129. {
  130.     BYTE    completionCode;
  131.     long    intervalMarker;
  132. } AllResponseData;
  133.  
  134. typedef struct StructIPXSPXVersion
  135. {
  136.     BYTE    IPXMajorVersion;
  137.     BYTE    IPXMinorVersion;
  138.     BYTE    SPXMajorVersion;
  139.     BYTE    SPXMinorVersion;
  140. } IPXSPXVersion;
  141.  
  142. typedef struct StructIPXStatistics
  143. {
  144.     long    sendPacketCount;
  145.     WORD    malformedPacketCount;
  146.     long    getECBRequestCount;
  147.     long    getECBFailureCount;
  148.     long    AESEventCount;
  149.     WORD    postponedAESEventCount;
  150.     WORD    maxConfiguredSocketsCount;
  151.     WORD    maxOpenSocketsCount;
  152.     WORD    openSocketFailureCount;
  153.     long    listenECBCount;
  154.     WORD    ECBCancelFailureCount;
  155.     WORD    findRouteFailureCount;
  156. } IPXStatisticsStruct;
  157.  
  158. typedef struct StructSPXStatistics
  159. {
  160.     WORD    maxConnectionsCount;
  161.     WORD    maxUsedConnectionsCount;
  162.     WORD    establishConnectionRequest;
  163.     WORD    establishConnectionFailure;
  164.     WORD    listenConnectionRequestCount;
  165.     WORD    listenConnectionFailureCount;
  166.     long    sendPacketCount;
  167.     long    windowChokeCount;
  168.     WORD    badSendPacketCount;
  169.     WORD    sendFailureCount;
  170.     WORD    abortConnectionCount;
  171.     long    listenPacketCount;
  172.     WORD    badListenPacketCount;
  173.     long    incomingPacketCount;
  174.     WORD    badIncomingPacketCount;
  175.     WORD    suppressedPacketCount;
  176.     WORD    noSessionListenECBCount;
  177.     WORD    watchdogDestroySessionCount;
  178. } SPXStatisticsStruct;
  179.  
  180. typedef struct SPReq
  181. {
  182.     BeginDiagnosticStruct   target;
  183.     BYTE    immediateAddress[6];
  184.     WORD    numberOfPackets;
  185.     BYTE    timerTickInterval;
  186.     BYTE    packetsPerTickInterval;
  187.     WORD    packetSize;
  188.     WORD    changeSize;
  189. } SendPacketsRequestStruct;
  190.  
  191. typedef struct SPResp
  192. {
  193.     WORD    numberOfTransmitErrors;
  194. } SendPacketsResponseStruct;
  195.  
  196. typedef struct StructStartCountingPackets
  197. {
  198.     WORD    destinationSocket;
  199. } StartCountingPacketsStruct;
  200.  
  201. typedef struct StructReturnReceivedPacket
  202. {
  203.     WORD    packetsReceived;
  204. } ReturnReceivedPacketStruct;
  205.  
  206. typedef BYTE status;
  207.  
  208. typedef struct StructBridgeDriverStatus
  209. {
  210.     status  LANBoard[4];
  211. } BridgeDriverStatusStruct;
  212.  
  213. typedef struct StructDriverConf
  214. {
  215.     BYTE    networkAddress[4];
  216.     BYTE    nodeAddress[6];
  217.     BYTE    LANMode;
  218.     BYTE    nodeAddressType;
  219.     WORD    maxDataSize;
  220.     WORD    reserved1;
  221.     BYTE    reserved4;
  222.     WORD    transportTime;
  223.     BYTE    reserved2[11];
  224.     BYTE    majorVersion;
  225.     BYTE    minorVersion;
  226.     BYTE    ethernetFlagBits;
  227.     BYTE    selectedConfiguration;
  228.     BYTE    LANDescription[80];
  229.     WORD    IOAddress1;
  230.     WORD    IODecodeRange1;
  231.     WORD    IOAddress2;
  232.     WORD    IODecodeRange2;
  233.     BYTE    memoryAddress1[3];
  234.     WORD    memoryDecodeRange1;
  235.     BYTE    memoryAddress2[3];
  236.     WORD    memoryDecodeRange2;
  237.     BYTE    interruptIsUsed1;
  238.     BYTE    interruptLine1;
  239.     BYTE    interruptIsUsed2;
  240.     BYTE    interruptLine2;
  241.     BYTE    DMAIsUsed1;
  242.     BYTE    DMALine1;
  243.     BYTE    DMAIsUsed2;
  244.     BYTE    DMALine2;
  245.     BYTE    microChannelFlagBits;
  246.     BYTE    reserved3;
  247.     BYTE    textDescription[80];
  248. } DriverConfigurationStruct;
  249.  
  250. typedef struct StructDriverStat
  251. {
  252.     BYTE    driverVersion[2];
  253.     BYTE    statisticsVersion[2];
  254.     long    totalTxPacketCount;
  255.     long    totalRxPacketCount;
  256.     WORD    noECBAvailableCount;
  257.     WORD    packetTxTooBigCount;
  258.     WORD    packetTxTooSmallCount;
  259.     WORD    packetRxOverflowCount;
  260.     WORD    packetRxTooBigCount;
  261.     WORD    packetRxTooSmallCount;
  262.     WORD    packetTxMiscErrorCount;
  263.     WORD    packetRxMiscErrorCount;
  264.     WORD    retryTxCount;
  265.     WORD    checksumErrorCount;
  266.     WORD    hardwareRxMismatchCount;
  267.     WORD    numberOfCustomVariables;
  268.     BYTE    variableData[495];
  269.   /*       BYTE    variableData[1]; */
  270. } DriverStatisticsStruct;
  271.  
  272. typedef struct StructOSVersion
  273. {
  274.     BYTE    machineID;
  275.     BYTE    versionData[41];
  276. } OSVersionStruct;
  277.  
  278. typedef struct IPXAddress ShellAddressStruct;
  279.  
  280. typedef struct StructShellStatistics
  281. {
  282.     long    shellRequestsCount;
  283.     WORD    operatorAbortsCount;
  284.     WORD    operatorRetriesCount;
  285.     WORD    timeoutsCount;
  286.     WORD    writeErrorCount;
  287.     WORD    invalidReplyHeaderCount;
  288.     WORD    invalidSlotCount;
  289.     WORD    invalidSequenceNumberCount;
  290.     WORD    errorReceivingCount;
  291.     WORD    noRouterFoundCount;
  292.     WORD    beingProcessedCount;
  293.     WORD    unknownErrorCount;
  294.     WORD    invalidServerSlotCount;
  295.     WORD    networkGoneCount;
  296.     WORD    reserved1;
  297.     WORD    allocateCannotFindRouteCount;
  298.     WORD    allocateNoSlotsAvailableCount;
  299.     WORD    allocateServerIsDownCount;
  300. } ShellStatisticsStruct;
  301.  
  302. typedef struct StructAddressTable
  303. {
  304.     BYTE    serverUsed;
  305.     BYTE    orderNumber;
  306.     BYTE    serverNetwork[4];
  307.     BYTE    serverNode[6];
  308.     WORD    serverSocket;
  309.     WORD    receivedTimeOut;
  310.     BYTE    immediateNode[6];
  311.     BYTE    sequenceNumber;
  312.     BYTE    connectionNumber;
  313.     BYTE    connectionOK;
  314.     WORD    maximumTimeOut;
  315.     BYTE    reserved[5];
  316. } AddressTableStruct;
  317.  
  318. typedef struct StructServerAddressTable
  319. {
  320.     AddressTableStruct      addressTable[8];
  321. } ServerAddressTableStruct;
  322.  
  323. typedef struct StructNameTable
  324. {
  325.     BYTE    name[48];
  326. } NameTableStruct;
  327.  
  328. typedef struct StructServerNameTable
  329. {
  330.     NameTableStruct         nameTable[8];
  331. } ServerNameTableStruct;
  332.  
  333. typedef struct StructPrimaryServer
  334. {
  335.     BYTE    number;
  336. } PrimaryServerStruct;
  337.  
  338. typedef struct StructShellVersion
  339. {
  340.     BYTE    minor;
  341.     BYTE    major;
  342.     BYTE    rev;
  343. } ShellVersionStruct;
  344.  
  345. typedef struct StructBridgeStatistics
  346. {
  347.     WORD    tooManyHopsCount;
  348.     WORD    unknownNetworkCount;
  349.     WORD    noSpaceForServiceCount;
  350.     WORD    noReceiveBuffersCount;
  351.     WORD    notMyNetwork;
  352.     long    netBIOSPropogateCount;
  353.     long    totalPacketsServiced;
  354.     long    totalPacketsRouted;
  355. } BridgeStatisticsStruct;
  356.  
  357. typedef struct StructNumber
  358. {
  359.     BYTE    number[4];
  360. } NumberStruct;
  361.  
  362. typedef struct StructNodeAddress
  363. {
  364.     BYTE    address[6];
  365.     BYTE    reserved[2];
  366. } NodeAddressStruct;
  367.  
  368. typedef struct StructLocalTables
  369. {
  370.     NumberStruct            localNetworkNumber[16];
  371.     NodeAddressStruct       localNodeAddress[16];
  372. } LocalTablesStruct;
  373.  
  374. typedef struct StructNetworkAddress
  375. {
  376.     BYTE    address[4];
  377. } NetworkAddressStruct;
  378.  
  379. typedef struct StructAllKnownNetworks
  380. {
  381.     WORD    numberOfNetworkAddresses;
  382.     NetworkAddressStruct    networkAddress[128];
  383. } AllKnownNetworksStruct;
  384.  
  385. typedef struct StructRoutingInfo
  386. {
  387.     BYTE    routerForwardingAddress[6];
  388.     BYTE    routerBoardNumber;
  389.     BYTE    reserved[2];
  390.     BYTE    routeHops;
  391.     WORD    routeTime;
  392. } RoutingInfoStruct;
  393.  
  394. typedef struct StructSpecificNetInfo
  395. {
  396.     BYTE    networkAddress[4];
  397.     BYTE    hopsToNet;
  398.     BYTE    reservedA[7];
  399.     WORD    routeTimeToNet;
  400.     WORD    numberOfKnownRouters;
  401.     RoutingInfoStruct       routingInfo[MAX_ROUTES];
  402. } SpecificNetworkInfoStruct;
  403.  
  404. typedef struct StrSrvrInfo
  405. {
  406.     WORD    serverType;
  407.     BYTE    serverName[48];
  408. } ServerInfoStruct;
  409.  
  410. typedef struct StructAllKnownServers
  411. {
  412.     WORD    numberOfServers;
  413.     ServerInfoStruct        serverInfo[10];
  414. } AllKnownServersStruct;
  415.  
  416. typedef struct StructRouteSourceInfo
  417. {
  418.     BYTE    routeSourceAddress[6];
  419.     WORD    routeHopsToSource;
  420.     BYTE    reserved[2];
  421. } RouteSourceInfoStruct;
  422.  
  423. typedef struct StrSpecSrvrInfo
  424. {
  425.     ServerInfoStruct        serverInfo;
  426.     BYTE    serverAddress[12];
  427.     WORD    hopsToServer;
  428.     BYTE    reserved1[2];
  429.     WORD    numberOfRoutes;
  430.     RouteSourceInfoStruct   routeSourceInfo[MAX_ROUTES];
  431. } SpecificServerInfoStruct;
  432.  
  433. typedef struct StructConnectionStatusBlock
  434. {
  435.     BYTE    connectionState;
  436.     BYTE    connectionFlags;
  437.     BYTE    sourceConnectionID[2];            /* hi-lo */
  438.     BYTE    destinationConnectionID[2];       /* hi-lo */
  439.     BYTE    sequenceNumber[2];                /* hi-lo */
  440.     BYTE    acknowledgeNumber[2];             /* hi-lo */
  441.     BYTE    allocationNumber[2];              /* hi-lo */
  442.     BYTE    remoteAcknowledgeNumber[2];       /* hi-lo */
  443.     BYTE    remoteAllocationNumber[2];        /* hi-lo */
  444.     WORD    connectionSocket;                 /* hi-lo */
  445.     BYTE    immediateAddress[6];              /* hi-lo */
  446.     struct IPXAddress       destination;
  447.     BYTE    retransmissionCount[2];           /* hi-lo */
  448.     BYTE    estimatedRoundTripDelay[2];       /* hi-lo */
  449.     BYTE    retransmittedPackets[2];          /* hi-lo */
  450.     BYTE    suppressedPackets[2];             /* hi-lo */
  451. } ConnectionStatusBlock;
  452.  
  453.  
  454.  
  455. /* Personal NetWare Server Information */
  456. typedef struct StructNLServerInfo
  457. {
  458.   WORD  StructVersion;
  459.   BYTE  WorkgroupName[WORKGROUP_NAME_LENGTH];
  460.   DWORD WorkgroupID;
  461.   BYTE  ServerName[MAX_SERVER_NAME_LENGTH];
  462.   DWORD ServerID;
  463.   BYTE  OEMString[OEM_NAME_LENGTH];
  464.   WORD  OEMID;
  465.   BYTE  MajorVersion;
  466.   BYTE  MinorVersion;
  467.   BYTE  BetaVersion;
  468.   BYTE  StartMinutes;
  469.   BYTE  StartHours;
  470.   BYTE  StartSeconds;
  471.   WORD  StartYear;            /* Relative to 1980 */
  472.   BYTE  StartDay;
  473.   BYTE  StartMonth;
  474.   BYTE  ServerAddressType;    /* 0=IPX */
  475.   BYTE  ServerNetAddr[4];
  476.   BYTE  ServerNodeAddr[6];
  477.   BYTE  ServerSocket[2];
  478.   BYTE  ServerDescription[50];
  479.   WORD  CfgConnections;
  480.   WORD  CfgOpenFiles;
  481.   WORD  CfgClientTasks;
  482.   WORD  CfgDirBuffers;
  483.   WORD  CfgServiceExtensions;
  484.   WORD  CurServiceExtensions;
  485.   WORD  CfgResources;
  486.   WORD  CurResources;
  487.   WORD  CfgDirs;
  488.   WORD  CurDirs;
  489.   WORD  CfgPrns;
  490.   BYTE  CurPrns;
  491.   WORD  SizePrintBuffers;
  492.   WORD  NumReceiveBuffers;
  493.   WORD  RealSizeReceiveBuffers;
  494.   WORD  SizeReceiveBuffers;
  495.   WORD  NumIOBuffers;  
  496.   WORD  SizeIOBuffers;
  497.   WORD  ServerTSRSize;
  498.   BYTE  AuditingFlag;         /* Zero/non-zero */
  499.   BYTE  ServerFlags;          /* See SERVER_FLAG_* */
  500.   BYTE  OperatingSystem;      /* 1=DOS */
  501.   BYTE  DosMajorVersion;
  502.   BYTE  DosMinorVersion;
  503.   BYTE  IsShareLoaded;        /* Zero/non-zero */
  504.   BYTE  ServerLoadType;       /* 0 = No load, 1 = Load Conventional */
  505.   DWORD  ModuleFlag;          /* See SERVER_MODULE_* */
  506.   DWORD  ScheduleControl;
  507.   DWORD  ServerDiskVector;    /* Bit 0 = drive1 which is A */
  508.   DWORD  RemovableDiskVector;
  509. } NLServerInfoStruct;
  510.  
  511.  
  512. typedef struct StructNLServerStats
  513. {
  514.   DWORD   TotalPacketsReceived;
  515.   WORD     BadPackets;
  516.   WORD     PacketsNotProcessedImmediately;
  517.   WORD     LostResponses;
  518.   WORD     PeakConnectionsUsed;
  519.   WORD     PeakOpenFiles;
  520.   WORD     PeakClientTasks;
  521.   WORD     WatchdogPacketsSent;
  522.   WORD     ClientsWatchdogged;
  523.   WORD     ECBRepostsWithNoBuffers;
  524.   WORD     SendPacketWithECBActive;
  525.   WORD     TotalSlistRequests;
  526.   WORD     ServerBusyPackets ;
  527.   WORD     ServerBusyPacketsNoBuffers;
  528.   WORD     UnknownRequests;
  529.   WORD     WriteBehindMisses;
  530.   DWORD    ReadCacheHits;
  531.   DWORD    ReadCacheMisses;
  532.   WORD     ReadsTooLarge;
  533.   WORD     CriticalErrors;
  534.   DWORD    SavedLargeDOSArea;
  535.   DWORD    SavedSmallDOSArea;
  536.   WORD     StarvationCounter;
  537.   WORD     WriteBehindHits;
  538.   WORD     CacheBlocksInUse;
  539.   DWORD    Reserved;
  540.   DWORD    PacketQueueRuns;
  541.   DWORD    IdleLoopWaitHits;
  542.   DWORD    Int21NotOurs;
  543.   DWORD    TotalInt21Calls;
  544.   WORD     PasswordFailures;
  545.   WORD     Reserved0;
  546. } NLServerStatsStruct;
  547.  
  548. typedef struct StructNLServerCurrentState
  549. {
  550.   WORD     CurConnections;
  551.   WORD     CurOpenFiles;
  552.   WORD     CurClientTasks;
  553.   WORD     CurNumFreeBuffers;
  554.   WORD     CurNumSemaphores;
  555. } NLServerCurrentStateStruct;
  556.  
  557. typedef struct StructNLCacheStats
  558. {
  559.   BYTE     NLCacheMajorVersion;  /*binary decimal */
  560.   BYTE     NLCacheMinorVersion;  /*binary decimal */
  561.   WORD     TypeOfMemory;         /* 0=unsupported, */
  562.                                  /* 1=Base memory being used */
  563.                                  /* 2=Extended memory being used */
  564.                                  /* 3=Expanded memory being used */
  565.   DWORD    ReadRequests;
  566.   DWORD    ActualReadsToDisk;
  567.   DWORD    WriteRequests;
  568.   DWORD    ActualWritesToDisk;
  569.   WORD     NumberOfDiskErrors;
  570.   WORD     NumberOfMemoryErrors;
  571.   WORD     CurrentSizeInElements;
  572.   WORD     MaxNumElements;
  573.   WORD     ElementSize;          /* in bytes */
  574.   WORD     MinNumElements;
  575. } NLCacheStatsStruct;
  576.  
  577. typedef struct StructResponderType
  578. {
  579.    WORD     ResponderType;
  580.    BYTE     ResponderMajorVersion;
  581.    BYTE     ResponderMinorVersion;
  582. } ResponderTypeStruct;
  583.  
  584. typedef struct StructGNMAQueryRequest
  585. {
  586.    BYTE     ComponentIDIndex;
  587.    BYTE     RequestType;
  588.    WORD     ResponderType;
  589.    WORD     ResponderRequest;
  590.    WORD     OtherData;
  591. } GNMAQueryRequestStruct;
  592.  
  593. typedef struct StructGNMAInfo
  594. {
  595.    BYTE                    GNMAMajorVersion;
  596.    BYTE                    GNMAMinorVersion;
  597.    WORD                    GNMANumberOfResponders;
  598.    ResponderTypeStruct     Type[131];
  599. } GNMAInfoStruct;
  600.  
  601. /* MACHINE CONFIGURATION */
  602. typedef struct StructMachineStaticInfo
  603. {
  604.    DWORD    StartDate;
  605.    DWORD    StartTime;
  606.    BYTE     OSVerMajor;
  607.    BYTE     OSVerMinor;
  608.    WORD     OSVersionType;
  609.    BYTE     NumberOfSerialPorts;
  610.    BYTE     NumberOfParallelPorts;
  611.    BYTE     FloppyDriveCount;
  612.    WORD     FloppyDriveType;
  613.    BYTE     HardDriveCount;
  614.    BYTE     KeyboardType;
  615.    BYTE     BootVideoType;
  616.    DWORD    DisplayMemory;
  617.    BYTE     MathCoprocessor;
  618.    BYTE     CoprocessorType;
  619.    BYTE     CPUType;
  620.    BYTE     Reserved;
  621.    BYTE     ModelType;
  622.    WORD     SerialAddress[4];
  623.    WORD     ParallelAddress[4];
  624.    BYTE     PointerDevice;
  625.    WORD     SystemMemory;
  626.    BYTE     MemoryTypes;
  627.    BYTE     BIOSType;
  628.    BYTE     BIOSRev[2];
  629.    BYTE     EISA_MCASlots;
  630.    BYTE     EISA_MCAIRQ[16];
  631.    BYTE     EISA_CardName;
  632.    BYTE     BusType;
  633.    BYTE     HardDriveType[4];
  634.    BYTE     MemTypeFlag;
  635.    WORD     TotalXMS;
  636.    WORD     AvailableXMS;
  637.    WORD     TotalEMS;
  638.    WORD     AvailableEMS;
  639.    BYTE     Reserved0[22];
  640. } MachineStaticInfoStruct;
  641.  
  642. typedef struct StructNonremoveableDrives
  643. {
  644.    BYTE     DriveNumber;
  645.    DWORD    SectorsPerCluster;
  646.    DWORD    TotalNumberOfClustersPerDrive;
  647.    DWORD    NumberOfAvailableClusters;
  648.    WORD     BytesPerSector;
  649. } NonremoveableDrivesStruct;
  650.  
  651. typedef struct StructMachineDynamicInfo
  652. {
  653.    DWORD                      CurrentDate;
  654.    DWORD                      CurrentTime;
  655.    BYTE                       MouseDriver;
  656.    BYTE                       Reserved[37];
  657.    BYTE                       NonremoveableDriveCount;
  658.    NonremoveableDrivesStruct  Drive[31];
  659. } MachineDynamicInfoStruct;
  660.  
  661. /* PROTOCOL STACK INFORMATION */
  662. typedef struct StructPStackID
  663. {
  664.    WORD          StackId;
  665.    BYTE          Name[18];
  666. } PStackIDStruct;
  667.  
  668. typedef struct StructProtocolStackList
  669. {
  670.    BYTE          NumberOfStacks;
  671.    PStackIDStruct  PSID[20];
  672. } ProtocolStackListStruct;
  673.  
  674. typedef struct StructProtocolStackConfig
  675. {
  676.    BYTE     ConfigMajorVersion;
  677.    BYTE     ConfigMinorVersion;
  678.    BYTE     ProtocolLongName[42];
  679.    BYTE     ProtocolShortName[17];
  680.    BYTE     StackMajorVersion;
  681.    BYTE     StackMinorVersion;
  682.    BYTE     Reserved[16];
  683. } ProtocolStackConfigStruct;
  684.  
  685. typedef struct StructProtocolStackStats
  686. {
  687.    BYTE     StatMajorVersion;
  688.    BYTE     StatMinorVersion;
  689.    WORD     GenericCounters;
  690.    DWORD    ValidCountersMask;
  691.    DWORD    TotalTxPackets;
  692.    DWORD    TotalRxPackets;
  693.    DWORD    IgnoredRxPackets;
  694.    BYTE     OtherData[508];
  695. } ProtocolStackStatsStruct;
  696.  
  697. /* MLID INFORMATION */
  698. typedef struct StructMLIDID
  699. {
  700.    WORD          MLIDId;
  701.    BYTE          Name[18];
  702. } MLIDIDStruct;
  703.  
  704. typedef struct StructMLIDList
  705. {
  706.    BYTE          NumberOfMLIDs;
  707.    MLIDIDStruct  MLID[20];
  708. } MLIDListStruct;
  709.  
  710. typedef struct StructMLIDConfiguration
  711. {
  712.    BYTE     Signature[26];
  713.    BYTE     ConfigTableMajorVersion;
  714.    BYTE     ConfigTableMinorVersion;
  715.    BYTE     NodeAddress[6];
  716.    WORD     ModeFlags;
  717.    WORD     BoardNumber;
  718.    WORD     BoardInstance;
  719.    WORD     MaxPacketSize;
  720.    WORD     BestDataSize;
  721.    WORD     WorstDataSize;
  722.    BYTE     NICLongName[42];
  723.    BYTE     NICShortName[10];
  724.    BYTE     FrameTypeString[42];
  725.    WORD     Reserved;
  726.    WORD     FrameTypeID;
  727.    WORD     TransportTime;
  728.    DWORD    SourceRouteHandler;
  729.    WORD     LookAheadSize;
  730.    WORD     LineSpeed;
  731.    WORD     QueueDepth;
  732.    BYTE     Reserved0[6];
  733.    BYTE     DriverMajorVersion;
  734.    BYTE     DriverMinorVersion;
  735.    BYTE     Flags[2];
  736.    WORD     SendRetries;
  737.    DWORD    ConfigTableLink;
  738.    BYTE     SharingFlags[2];
  739.    WORD     Slot;
  740.    WORD     IOAddress1;
  741.    WORD     IORange1;
  742.    WORD     IOAddress2;
  743.    WORD     IORange2;
  744.    DWORD    MemoryAddress1;
  745.    WORD     MemorySize1;
  746.    DWORD    MemoryAddress2;
  747.    WORD     MemorySize2;
  748.    BYTE     IntLine1;
  749.    BYTE     IntLine2;
  750.    BYTE     DMALine1;
  751.    BYTE     DMALine2;
  752.    BYTE     OtherData[328];
  753. } MLIDConfigurationStruct;
  754.  
  755. typedef struct StructMLIDStatistics
  756. {
  757.    BYTE     DriverStatMajorVersion;
  758.    BYTE     DriverStatMinorVersion;
  759.    WORD     NumberGenericCounters;
  760.    DWORD    ValidCountersMask;
  761.    DWORD    TotalTxRequest;
  762.    DWORD    TotalRxRequest;
  763.    DWORD    NoECBAvailableCount;
  764.    DWORD    TooBigTxRequest;
  765.    DWORD    TooSmallTxRequest;
  766.    DWORD    RxOverflowCount;
  767.    DWORD    RxTooBigCount;
  768.    DWORD    RxTooSmallCount;
  769.    DWORD    TxMiscCount;
  770.    DWORD    RxMiscCount;
  771.    DWORD    TxRetryCount;
  772.    DWORD    RxChecksumErrorCount;
  773.    DWORD    RxMismatchCount;
  774.    BYTE     OtherData[468];
  775. } MLIDStatisticsStruct;
  776.  
  777. /* LSL INFORMATION */
  778. typedef struct StructLSLStatistics
  779. {
  780.    BYTE     StatMajorVersion;
  781.    BYTE     StatMinorVersion;
  782.    WORD     GenericCounters;
  783.    DWORD    ValidCountersMask;
  784.    DWORD    TotalTxPackets;
  785.    DWORD    GetECBRequests;
  786.    DWORD    GetECBFailures;
  787.    DWORD    AESEventsCount;
  788.    DWORD    PostponedEvents;
  789.    DWORD    CancelAESFailures;
  790.    DWORD    Reserved0;
  791.    DWORD    Reserved1;
  792.    DWORD    TotalRxPackets;
  793.    DWORD    UnclaimedPackets;
  794.    BYTE     OtherData[480];
  795. } LSLStatisticsStruct;
  796.  
  797. typedef struct StructLSLConfiguration
  798. {
  799.    BYTE     ConfigMajorVersion;
  800.    BYTE     ConfigMinorVersion;
  801.    DWORD    Reserved;
  802.    DWORD    Reserved0;
  803.    BYTE     LSLMajorVersion;
  804.    BYTE     LSLMinorVersion;
  805.    WORD     MaxBoardsNumber;
  806.    WORD     MaxStacksNumber;
  807.    BYTE     Reserved1[12];
  808. } LSLConfigurationStruct;
  809.  
  810. typedef struct StructLSLNetCfgPath
  811. {
  812.    BYTE     NetCfgPath[128];
  813. } LSLNetCfgPathStruct;
  814.  
  815.  
  816. /* -------------------- Internal Globals ------------------- */
  817. #define  RESPONSE_ECBS 6
  818.  
  819. extern DWORD     DiagIPXTaskID;
  820. extern WORD      DiagWaitSeconds;    /* time to wait for response */
  821. extern WORD      dnumApps;
  822. extern WORD      responseSocket;  //STC 8/21/95
  823. extern SPXHeader responseHeader [RESPONSE_ECBS];
  824. extern ECB       responseECB [RESPONSE_ECBS];
  825. extern BYTE      responseData [RESPONSE_ECBS] [sizeof(SPXPacket)];
  826.  
  827.  
  828. /* ------------------------ Prototypes ----------------------- */
  829.  
  830. #ifdef __cplusplus
  831.     extern "C" {
  832. #endif /* __cplusplus */
  833.  
  834. extern int FAR PASCAL BeginDiagnostics (
  835.                     BeginDiagnosticStruct FAR *destination,
  836.                     WORD FAR     *connectionID,
  837.                     BYTE FAR     *componentList);
  838.  
  839. extern int FAR PASCAL EndDiagnostics(
  840.                     WORD         connectionID);
  841.  
  842. extern BYTE  FAR PASCAL FindComponentOffset(
  843.                     BYTE FAR     *componentList,
  844.                     BYTE         componentID );
  845.  
  846.  
  847. extern int FAR PASCAL AbortSendingPackets(
  848.                     WORD         connectionID,
  849.                     BYTE         componentNumber);
  850.  
  851. extern int FAR PASCAL GetAllKnownNetworks(
  852.                     WORD         connectionID,
  853.                     BYTE         componentNumber,
  854.                     WORD         nextNetworkOffset,
  855.                     AllResponseData FAR *Response,
  856.                     AllKnownNetworksStruct FAR *ResponseData);
  857.  
  858. extern int FAR PASCAL GetAllKnownServers(
  859.                     WORD         connectionID,
  860.                     BYTE         componentNumber,
  861.                     WORD         numberServersToSkip,
  862.                     AllResponseData FAR *Response,
  863.                     AllKnownServersStruct FAR *ResponseData);
  864.  
  865. extern int FAR PASCAL GetBridgeDriverConfiguration(
  866.                     WORD         connectionID,
  867.                     BYTE         componentNumber,
  868.                     BYTE         LANBoardNumber,
  869.                     AllResponseData FAR *Response,
  870.                     DriverConfigurationStruct FAR *ResponseData);
  871.  
  872. extern int FAR PASCAL GetBridgeDriverStatus(
  873.                     WORD         connectionID,
  874.                     BYTE         componentNumber,
  875.                     AllResponseData FAR *Response,
  876.                     BridgeDriverStatusStruct FAR *ResponseData);
  877.  
  878. extern int FAR PASCAL GetBridgeDriverStatistics(
  879.                     WORD         connectionID,
  880.                     BYTE         componentNumber,
  881.                     BYTE         LANBoardNumber,
  882.                     AllResponseData FAR *Response,
  883.                     DriverStatisticsStruct FAR *ResponseData);
  884.  
  885. extern int FAR PASCAL GetBridgeStatistics(
  886.                     WORD         connectionID,
  887.                     BYTE         componentNumber,
  888.                     AllResponseData FAR *Response,
  889.                     BridgeStatisticsStruct FAR *ResponseData);
  890.  
  891. extern int PASCAL GetDiagnosticResponse (
  892.                     WORD         connectionID,
  893.                     BYTE FAR     *buffer1,
  894.                     WORD         size1,
  895.                     BYTE FAR     *buffer2,
  896.                     WORD         size2);
  897.  
  898. extern int PASCAL GetDiagnosticStatus (
  899.                     WORD         connectionID);
  900.  
  901. extern int FAR PASCAL GetGNMAInfo(
  902.                     WORD         connectionID,
  903.                     BYTE         componentNumber,
  904.                     AllResponseData FAR *Response,
  905.                     GNMAInfoStruct FAR *ResponseData);
  906.  
  907. extern int FAR PASCAL GetIPXSPXVersion(
  908.                     WORD         connectionID,
  909.                     BYTE         componentNumber,
  910.                     AllResponseData FAR *Response,
  911.                     IPXSPXVersion FAR *ResponseData);
  912.  
  913. extern int FAR PASCAL GetIPXStatistics(
  914.                     WORD         connectionID,
  915.                     BYTE         componentNumber,
  916.                     AllResponseData FAR *Response,
  917.                     IPXStatisticsStruct FAR *ResponseData);
  918.  
  919. extern int FAR PASCAL GetLocalTables(
  920.                     WORD         connectionID,
  921.                     BYTE         componentNumber,
  922.                     AllResponseData FAR *Response,
  923.                     LocalTablesStruct FAR *ResponseData);
  924.  
  925. extern int FAR PASCAL GetLSLConfiguration(
  926.                     WORD         connectionID,
  927.                     BYTE         componentNumber,
  928.                     AllResponseData FAR *Response,
  929.                     LSLConfigurationStruct FAR *ResponseData);
  930.  
  931. extern int FAR PASCAL GetLSLStatistics(
  932.                     WORD         connectionID,
  933.                     BYTE         componentNumber,
  934.                     AllResponseData FAR *Response,
  935.                     LSLStatisticsStruct FAR *ResponseData);
  936.  
  937. extern int FAR PASCAL GetMachineDynamicInfo(
  938.                     WORD         connectionID,
  939.                     BYTE         componentNumber,
  940.                     AllResponseData FAR *Response,
  941.                     MachineDynamicInfoStruct FAR *ResponseData);
  942.  
  943. extern int FAR PASCAL GetMachineStaticInfo(
  944.                     WORD         connectionID,
  945.                     BYTE         componentNumber,
  946.                     AllResponseData FAR *Response,
  947.                     MachineStaticInfoStruct FAR *ResponseData);
  948.  
  949. extern int FAR PASCAL GetMLIDConfiguration(
  950.                     WORD         connectionID,
  951.                     BYTE         componentNumber,
  952.                     WORD         mlidID,
  953.                     AllResponseData FAR *Response,
  954.                     MLIDConfigurationStruct FAR *ResponseData);
  955.  
  956. extern int FAR PASCAL GetMLIDList(
  957.                     WORD         connectionID,
  958.                     BYTE         componentNumber,
  959.                     AllResponseData FAR *Response,
  960.                     MLIDListStruct FAR *ResponseData);
  961.  
  962. extern int FAR PASCAL GetMLIDStatistics(
  963.                     WORD         connectionID,
  964.                     BYTE         componentNumber,
  965.                     WORD         mlidID,
  966.                     AllResponseData FAR *Response,
  967.                     MLIDStatisticsStruct FAR *ResponseData);
  968.  
  969. extern int FAR PASCAL GetNetCfgPath(
  970.                     WORD         connectionID,
  971.                     BYTE         componentNumber,
  972.                     AllResponseData FAR *Response,
  973.                     LSLNetCfgPathStruct FAR *ResponseData);
  974.  
  975. extern int FAR PASCAL GetNLCacheStats(
  976.                     WORD         connectionID,
  977.                     BYTE         componentNumber,
  978.                     AllResponseData FAR *Response,
  979.                     NLCacheStatsStruct FAR *ResponseData);
  980.  
  981. extern int FAR PASCAL GetNLServerCurrentState(
  982.                     WORD         connectionID,
  983.                     BYTE         componentNumber,
  984.                     AllResponseData FAR *Response,
  985.                     NLServerCurrentStateStruct FAR *ResponseData);
  986.  
  987. extern int FAR PASCAL GetNLServerInfo(
  988.                     WORD         connectionID,
  989.                     BYTE         componentNumber,
  990.                     AllResponseData FAR *Response,
  991.                     NLServerInfoStruct FAR *ResponseData);
  992.  
  993. extern int FAR PASCAL GetNLServerStats(
  994.                     WORD         connectionID,
  995.                     BYTE         componentNumber,
  996.                     AllResponseData FAR *Response,
  997.                     NLServerStatsStruct FAR *ResponseData);
  998.  
  999. extern int FAR PASCAL GetOSVersionInfo(
  1000.                     WORD         connectionID,
  1001.                     BYTE         componentNumber,
  1002.                     AllResponseData FAR *Response,
  1003.                     OSVersionStruct FAR *ResponseData);
  1004.  
  1005. extern int FAR PASCAL GetPrimaryServerNumber(
  1006.                     WORD         connectionID,
  1007.                     BYTE         componentNumber,
  1008.                     AllResponseData FAR *Response,
  1009.                     PrimaryServerStruct FAR *ResponseData);
  1010.  
  1011. extern int FAR PASCAL GetProtocolStackConfiguration(
  1012.                     WORD         connectionID,
  1013.                     BYTE         componentNumber,
  1014.                     WORD         stackID,
  1015.                     AllResponseData FAR *Response,
  1016.                     ProtocolStackConfigStruct FAR *ResponseData);
  1017.  
  1018. extern int FAR PASCAL GetProtocolStackList(
  1019.                     WORD         connectionID,
  1020.                     BYTE         componentNumber,
  1021.                     AllResponseData FAR *Response,
  1022.                     ProtocolStackListStruct FAR *ResponseData);
  1023.  
  1024. extern int FAR PASCAL GetProtocolStackStatistics(
  1025.                     WORD         connectionID,
  1026.                     BYTE         componentNumber,
  1027.                     WORD         stackID,
  1028.                     AllResponseData FAR *Response,
  1029.                     ProtocolStackStatsStruct FAR *ResponseData);
  1030.  
  1031. extern int FAR PASCAL GetRemoteSPXSocket(
  1032.                     BeginDiagnosticStruct FAR *destination,
  1033.                     BYTE FAR     *cList );
  1034.  
  1035. extern int FAR PASCAL GetServerAddressTable(
  1036.                     WORD         connectionID,
  1037.                     BYTE         componentNumber,
  1038.                     AllResponseData FAR *Response,
  1039.                     ServerAddressTableStruct FAR *ResponseData);
  1040.  
  1041. extern int FAR PASCAL GetServerNameTable(
  1042.                     WORD         connectionID,
  1043.                     BYTE         componentNumber,
  1044.                     AllResponseData FAR *Response,
  1045.                     ServerNameTableStruct FAR *ResponseData);
  1046.  
  1047. extern int FAR PASCAL GetShellAddress(
  1048.                     WORD         connectionID,
  1049.                     BYTE         componentNumber,
  1050.                     AllResponseData FAR *Response,
  1051.                     ShellAddressStruct FAR *ResponseData);
  1052.  
  1053. extern int FAR PASCAL GetShellDriverConfiguration(
  1054.                     WORD         connectionID,
  1055.                     BYTE         componentNumber,
  1056.                     AllResponseData FAR *Response,
  1057.                     DriverConfigurationStruct FAR *ResponseData);
  1058.  
  1059. extern int FAR PASCAL GetShellDriverStatistics(
  1060.                     WORD         connectionID,
  1061.                     BYTE         componentNumber,
  1062.                     AllResponseData FAR *Response,
  1063.                     DriverStatisticsStruct FAR *ResponseData);
  1064.  
  1065. extern int FAR PASCAL GetShellStatistics(
  1066.                     WORD         connectionID,
  1067.                     BYTE         componentNumber,
  1068.                     AllResponseData FAR *Response,
  1069.                     ShellStatisticsStruct FAR *ResponseData);
  1070.  
  1071. extern int FAR PASCAL GetShellVersionInfo(
  1072.                     WORD         connectionID,
  1073.                     BYTE         componentNumber,
  1074.                     AllResponseData FAR *Response,
  1075.                     ShellVersionStruct FAR *ResponseData);
  1076.  
  1077. extern int FAR PASCAL GetSpecificNetworkInfo(
  1078.                     WORD         connectionID,
  1079.                     BYTE         componentNumber,
  1080.                     BYTE FAR     *networkAddress,
  1081.                     AllResponseData FAR *Response,
  1082.                     SpecificNetworkInfoStruct FAR *ResponseData);
  1083.  
  1084. extern int FAR PASCAL GetSpecificServerInfo(
  1085.                     WORD         connectionID,
  1086.                     BYTE         componentNumber,
  1087.                     ServerInfoStruct FAR *Server,
  1088.                     AllResponseData FAR *Response,
  1089.                     SpecificServerInfoStruct FAR *ResponseData);
  1090.  
  1091. extern int FAR PASCAL GetSPXStatistics(
  1092.                     WORD         connectionID,
  1093.                     BYTE         componentNumber,
  1094.                     AllResponseData FAR *Response,
  1095.                     SPXStatisticsStruct FAR *ResponseData);
  1096.  
  1097. extern int FAR PASCAL ReturnReceivedPacketCount(
  1098.                     WORD         connectionID,
  1099.                     BYTE         componentNumber,
  1100.                     AllResponseData FAR *Response,
  1101.                     ReturnReceivedPacketStruct FAR *ResponseData);
  1102.  
  1103. extern int FAR PASCAL SendSPXPacket (
  1104.                     WORD         connectionID,
  1105.                     BYTE FAR     *buffer1,
  1106.                     WORD         size1);
  1107.  
  1108. extern int FAR PASCAL StartCountingPkts(
  1109.                     WORD         connectionID,
  1110.                     BYTE         componentNumber,
  1111.                     AllResponseData FAR *Response,
  1112.                     StartCountingPacketsStruct FAR *ResponseData);
  1113.  
  1114. extern int FAR PASCAL StartSendingPktsTimed(
  1115.                     WORD         connectionID,
  1116.                     BYTE         componentNumber,
  1117.                     SendPacketsRequestStruct FAR *RequestData,
  1118.                     AllResponseData FAR *Response,
  1119.                     SendPacketsResponseStruct FAR *ResponseData,
  1120.                     WORD         Ticks);
  1121.  
  1122. #ifdef __cplusplus
  1123.     }
  1124. #endif /* __cplusplus */
  1125.  
  1126. #endif /* _DIAG_H */
  1127.  
  1128.