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.
 
 
 
 
 
 

257 lines
11 KiB

/***************************************************************************
*
* File Name: ./netware/nxt.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 1990,1991 by Novell, Inc. All Rights Reserved. */
#ifndef _NXT_H
#define _NXT_H
/*_______________________________________________________________________
Definitions and structures for the Netware API Communications logic
_______________________________________________________________________*/
#ifndef _PROLOG_H
#include <prolog.h>
#endif
/* assigned socket types */
#define SOC_DIAGNOSTICS
typedef struct IPXAddress
{
BYTE network[4]; /* high-low */
BYTE node[6]; /* high-low */
BYTE socket[2]; /* high-low */
}IPXAddress;
typedef struct IPXHeader
{
WORD checkSum; /* high-low */
WORD length; /* high-low */
BYTE transportControl;
BYTE packetType;
IPXAddress destination;
IPXAddress source;
}IPXHeader;
typedef struct SPXHeader
{
WORD checksum; /* high-low 1's complement */
WORD length; /* high-low unsigned int */
BYTE transportControl;
BYTE packetType;
IPXAddress destination;
IPXAddress source;
BYTE connectionControl; /* bit flags */
BYTE dataStreamType;
WORD sourceConnectionID; /* high-low unsigned */
WORD destConnectionID; /* high-low unsigned */
WORD sequenceNumber; /* high-low unsigned */
WORD acknowledgeNumber; /* high-low unsigned */
WORD allocationNumber; /* high-low unsigned */
}SPXHeader;
typedef struct CONNECTION_INFO
{
BYTE connectionState;
BYTE connectionFlags;
WORD sourceConnectionID; /* hi-lo */
WORD destinationConnectionID; /* hi-lo */
WORD sequenceNumber; /* hi-lo */
WORD acknowledgeNumber; /* hi-lo */
WORD allocationNumber; /* hi-lo */
WORD remoteAcknowledgeNumber; /* hi-lo */
WORD remoteAllocationNumber; /* hi-lo */
WORD connectionSocket; /* hi-lo */
BYTE immediateAddress[6];
IPXAddress destination;
WORD retransmissionCount; /* hi-lo */
WORD estimatedRoundTripDelay; /* hi-lo */
WORD retransmittedPackets; /* hi-lo */
WORD suppressedPackets; /* hi-lo */
} CONNECTION_INFO;
#ifndef ECB_STRUCTURES_DEFINED
#define ECB_STRUCTURES_DEFINED
typedef struct ECBFragment
{
FARDATAPTR(void,address);
WORD size; /* low-high */
}ECBFragment;
typedef struct ECB
{
FARDATAPTR(void, linkAddress);
FARCODEPTR(void, ESRAddress);
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[5];
}ECB;
#endif
/* Completion Codes */
#define SUCCESSFUL 0x00
#define SPX_NOT_INSTALLED 0x00
#define SPX_INSTALLED 0xFF
#define SPX_CONNECTION_OK 0x00
#define SPX_CONNECTION_STARTED 0x00
#define SPX_CONNECTION_ESTABLISHED 0x00
#define SPX_PACKET_SUCCESSFUL 0x00
#define SPX_SOCKET_NOT_OPENED 0xFF
#define SPX_MALFORMED_PACKET 0xFD
#define SPX_PACKET_OVERFLOW 0xFD
#define SPX_LISTEN_CANCELED 0xFC
#define SPX_CONNECTION_TABLE_FULL 0xEF
#define SPX_INVALID_CONNECTION 0xEE
#define SPX_NO_ANSWER_FROM_TARGET 0xED
#define SPX_CONNECTION_FAILED 0xED
#define SPX_CONNECTION_TERMINATED 0xED
#define SPX_TERMINATED_POORLY 0xEC
#define NO_MGMT_MEMORY 0xF0
#define IPXSPX_NOT_INIT 0xF1
#define IPX_NOT_INIT 0xF1
#define NO_DOS_MEMORY 0xF2
#define NO_FREE_ECB 0xF3
#define WINLOCK_FAILED 0xF4
#define OVER_MAX_LIMIT 0xF5 /* The packet size specified in init is too large. */
#define IPXSPX_PREV_INIT 0xF6
#define CANCEL_FAILURE 0xF9
#define NO_PATH_TO_DESTINATION_FOUND 0xFA
#define ECB_CANCELLED 0xFC
#define PACKET_OVERFLOW 0xFD
#define PACKET_UNDELIVERABLE 0xFE
#define SOCKET_NOT_OPEN 0xFF
#define TRANSMIT_FAILURE 0xFF
#define ECB_NOT_IN_USE 0xFF
/*---------------------------- PROTOTYPES ----------------------------*/
extern void PASCAL CloseIPXWindow(void);
extern int FAR PASCAL IPXCancelEvent(
DWORD IPXTaskID,
ECB FAR *eventControlBlock);
extern void FAR PASCAL IPXCloseSocket(
DWORD IPXTaskID,
WORD socket);
extern void FAR PASCAL IPXDisconnectFromTarget(
DWORD IPXTaskID,
BYTE FAR *internetAddress);
extern void FAR PASCAL IPXGetInternetworkAddress(
DWORD IPXTaskID,
BYTE FAR *internetAddress);
extern WORD FAR PASCAL IPXGetIntervalMarker(
DWORD IPXTaskID );
extern int FAR PASCAL IPXGetLocalTarget(
DWORD IPXTaskID,
BYTE FAR *destination,
BYTE FAR *immediateAddress,
int FAR *transportTime);
extern WORD FAR PASCAL IPXGetMaxPacketSize(void);
extern int FAR PASCAL IPXInitialize(
DWORD FAR *IPXTaskID,
WORD maxECBs,
WORD maxPacketSize);
extern int FAR PASCAL IPXSPXDeinit(DWORD IPXTaskID);
extern void FAR PASCAL IPXListenForPacket(
DWORD IPXTaskID,
ECB FAR *eventControlBlock);
extern int FAR PASCAL IPXOpenSocket(
DWORD IPXTaskID,
WORD FAR *socket,
BYTE socketType);
extern void FAR PASCAL IPXRelinquishControl(void);
extern void FAR PASCAL IPXScheduleIPXEvent(
DWORD IPXTaskID,
WORD timeDelay,
ECB FAR *eventControlBlock);
extern void FAR PASCAL IPXSendPacket(
DWORD IPXTaskID,
ECB FAR *eventControlBlock);
extern void FAR PASCAL IPXYield(void);
extern BOOL PASCAL SetUpIPXWindow(void);
extern void FAR PASCAL SPXAbortConnection(
WORD SPXConnID);
extern int FAR PASCAL SPXEstablishConnection(
DWORD IPXTaskID,
BYTE retryCount,
BYTE watchDog,
WORD FAR *SPXConnID,
ECB FAR *eventControlBlock);
extern int FAR PASCAL SPXGetConnectionStatus(
DWORD IPXTaskID,
WORD SPXConnID,
CONNECTION_INFO FAR *connectionInfo);
extern int FAR PASCAL SPXInitialize(
DWORD FAR *IPXTaskID,
WORD maxECBs,
WORD maxPacketSize,
BYTE FAR *majorRevisionNumber,
BYTE FAR *minorRevisionNumber,
WORD FAR *maxConnections,
WORD FAR *availableConnections);
extern void FAR PASCAL SPXListenForConnection(
DWORD IPXTaskID,
BYTE retryCount,
BYTE watchDog,
ECB FAR *eventControlBlock);
extern void FAR PASCAL SPXListenForSequencedPacket(
DWORD IPXTaskID,
ECB FAR *eventControlBlock);
extern void FAR PASCAL SPXSendSequencedPacket(
DWORD IPXTaskID,
WORD SPXConnID,
ECB FAR *eventControlBlock);
extern void FAR PASCAL SPXTerminateConnection(
DWORD IPXTaskID,
WORD SPXConnID,
ECB FAR *eventControlBlock);
#endif