home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / atalkwsh.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  5KB  |  204 lines

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