master
 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
29typedef 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
36typedef 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
46typedef 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
53typedef 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
58typedef 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
68typedef struct _PNRP_CLOUD_ID {
69  INT AddressFamily;
70  PNRP_SCOPE Scope;
71  ULONG ScopeId;
72} PNRP_CLOUD_ID,*PPNRP_CLOUD_ID;
73
74typedef 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