1 /**
2  * This file is part of the mingw-w64 runtime package.
3  * No warranty is given; refer to the file DISCLAIMER within this package.
4  */
5 
6 #include <winapifamily.h>
7 
8 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
9 
10 #if defined (PNRP_USE_V1_API) && defined (PNRP_USE_V2_API)
11 #error either define PNRP_USE_V1_API, or PNRP_USE_V2_API
12 #endif
13 
14 #if !defined (PNRP_USE_V1_API) && !defined (PNRP_USE_V2_API)
15 #if _WIN32_WINNT >= 0x0600
16 #define PNRP_USE_V2_API
17 #else
18 #define PNRP_USE_V1_API
19 #endif
20 #endif
21 
22 #define PNRP_MAX_ENDPOINT_ADDRESSES (10)
23 #define PNRP_MAX_EXTENDED_PAYLOAD_BYTES (0x1000)
24 
25 #define WSZ_SCOPE_GLOBAL L"GLOBAL"
26 #define WSZ_SCOPE_SITELOCAL L"SITELOCAL"
27 #define WSZ_SCOPE_LINKLOCAL L"LINKLOCAL"
28 
29 typedef enum _PNRP_SCOPE {
30   PNRP_SCOPE_ANY = 0,
31   PNRP_GLOBAL_SCOPE = 1,
32   PNRP_SITE_LOCAL_SCOPE = 2,
33   PNRP_LINK_LOCAL_SCOPE = 3
34 } PNRP_SCOPE,*PPNRP_SCOPE;
35 
36 typedef enum _PNRP_CLOUD_STATE {
37   PNRP_CLOUD_STATE_VIRTUAL = 0,
38   PNRP_CLOUD_STATE_SYNCHRONISING = 1,
39   PNRP_CLOUD_STATE_ACTIVE = 2,
40   PNRP_CLOUD_STATE_DEAD = 3,
41   PNRP_CLOUD_STATE_DISABLED = 4,
42   PNRP_CLOUD_STATE_NO_NET = 5,
43   PNRP_CLOUD_STATE_ALONE = 6
44 } PNRP_CLOUD_STATE;
45 
46 typedef enum _PNRP_CLOUD_FLAGS {
47   PNRP_CLOUD_NO_FLAGS = 0,
48   PNRP_CLOUD_NAME_LOCAL = 1,
49   PNRP_CLOUD_RESOLVE_ONLY = 2,
50   PNRP_CLOUD_FULL_PARTICIPANT = 4
51 } PNRP_CLOUD_FLAGS;
52 
53 typedef enum _PNRP_REGISTERED_ID_STATE {
54   PNRP_REGISTERED_ID_STATE_OK = 1,
55   PNRP_REGISTERED_ID_STATE_PROBLEM = 2
56 } PNRP_REGISTERED_ID_STATE;
57 
58 typedef enum _PNRP_RESOLVE_CRITERIA {
59   PNRP_RESOLVE_CRITERIA_DEFAULT = 0,
60   PNRP_RESOLVE_CRITERIA_REMOTE_PEER_NAME = 1,
61   PNRP_RESOLVE_CRITERIA_NEAREST_REMOTE_PEER_NAME = 2,
62   PNRP_RESOLVE_CRITERIA_NON_CURRENT_PROCESS_PEER_NAME = 3,
63   PNRP_RESOLVE_CRITERIA_NEAREST_NON_CURRENT_PROCESS_PEER_NAME = 4,
64   PNRP_RESOLVE_CRITERIA_ANY_PEER_NAME = 5,
65   PNRP_RESOLVE_CRITERIA_NEAREST_PEER_NAME = 6
66 } PNRP_RESOLVE_CRITERIA;
67 
68 typedef struct _PNRP_CLOUD_ID {
69   INT AddressFamily;
70   PNRP_SCOPE Scope;
71   ULONG ScopeId;
72 } PNRP_CLOUD_ID,*PPNRP_CLOUD_ID;
73 
74 typedef enum _PNRP_EXTENDED_PAYLOAD_TYPE {
75   PNRP_EXTENDED_PAYLOAD_TYPE_NONE = 0,
76   PNRP_EXTENDED_PAYLOAD_TYPE_BINARY,
77   PNRP_EXTENDED_PAYLOAD_TYPE_STRING,
78 } PNRP_EXTENDED_PAYLOAD_TYPE,*PPNRP_EXTENDED_PAYLOAD_TYPE;
79 
80 #endif
81