home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c083 / 19.ddi / GENINC32.PAK / ATALKWSH.H next >
Encoding:
C/C++ Source or Header  |  1993-12-02  |  4.1 KB  |  185 lines

  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 (nikhilk@microsoft.com)
  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;
  185.