|
|
1.1 ! root 1: /*++ ! 2: ! 3: Copyright (c) 1992 Microsoft Corporation ! 4: ! 5: Module Name: ! 6: ! 7: wshatalk.h ! 8: ! 9: Abstract: ! 10: ! 11: This is the header file for application using Windows Sockets for ! 12: Appletalk. ! 13: ! 14: Author: ! 15: ! 16: Nikhil Kamkolkar ([email protected]) ! 17: ! 18: Revision History: ! 19: 10 Jul 1992 Initial Version ! 20: ! 21: --*/ ! 22: ! 23: // ! 24: // All protocol types should be specified in the Decimal base ! 25: // ! 26: ! 27: #define DECIMAL_BASE 10 ! 28: ! 29: // ! 30: // Protocol number 0 is invalid in the Appletalk case ! 31: // ! 32: ! 33: #define ATPROTO_BASE (1000 * AF_APPLETALK) ! 34: #define SOL_APPLETALK (ATPROTO_BASE) ! 35: ! 36: #define DDPPROTO_RTMP (ATPROTO_BASE + 1) ! 37: #define DDPPROTO_NBP (ATPROTO_BASE + 2) ! 38: #define DDPPROTO_ATP (ATPROTO_BASE + 3) ! 39: #define DDPPROTO_AEP (ATPROTO_BASE + 4) ! 40: #define DDPPROTO_RTMPRQ (ATPROTO_BASE + 5) ! 41: #define DDPPROTO_ZIP (ATPROTO_BASE + 6) ! 42: #define DDPPROTO_ADSP (ATPROTO_BASE + 7) ! 43: ! 44: #define DDPPROTO_MAX (ATPROTO_BASE + 255) ! 45: ! 46: // ! 47: // Define the higher layer appletalk protocol types ! 48: // ! 49: ! 50: #define ATPROTO_ADSP (DDPPROTO_MAX + 1) ! 51: #define ATPROTO_ATP (DDPPROTO_MAX + 2) ! 52: #define ATPROTO_ASP (DDPPROTO_MAX + 3) ! 53: #define ATPROTO_PAP (DDPPROTO_MAX + 4) ! 54: ! 55: #define SO_REGISTER_NAME 0xA000 ! 56: #define SO_DEREGISTER_NAME 0xA001 ! 57: #define SO_LOOKUP_NAME 0xA002 ! 58: #define SO_CONFIRM_NAME 0xA003 ! 59: #define SO_LOOKUP_MYZONE 0xA004 ! 60: #define SO_LOOKUP_ZONES 0xA005 ! 61: #define SO_LOOKUP_ZONES_ON_ADAPTER 0xA006 ! 62: #define SO_LOOKUP_NETDEF_ON_ADAPTER 0xA007 ! 63: ! 64: // ! 65: // PAP-specific options ! 66: // ! 67: ! 68: #define SO_PAP_SET_SERVER_STATUS 0xA007 ! 69: #define SO_PAP_GET_SERVER_STATUS 0xA008 ! 70: #define SO_PAP_PRIME_READ 0xA009 ! 71: ! 72: ! 73: #define ATADDR_ANY 0 // Dynamic socket (=0) ! 74: #define ATADDR_BROADCAST 0xFF // Broadcast node id (=ff) ! 75: ! 76: // ! 77: // Define flags/error codes peculiar to Appletalk ! 78: // ! 79: ! 80: #define WSAEMSGPARTIAL (WSABASEERR+100) ! 81: ! 82: ! 83: // Maximum pap status size ! 84: #define MAX_PAP_STATUS_SIZE 255 ! 85: #define MIN_PAP_READ_BUF_SIZE 4096 ! 86: ! 87: // These are the unused 4 bytes returned in the PAP status packet. If ever ! 88: // they are to be interpreted, they will be available. ! 89: #define PAP_UNUSED_STATUS_BYTES 4 ! 90: ! 91: ! 92: // ! 93: // SOCKADDR_AT structure ! 94: // ! 95: ! 96: typedef struct sockaddr_at { ! 97: USHORT sat_family; ! 98: USHORT sat_net; ! 99: UCHAR sat_node; ! 100: UCHAR sat_socket; ! 101: } SOCKADDR_AT, *PSOCKADDR_AT; ! 102: ! 103: ! 104: // ! 105: // ***WARNING*** ! 106: // This is defined to be the same as the ATALK ADDRESS defined in atalktdi.h ! 107: // Change this if the other changes. ! 108: // ! 109: ! 110: typedef union ! 111: { ! 112: struct ! 113: { ! 114: USHORT Network; ! 115: UCHAR Node; ! 116: UCHAR Socket; ! 117: }; ! 118: ULONG Address; ! 119: } WSH_ATALK_ADDRESS, *PWSH_ATALK_ADDRESS; ! 120: ! 121: // ! 122: // Typedefs for the various options ! 123: // ! 124: ! 125: // ! 126: // ***WARNING***: ! 127: // This should be exactly the same as NBP_NAME defined in atalktdi.h ! 128: // ! 129: ! 130: #define MAX_ENTITY 32 ! 131: typedef struct { ! 132: CHAR ObjectNameLen; ! 133: CHAR ObjectName[MAX_ENTITY]; ! 134: CHAR TypeNameLen; ! 135: CHAR TypeName[MAX_ENTITY]; ! 136: CHAR ZoneNameLen; ! 137: CHAR ZoneName[MAX_ENTITY]; ! 138: } WSH_NBP_NAME, *PWSH_NBP_NAME; ! 139: ! 140: typedef struct ! 141: { ! 142: WSH_ATALK_ADDRESS Address; ! 143: USHORT Enumerator; ! 144: WSH_NBP_NAME NbpName; ! 145: } WSH_NBP_TUPLE, *PWSH_NBP_TUPLE; ! 146: ! 147: typedef WSH_NBP_NAME WSH_REGISTER_NAME, *PWSH_REGISTER_NAME; ! 148: typedef WSH_NBP_NAME WSH_DEREGISTER_NAME, *PWSH_DEREGISTER_NAME; ! 149: ! 150: typedef struct _WSH_LOOKUP_ZONES { ! 151: ULONG NoZones; ! 152: ! 153: // ! 154: // CHAR Zones[] - null separated zones ! 155: // ! 156: ! 157: } WSH_LOOKUP_ZONES, *PWSH_LOOKUP_ZONES; ! 158: ! 159: typedef struct _WSH_LOOKUP_NETDEF_ON_ADAPTER { ! 160: USHORT NetworkRangeLowerEnd; ! 161: USHORT NetworkRangeUpperEnd; ! 162: ! 163: // This will be followed by a null terminated ansi default zone. ! 164: // PUCHAR DefaultZone[] ! 165: ! 166: } WSH_LOOKUP_NETDEF_ON_ADAPTER , *PWSH_LOOKUP_NETDEF_ON_ADAPTER; ! 167: ! 168: typedef struct _WSH_LOOKUP_NAME { ! 169: WSH_NBP_TUPLE LookupTuple; ! 170: ULONG NoTuples; ! 171: ! 172: // ! 173: // Array of NoTuple WSH_NBP_TUPLEs ! 174: // ! 175: ! 176: } WSH_LOOKUP_NAME, *PWSH_LOOKUP_NAME; ! 177: ! 178: typedef struct _WSH_PAP_GET_SERVER_STATUS { ! 179: ! 180: SOCKADDR_AT ServerAddr; ! 181: UCHAR Reserved[PAP_UNUSED_STATUS_BYTES]; ! 182: UCHAR ServerStatus[MAX_PAP_STATUS_SIZE+1]; ! 183: ! 184: } WSH_PAP_GET_SERVER_STATUS, *PWSH_PAP_GET_SERVER_STATUS;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.