mirror of https://github.com/lianthony/NT4.0
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.
597 lines
20 KiB
597 lines
20 KiB
/*++
|
|
|
|
Copyright (c) 1989 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
atkconst.h
|
|
|
|
Abstract:
|
|
|
|
|
|
Author:
|
|
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _ATKCONST_
|
|
#define _ATKCONST_
|
|
|
|
//
|
|
// BUGBUG:
|
|
// STATUS CODES THAT WE NEED TO GET INTO NT!!
|
|
//
|
|
//
|
|
|
|
#define STATUS_INVALID_CONTROLCHANNEL 0xC0000001
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if DBG
|
|
|
|
//
|
|
// DEBUGGING SUPPORT:
|
|
// Debugging messages are provided per-subsystem defined here, and within
|
|
// the subsystems, there are 7 levels of messages.
|
|
//
|
|
// The seven levels of debug messages are:
|
|
//
|
|
// TEMP_DEBUG: Used during temporary debugging output (should not exist in final code)
|
|
// INFOCLASS0: Informational messages, eg., entry exit in routines
|
|
// INFOCLASS1: Higher level informational messages
|
|
// WARNING: Something went wrong, but its not an error, eg., packet was not ours
|
|
// ERROR: Error situations, but we can still run if a retry happens
|
|
// SEVERE: Error situation, something major is wrong- memory allocation fails
|
|
// FATAL: In this situation, the driver is not operational
|
|
// IMPOSSIBLE: A situation that can never happen, potentially fatal
|
|
//
|
|
|
|
#define DEBUG_LEVEL_TEMP_DEBUG 0
|
|
#define DEBUG_LEVEL_INFOCLASS0 1
|
|
#define DEBUG_LEVEL_INFOCLASS1 2
|
|
#define DEBUG_LEVEL_WARNING 3
|
|
#define DEBUG_LEVEL_ERROR 4
|
|
#define DEBUG_LEVEL_SEVERE 5
|
|
#define DEBUG_LEVEL_FATAL 6
|
|
#define DEBUG_LEVEL_IMPOSSIBLE 7
|
|
|
|
|
|
//
|
|
// The Subsystems are:
|
|
// Macros to help use these are defined in atkprocs.h
|
|
//
|
|
// ATALK_DEBUG_INIT:
|
|
// Initialization during driver entry (ndis init is a subsubsystem)
|
|
//
|
|
// ATALK_DEBUG_DISPATCH:
|
|
// Dispatch (IoControl) routines debugging, only highest level stuff
|
|
//
|
|
// ATALK_DEBUG_REFCOUNTS:
|
|
// Refererence counts debugging- subsystems specify the objects
|
|
//
|
|
// ATALK_DEBUG_ADDROBJ:
|
|
// Address objects debugging, except refcounts, spinlocks
|
|
//
|
|
// ATALK_DEBUG_CONNOBJ:
|
|
// Connection objects debugging, except refcounts, spinlocks
|
|
//
|
|
// ATALK_DEBUG_RESOURCES:
|
|
// Resources like memory, allocation failures
|
|
//
|
|
// ATALK_DEBUG_UNLOAD:
|
|
// Unload debugging
|
|
//
|
|
// ATALK_DEBUG_CREATE:
|
|
// Create dispatch debugging
|
|
//
|
|
// ATALK_DEBUG_ACTION:
|
|
// Action routines debugging
|
|
//
|
|
// ATALK_DEBUG_CLOSE:
|
|
// Close dispatch debugging
|
|
//
|
|
// ATALK_DEBUG_MDL:
|
|
// MDL debugging
|
|
//
|
|
// ATALK_DEBUG_NDISREQ:
|
|
// Ndis request debugging (all except ndispacket out, receive stuff)
|
|
//
|
|
// ATALK_DEBUG_NDISRECEIVE:
|
|
// Receive path- only ndis routines that is.
|
|
//
|
|
// ATALK_DEBUG_NDISSEND:
|
|
// Send path- only ndis routines that is.
|
|
//
|
|
// ATALK_DEBUG_PORTABLE:
|
|
// Debugging within the portable stack- use subsubsystems for further classification
|
|
//
|
|
// ATALK_DEBUG_PORTABLEINT:
|
|
// Debugging the interface code to the portable code interface
|
|
//
|
|
// The various protocols in Appletalk
|
|
//
|
|
// ATALK_DEBUG_DDP:
|
|
// ATALK_DEBUG_ATP:
|
|
// ATALK_DEBUG_ADSP:
|
|
// ATALK_DEBUG_ZIP:
|
|
// ATALK_DEBUG_NBP:
|
|
// ATALK_DEBUG_PAP:
|
|
// ATALK_DEBUG_ASP:
|
|
//
|
|
|
|
|
|
//
|
|
// SUBSYSTEMS
|
|
//
|
|
|
|
#define ATALK_DEBUG_INIT 0x00000001
|
|
#define ATALK_DEBUG_DISPATCH 0x00000002
|
|
#define ATALK_DEBUG_CREATE 0x00000004
|
|
#define ATALK_DEBUG_CLOSE 0x00000008
|
|
#define ATALK_DEBUG_ACTION 0x00000010
|
|
#define ATALK_DEBUG_ADDROBJ 0x00000020
|
|
#define ATALK_DEBUG_CONNOBJ 0x00000040
|
|
#define ATALK_DEBUG_CHANOBJ 0x00000080
|
|
#define ATALK_DEBUG_RESOURCES 0x00000100
|
|
#define ATALK_DEBUG_UNLOAD 0x00000200
|
|
#define ATALK_DEBUG_MDL 0x00000400
|
|
#define ATALK_DEBUG_NDISREQ 0x00000800
|
|
#define ATALK_DEBUG_NDISRECEIVE 0x00001000
|
|
#define ATALK_DEBUG_NDISSEND 0x00002000
|
|
#define ATALK_DEBUG_PORTABLE 0x00004000
|
|
#define ATALK_DEBUG_PORTABLEINT 0x00008000
|
|
#define ATALK_DEBUG_DEPEND 0x00010000
|
|
#define ATALK_DEBUG_DDP 0x00020000
|
|
#define ATALK_DEBUG_ATP 0x00040000
|
|
#define ATALK_DEBUG_ADSP 0x00080000
|
|
#define ATALK_DEBUG_ZIP 0x00100000
|
|
#define ATALK_DEBUG_NBP 0x00200000
|
|
#define ATALK_DEBUG_PAP 0x00400000
|
|
#define ATALK_DEBUG_ASP 0x00800000
|
|
|
|
#define ATALK_DEBUG_UTILS 0x01000000
|
|
#define ATALK_DEBUG_REFCOUNTS 0x02000000
|
|
#define ATALK_DEBUG_SYSTEM 0x04000000
|
|
#define ATALK_DEBUG_MISC 0x08000000
|
|
#define ATALK_DEBUG_CRITSEC 0x10000000
|
|
|
|
#define ATALK_DEBUG_MOST ATALK_DEBUG_INIT | \
|
|
ATALK_DEBUG_DISPATCH | \
|
|
ATALK_DEBUG_CREATE | \
|
|
ATALK_DEBUG_CLOSE | \
|
|
ATALK_DEBUG_ACTION | \
|
|
ATALK_DEBUG_ADDROBJ | \
|
|
ATALK_DEBUG_CONNOBJ | \
|
|
ATALK_DEBUG_CHANOBJ | \
|
|
ATALK_DEBUG_RESOURCES | \
|
|
ATALK_DEBUG_UNLOAD | \
|
|
ATALK_DEBUG_MDL | \
|
|
ATALK_DEBUG_NDISREQ | \
|
|
ATALK_DEBUG_NDISRECEIVE | \
|
|
ATALK_DEBUG_NDISSEND | \
|
|
ATALK_DEBUG_PORTABLE | \
|
|
ATALK_DEBUG_PORTABLEINT | \
|
|
ATALK_DEBUG_DEPEND | \
|
|
ATALK_DEBUG_DDP | \
|
|
ATALK_DEBUG_ATP | \
|
|
ATALK_DEBUG_ADSP | \
|
|
ATALK_DEBUG_ZIP | \
|
|
ATALK_DEBUG_NBP | \
|
|
ATALK_DEBUG_PAP | \
|
|
ATALK_DEBUG_ASP | \
|
|
ATALK_DEBUG_UTILS | \
|
|
ATALK_DEBUG_REFCOUNTS | \
|
|
ATALK_DEBUG_SYSTEM | \
|
|
ATALK_DEBUG_MISC
|
|
|
|
//
|
|
// past here are debug things that are really frequent; don't use them
|
|
// unless you want LOTS of output
|
|
//
|
|
|
|
|
|
#define ATALK_DEBUG_ALL ATALK_DEBUG_MOST | \
|
|
ATALK_DEBUG_CRITSEC
|
|
#endif
|
|
|
|
#define SOCKET_TYPE_DDP 0x01
|
|
#define SOCKET_TYPE_ATP 0x02
|
|
|
|
|
|
//
|
|
// Packet descriptors/Buffer descriptors per port for use with the
|
|
// NDIS wrapper
|
|
//
|
|
|
|
#define PACKETDESCRIPTORS_PERPORT 100
|
|
#define BUFFERDESCRIPTORS_PERPORT 150
|
|
|
|
#define LINKAGE_STRING L"Linkage"
|
|
#define PARAMETERS_STRING L"Parameters"
|
|
#define ADAPTERS_STRING L"Adapters"
|
|
#define BIND_STRING L"Bind"
|
|
|
|
#if 0
|
|
|
|
#define MINIMUM_NETNUMBER 0x0001
|
|
#define MAXIMUM_NETNUMBER 0xFEFF
|
|
|
|
//
|
|
// Portable to our naming convention
|
|
//
|
|
|
|
#define DEFAULT_PORT (DefaultPort)
|
|
#define MAX_NUMBER_OF_PORTS (MaximumNumberOfPorts)
|
|
|
|
//
|
|
// AARP Constants
|
|
//
|
|
|
|
#define MAX_AARPDATASIZE (MaximumAarpDataSize)
|
|
#define MIN_AARPDATASIZE (MinimumAarpDataSize)
|
|
#define MAX_AARPPACKETSIZE (MaximumAarpPacketSize)
|
|
|
|
|
|
//
|
|
// DDP+OTHER Constants
|
|
//
|
|
|
|
#define DDPLENGTH_MASK1 0x03 // High order 3 bits of length
|
|
#define DDPLENGTH_MASK2 0xFF // Next byte of length
|
|
|
|
#define DDP_SHORTFORMHEADER ((UCHAR)0x01) // LocalTalk types for DDP
|
|
#define DDP_EXTENDEDFORMHEADER ((UCHAR)0x02)
|
|
|
|
#define MAX_HARDWAREADDRESSLENGTH (MaximumHardwareAddressLength)
|
|
#define MAX_HEADERLENGTH (MaximumHeaderLength)
|
|
#define MAX_ROUTINGINFOLENGTH (MaximumRoutingInfoLength)
|
|
|
|
#define MAX_DDPDATAGRAMSIZE (MaximumDdpDatagramSize)
|
|
#define MAX_LONGDDPPACKETSIZE (MaximumLongDdpPacketSize)
|
|
#define MAX_SHORTDDPPACKETSIZE (MaximumShortDdpPacketSize)
|
|
|
|
//
|
|
// Define temporary buffer sizes, these must be big enough to hold both all
|
|
// of the packet data plus any link/hardware headers...
|
|
//
|
|
|
|
#define MAX_PACKETSIZE (MaximumPacketSize)
|
|
|
|
//
|
|
// Network number information.
|
|
//
|
|
|
|
#define FIRSTVALIDNETWORKNUMBER (FirstValidNetworkNumber)
|
|
#define LASTVALIDNETWORKNUMBER (LastValidNetworkNumber)
|
|
#define FIRSTSTARTUPNETWORKNUMBER (FirstStartupNetworkNumber)
|
|
#define LASTSTARTUPNETWORKNUMBER (LastStartupNetworkNumber)
|
|
#define NULLNETWORKNUMBER (NullNetworkNumber)
|
|
#define UNKNOWNNETWORKNUMBER (UnknownNetworkNumber)
|
|
#define CABLEWIDEBROADCASTNETWORKNUMBER (CableWideBroadcastNetworkNumber)
|
|
|
|
//
|
|
// DDP packet offsets (skipping Link/Hardware headers):
|
|
//
|
|
|
|
#define SHORTDDP_HEADERLENGTH (ShortDdpHeaderLength)
|
|
|
|
#define SHORTDDP_LENGTHOFFSET (ShortDdpLengthOffset)
|
|
#define SHORTDDP_DESTSOCKETOFFSET (ShortDdpDestSocketOffset)
|
|
#define SHORTDDP_SOURCESOCKETOFFSET (ShortDdpSourceSocketOffset)
|
|
#define SHORTDDP_PROTOCOLTYPEOFFSET (ShortDdpProtocolTypeOffset)
|
|
#define SHORTDDP_DATAGRAMOFFSET (ShortDdpDatagramOffset)
|
|
|
|
#define LONGDDP_HEADERLENGTH (LongDdpHeaderLength)
|
|
|
|
#define LONGDDP_LENGTHOFFSET (LongDdpLengthOffset)
|
|
#define LONGDDP_CHECKSUMOFFSET (LongDdpChecksumOffset)
|
|
#define LONGDDP_DESTNETWORKOFFSET (LongDdpDestNetworkOffset)
|
|
#define LONGDDP_SOURCENETWORKOFFSET (LongDdpSourceNetworkOffset)
|
|
#define LONGDDP_DESTNODEOFFSET (LongDdpDestNodeOffset)
|
|
#define LONGDDP_SOURCENODEOFFSET (LongDdpSourceNodeOffset)
|
|
#define LONGDDP_DESTSOCKETOFFSET (LongDdpDestSocketOffset)
|
|
#define LONGDDP_SOURCESOCKETOFFSET (LongDdpSourceSocketOffset)
|
|
#define LONGDDP_PROTOCOLTYPEOFFSET (LongDdpProtocolTypeOffset)
|
|
#define LONGDDP_DATAGRAMOFFSET (LongDdpDatagramOffset)
|
|
|
|
#define LEADINGUNCHECKSUMEDBYTES (LeadingUnChecksumedBytes)
|
|
|
|
#define LONGDDP_HOPCOUNTMASK (LongDdpHopCountMask)
|
|
|
|
//
|
|
// Offsets within a DDP datagram:
|
|
//
|
|
|
|
#define RTMPREQUESTCOMMANDOFFSET (RtmpRequestCommandOffset)
|
|
#define RTMPSENDERSNETWORKOFFSET (RtmpSendersNetworkOffset)
|
|
#define RTMPSENDERSIDLENGTHOFFSET (RtmpSendersIdLengthOffset)
|
|
#define RTMPSENDERSIDOFFSET (RtmpSendersIdOffset)
|
|
#define RTMPRANGESTARTOFFSET (RtmpRangeStartOffset)
|
|
#define RTMPRANGEENDOFFSET (RtmpRangeEndOffset)
|
|
|
|
#define ZIPCOMMANDOFFSET (ZipCommandOffset)
|
|
#define ZIPNETWORKCOUNTOFFSET (ZipNetworkCountOffset)
|
|
#define ZIPFLAGSOFFSET (ZipFlagsOffset)
|
|
#define ZIPFIRSTNETWORKOFFSET (ZipFirstNetworkOffset)
|
|
#define ZIPFIRSTZONELENGTHOFFSET (ZipFirstZoneLengthOffset)
|
|
#define ZIPLASTNETWORKOFFSET (ZipLastNetworkOffset)
|
|
#define ZIPFIRSTZONENAMEOFFSET (ZipFirstZoneNameOffset)
|
|
#define ZIPREQUESTEDZONELENGTHOFFSET (ZipRequestedZoneLengthOffset)
|
|
#define ZIPREQUESTEDZONENAMEOFFSET (ZipRequestedZoneNameOffset)
|
|
|
|
#define ZIPCABLERANGESTARTOFFSET (ZipCableRangeStartOffset)
|
|
#define ZIPCABLERANGEENDOFFSET (ZipCableRangeEndOffset)
|
|
#define ZIPZONELENGTHOFFSET (ZipZoneLengthOffset)
|
|
#define ZIPOLDZONELENGTHOFFSET (ZipOldZoneLengthOffset)
|
|
#define ZIPZONENAMEOFFSET (ZipZoneNameOffset)
|
|
#define ZIPOLDZONENAMEOFFSET (ZipOldZoneNameOffset)
|
|
|
|
#define ATPCOMMANDCONTROLOFFSET (AtpCommandControlOffset)
|
|
#define ATPBITMAPOFFSET (AtpBitmapOffset)
|
|
#define ATPSEQUENCENUMBEROFFSET (AtpSequenceNumberOffset)
|
|
#define ATPTRANSACTIONIDOFFSET (AtpTransactionIdOffset)
|
|
#define ATPUSERBYTESOFFSET (AtpUserBytesOffset)
|
|
#define ATPDATAOFFSET (AtpDataOffset)
|
|
|
|
#define EPCOMMANDOFFSET (EpCommandOffset)
|
|
|
|
#define NBPCONTROLOFFSET (NbpControlOffset)
|
|
#define NBPIDOFFSET (NbpIdOffset)
|
|
#define NBPFIRSTTUPLEOFFSET (NbpFirstTupleOffset)
|
|
|
|
//
|
|
// DDP protocol types
|
|
//
|
|
|
|
#define DDPPROTOCOLRTMPRESPONSEORDATA (DdpProtocolRtmpResponseOrData)
|
|
#define DDPPROTOCOLNBP (DdpProtocolNbp)
|
|
#define DDPPROTOCOLATP (DdpProtocolAtp)
|
|
#define DDPPROTOCOLEP (DdpProtocolEp)
|
|
#define DDPPROTOCOLRTMPREQUEST (DdpProtocolRtmpRequest)
|
|
#define DDPPROTOCOLZIP (DdpProtocolZip)
|
|
#define DDPPROTOCOLADSP (DdpProtocolAdsp)
|
|
|
|
//
|
|
// AppleTalk NODE (node)
|
|
//
|
|
|
|
#define ANYROUTERNODENUMBER (AnyRouterNodeNumber)
|
|
#define UNKNOWNNODENUMBER (UnknownNodeNumber)
|
|
#define MAX_APPLETALKNODES (MaximumAppleTalkNodes)
|
|
#define MINIMUMUSABLEAPPLETALKNODE (MinimumUsableAppleTalkNode)
|
|
#define MAX_USABLEAPPLETALKNODE (MaximumUsableAppleTalkNode)
|
|
#define MAX_EXTENDEDAPPLETALKNODE (MaximumExtendedAppleTalkNode)
|
|
#define HIGHESTWORKSTATIONNODENUMBER (HighestWorkstationNodeNumber)
|
|
#define LOWESTSERVERNODENUMBER (LowestServerNodeNumber)
|
|
#define APPLETALKBROADCASTNODENUMBER (AppleTalkBroadcastNodeNumber)
|
|
|
|
//
|
|
// ETHERNET Constants
|
|
// NOTE: NDIS 3.0 passes the MAC header separately from the packet
|
|
//
|
|
|
|
#define MIN_ETHERNETPACKETLENGTH (MinimumEthernetPacketLength)
|
|
#define ETHERNET_ADDRESSLENGTH (EthernetAddressLength)
|
|
#define ETHERNET_LINKLENGTH (EthernetLinkHeaderLength)
|
|
#define ETHERNET_8022LENGTH (Ieee802dot2headerLength)
|
|
|
|
#define ETHERNET_SOURCE_OFFSET (EthernetSourceOffset)
|
|
|
|
//
|
|
// IEEE 802.2 HEADER Constants
|
|
//
|
|
|
|
#define IEEE8022_DSAPOFFSET (Ieee802dot2dsapOffset)
|
|
#define IEEE8022_SSAPOFFSET (Ieee802dot2ssapOffset)
|
|
#define IEEE8022_CONTROLOFFSET (Ieee802dot2controlOffset)
|
|
#define IEEE8022_PROTOCOLOFFSET (Ieee802dot2protocolOffset)
|
|
|
|
//
|
|
// 808.2 header length: DSAP, SSAP, UI, and PID (protocol ID).
|
|
//
|
|
#define IEEE8022_HEADERLENGTH (Ieee802dot2headerLength)
|
|
|
|
//
|
|
// Values for SSAP and DSAP (the SNAP SAP) indicating 802.2 Extended.
|
|
//
|
|
#define SNAP_SAP (SnapSap)
|
|
|
|
//
|
|
// Value for Control Field
|
|
//
|
|
#define UNNUMBEREDINFORMATION (UnnumberedInformation)
|
|
|
|
//
|
|
// Length of 802.2 SNAP protocol discriminators.
|
|
//
|
|
#define IEEE8022_PROTOCOLTYPELENGTH (Ieee802dot2protocolTypeLength)
|
|
|
|
|
|
//
|
|
// TOKENRING Constants
|
|
//
|
|
|
|
|
|
#define TOKRING_ADDRESSLENGTH (TokenRingAddressLength)
|
|
|
|
#define TOKRING_ACCESSCONTROLOFFSET (TokenRingAccessControlOffset)
|
|
#define TOKRING_FRAMECONTROLOFFSET (TokenRingFrameControlOffset)
|
|
#define TOKRING_DESTINATIONOFFSET (TokenRingDestinationOffset)
|
|
#define TOKRING_SOURCEOFFSET (TokenRingSourceOffset)
|
|
#define TOKRING_ROUTINGINFOOFFSET (TokenRingRoutingInfoOffset)
|
|
|
|
#define TOKRING_ACCESSCONTROLVALUE (TokenRingAccessControlValue)
|
|
#define TOKRING_FRAMECONTROLVALUE (TokenRingFrameControlValue)
|
|
#define TOKRING_SOURCEROUTINGMASK (TokenRingSourceRoutingMask)
|
|
|
|
#define TOKRING_ROUTINGINFOSIZEMASK (TokenRingRoutingInfoSizeMask)
|
|
#define TOKRING_MINROUTINGBYTES (TokenRingMinRoutingBytes)
|
|
#define TOKRING_MAXROUTINGBYTES (TokenRingMaxRoutingBytes)
|
|
#define TOKRING_BROADCASTINFOMASK (TokenRingBroadcastInfoMask)
|
|
#define TOKRING_NONBROADCASTMASK (TokenRingNonBroadcastMask)
|
|
#define TOKRING_DIRECTIONMASK (TokenRingDirectionMask)
|
|
|
|
#define TOKRING_MINLINKHEADERLENGTH (TokenRingMinLinkHeaderLength)
|
|
#define TOKRING_MAXLINKHEADERLENGTH (TokenRingMaxLinkHeaderLength)
|
|
|
|
//
|
|
//
|
|
// LOCALTALK Constants
|
|
//
|
|
//
|
|
|
|
|
|
#define ALAP_DESTINATIONOFFSET (AlapDestinationOffset)
|
|
#define ALAP_SOURCEOFFSET (AlapSourceOffset)
|
|
#define ALAP_TYPEOFFSET (AlapTypeOffset)
|
|
|
|
#define LAP_HEADERLENGTH (LapHeaderLength)
|
|
|
|
#define ALAP_SHORTDDPHEADERTYPE (AlapShortDdpHeaderType)
|
|
#define ALAP_LONGDDPHEADERTYPE (AlapLongDdpHeaderType)
|
|
|
|
#endif
|
|
|
|
//
|
|
// BUGBUG:
|
|
// THIS MUST MOVE INTO THE ERRORS FILE!!
|
|
//
|
|
|
|
#define ERROR_NOLOCALTALK_NODEID -1
|
|
|
|
|
|
#define ACTION_REGISTER ForRegister
|
|
#define ACTION_LOOKUP ForLookup
|
|
#define ACTION_CONFIRM ForConfirm
|
|
|
|
#define LOCALTALK_NODEIDLENGTH 2
|
|
|
|
//
|
|
// This is the name that will be used in NdisRegisterProtocol
|
|
|
|
#define PROTOCOL_REGISTER_NAME L"Appletalk Protocol- PHASE II"
|
|
|
|
#define PROTOCOL_MAJORNDIS_VERSION 3
|
|
#define PROTOCOL_MINORNDIS_VERSION 0
|
|
|
|
|
|
#define VALUENAME_NETUPPEREND L"NetworkRangeUpperEnd"
|
|
#define VALUENAME_NETLOWEREND L"NetworkRangeLowerEnd"
|
|
#define VALUENAME_ZONELIST L"ZoneList"
|
|
#define VALUENAME_DEFAULTZONE L"DefaultZone"
|
|
#define VALUENAME_PORTNAME L"PortName"
|
|
#define VALUENAME_DDPCHECKSUMS L"DdpChecksums"
|
|
#define VALUENAME_AARPRETRIES L"AarpRetries"
|
|
|
|
#define VALUENAME_ENABLEROUTER L"EnableRouter"
|
|
#define VALUENAME_DEFAULTPORT L"DefaultPort"
|
|
#define VALUENAME_DESIREDZONE L"DesiredZone"
|
|
|
|
#define MAX_ZONESPERPORT 64
|
|
#define MAX_ZONENAMELEN 33
|
|
|
|
#define SYNC_REQUEST (USHORT)0
|
|
#define ASYNC_REQUEST (USHORT)1
|
|
|
|
//
|
|
// some convenient constants used for timing. All values are in clock ticks.
|
|
//
|
|
|
|
#define MICROSECONDS 10
|
|
#define MILLISECONDS 10000 // MICROSECONDS*1000
|
|
#define SECONDS 10000000 // MILLISECONDS*1000
|
|
|
|
//
|
|
// Time slice is in milliseconds- used in ATKWAIT.C
|
|
// Set it to half-a-second for now
|
|
//
|
|
|
|
#define WAIT_TIME_SLICE 500
|
|
|
|
|
|
//
|
|
// Winsock related constants
|
|
//
|
|
|
|
#define PROTOCOLTYPE_PREFIX L"\\"
|
|
#define SOCKETSTREAM_SUFFIX L"\\Stream"
|
|
#define SOCKET_TYPE_UNDEFINED 0
|
|
#define PROTOCOL_TYPE_UNDEFINED 0
|
|
#define SOCKET_TYPE_STREAM 1
|
|
#define SOCKET_TYPE_RDM 2
|
|
|
|
//
|
|
// TDI defined timeouts
|
|
//
|
|
|
|
#define TDI_TIMEOUT_SEND 60L // sends go 120 seconds
|
|
#define TDI_TIMEOUT_RECEIVE 0L // receives
|
|
#define TDI_TIMEOUT_CONNECT 60L
|
|
#define TDI_TIMEOUT_LISTEN 0L // listens default to never.
|
|
#define TDI_TIMEOUT_DISCONNECT 60L // should be 30
|
|
#define TDI_TIMEOUT_NAME_REGISTRATION 60L
|
|
|
|
|
|
//
|
|
// GENERAL CAPABILITIES STATEMENTS THAT CANNOT CHANGE.
|
|
//
|
|
|
|
#define ATALK_MAX_TSDU_SIZE 65535 // maximum TSDU size supported by NetBIOS.
|
|
#define ATALK_MAX_DATAGRAM_SIZE 512 // maximum Datagram size supported by NetBIOS.
|
|
#define ATALK_MAX_CONNECTION_USER_DATA 0 // no user data supported on connect.
|
|
#define ATALK_SERVICE_FLAGS ( \
|
|
TDI_SERVICE_CONNECTION_MODE | \
|
|
TDI_SERVICE_CONNECTIONLESS_MODE | \
|
|
TDI_SERVICE_ERROR_FREE_DELIVERY | \
|
|
TDI_SERVICE_BROADCAST_SUPPORTED | \
|
|
TDI_SERVICE_MULTICAST_SUPPORTED | \
|
|
TDI_SERVICE_DELAYED_ACCEPTANCE )
|
|
|
|
#define ATALK_MIN_LOOKAHEAD_DATA 256 // minimum guaranteed lookahead data.
|
|
#define ATALK_MAX_LOOKAHEAD_DATA 256 // maximum guaranteed lookahead data.
|
|
|
|
//
|
|
// Number of TDI resources that we report.
|
|
//
|
|
|
|
#define ATALK_TDI_RESOURCES 0
|
|
|
|
//
|
|
// Fake IOCTLs used for kernel mode testing.
|
|
//
|
|
|
|
#define IOCTL_ATALK_BASE FILE_DEVICE_TRANSPORT
|
|
|
|
#define _ATALK_CONTROL_CODE(request,method) \
|
|
((IOCTL_ATALK_BASE)<<16 | (request<<2) | method)
|
|
|
|
#define IOCTL_TDI_SEND_TEST _ATALK_CONTROL_CODE(26,0)
|
|
#define IOCTL_TDI_RECEIVE_TEST _ATALK_CONTROL_CODE(27,0)
|
|
#define IOCTL_TDI_SERVER_TEST _ATALK_CONTROL_CODE(28,0)
|
|
|
|
//
|
|
// More debugging stuff
|
|
//
|
|
|
|
#if DBG
|
|
#define ATALK_MEMORY_SIGNATURE (*(ULONG *)"ATMM")
|
|
#endif
|
|
|
|
#define ATALK_TDI_REQUEST_SIGNATURE (*(USHORT *)"RQ")
|
|
#define ATALK_CONNECTION_SIGNATURE (*(USHORT *)"CO")
|
|
#define ATALK_CONTROLCHANNEL_SIGNATURE (*(USHORT *)"CC")
|
|
#define ATALK_ADDRESS_SIGNATURE (*(USHORT *)"AO")
|
|
#define ATALK_NDIS_REQUEST_SIGNATURE (*(ULONG *)"NREQ")
|
|
#define ATALK_DEVICE_CONTEXT_SIGNATURE (*(ULONG *)"DOBJ")
|
|
|
|
#endif // _ATALKCONST_
|