home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / ATALKWSH.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  4.6 KB  |  200 lines

  1. /*++
  2.  
  3. Copyright 1992 - 1998 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. Revision History:
  15.     10 Jul 1992     Initial Version
  16.  
  17. --*/
  18.  
  19. #ifndef    _ATALKWSH_
  20. #pragma option push -b -a8 -pc -A- /*P_O_Push_S*/
  21. #define    _ATALKWSH_
  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_REMOVE_NAME                SO_DEREGISTER_NAME
  58. #define SO_LOOKUP_NAME               0xA002
  59. #define SO_CONFIRM_NAME               0xA003
  60. #define    SO_LOOKUP_MYZONE            0xA004
  61. #define    SO_GETMYZONE                SO_LOOKUP_MYZONE
  62. #define SO_LOOKUP_ZONES              0xA005
  63. #define SO_GETZONELIST                SO_LOOKUP_ZONES
  64. #define    SO_LOOKUP_ZONES_ON_ADAPTER    0xA006
  65. #define    SO_GETLOCALZONES            SO_LOOKUP_ZONES_ON_ADAPTER
  66. #define    SO_LOOKUP_NETDEF_ON_ADAPTER    0xA007
  67. #define    SO_GETNETINFO                SO_LOOKUP_NETDEF_ON_ADAPTER
  68.  
  69. //
  70. //  PAP-specific options
  71. //
  72.  
  73. #define SO_PAP_SET_SERVER_STATUS    0xA007
  74. #define SO_PAP_GET_SERVER_STATUS    0xA008
  75. #define    SO_PAP_PRIME_READ            0xA009
  76.  
  77.  
  78. #define ATADDR_ANY                     0            // Dynamic socket (=0)
  79. #define ATADDR_BROADCAST               0xFF         // Broadcast node id (=ff)
  80.  
  81. //
  82. //    Define flags/error codes peculiar to Appletalk
  83. //
  84.  
  85. #define    WSAEMSGPARTIAL                (WSABASEERR+100)
  86.  
  87.  
  88. //    Maximum pap status size
  89. #define    MAX_PAP_STATUS_SIZE            255
  90. #define    MIN_PAP_READ_BUF_SIZE        4096
  91.  
  92. //    These are the unused 4 bytes returned in the PAP status packet. If ever
  93. //    they are to be interpreted, they will be available.
  94. #define    PAP_UNUSED_STATUS_BYTES        4
  95.  
  96.  
  97. //
  98. //  SOCKADDR_AT structure
  99. //
  100.  
  101. typedef struct sockaddr_at
  102. {
  103.     USHORT    sat_family;
  104.     USHORT    sat_net;
  105.     UCHAR     sat_node;
  106.     UCHAR     sat_socket;
  107. } SOCKADDR_AT, *PSOCKADDR_AT;
  108.  
  109.  
  110. //
  111. //    ***WARNING***
  112. //    This is defined to be the same as the ATALK ADDRESS defined in atalktdi.h
  113. //    Change this if the other changes.
  114. //
  115.  
  116. typedef    union
  117. {
  118.     struct
  119.     {
  120.         USHORT        Network;
  121.         UCHAR        Node;
  122.         UCHAR       Socket;
  123.     };
  124.     ULONG            Address;
  125. } WSH_ATALK_ADDRESS, *PWSH_ATALK_ADDRESS;
  126.  
  127. //
  128. //  Typedefs for the various options
  129. //
  130.  
  131. //
  132. //  ***WARNING***:
  133. //  This should be exactly the same as NBP_NAME defined in atalktdi.h
  134. //
  135.  
  136. #define MAX_ENTITY  32
  137. typedef struct
  138. {
  139.     CHAR    ObjectNameLen;
  140.     CHAR    ObjectName[MAX_ENTITY];
  141.     CHAR    TypeNameLen;
  142.     CHAR    TypeName[MAX_ENTITY];
  143.     CHAR    ZoneNameLen;
  144.     CHAR    ZoneName[MAX_ENTITY];
  145. } WSH_NBP_NAME, *PWSH_NBP_NAME;
  146.  
  147. typedef struct
  148. {
  149.     WSH_ATALK_ADDRESS        Address;
  150.     USHORT                    Enumerator;
  151.     WSH_NBP_NAME            NbpName;
  152. } WSH_NBP_TUPLE, *PWSH_NBP_TUPLE;
  153.  
  154. typedef WSH_NBP_NAME    WSH_REGISTER_NAME, *PWSH_REGISTER_NAME;
  155. typedef WSH_NBP_NAME    WSH_DEREGISTER_NAME, *PWSH_DEREGISTER_NAME;
  156. typedef WSH_NBP_NAME    WSH_REMOVE_NAME, *PWSH_REMOVE_NAME;
  157.  
  158. typedef struct _WSH_LOOKUP_ZONES
  159. {
  160.     ULONG   NoZones;
  161.  
  162.     //
  163.     //  CHAR    Zones[] - null separated zones
  164.     //
  165.  
  166. } WSH_LOOKUP_ZONES, *PWSH_LOOKUP_ZONES;
  167.  
  168. typedef struct _WSH_LOOKUP_NETDEF_ON_ADAPTER
  169. {
  170.     USHORT    NetworkRangeLowerEnd;
  171.     USHORT    NetworkRangeUpperEnd;
  172.  
  173.     //    This will be followed by a null terminated ansi default zone.
  174.     //    PUCHAR    DefaultZone[]
  175.  
  176. } WSH_LOOKUP_NETDEF_ON_ADAPTER , *PWSH_LOOKUP_NETDEF_ON_ADAPTER;
  177.  
  178. typedef struct _WSH_LOOKUP_NAME
  179. {
  180.     WSH_NBP_TUPLE    LookupTuple;
  181.     ULONG   NoTuples;
  182.  
  183.     //
  184.     //  Array of NoTuple WSH_NBP_TUPLEs
  185.     //
  186.  
  187. } WSH_LOOKUP_NAME, *PWSH_LOOKUP_NAME;
  188.  
  189. typedef struct _WSH_PAP_GET_SERVER_STATUS
  190. {
  191.     SOCKADDR_AT            ServerAddr;
  192.     UCHAR                Reserved[PAP_UNUSED_STATUS_BYTES];
  193.     UCHAR                ServerStatus[MAX_PAP_STATUS_SIZE+1];
  194.  
  195. } WSH_PAP_GET_SERVER_STATUS, *PWSH_PAP_GET_SERVER_STATUS;
  196.  
  197. #pragma option pop /*P_O_Pop*/
  198. #endif    // _ATALKWSH_
  199.  
  200.