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 #ifndef _PNRPNS_H_
6 #define _PNRPNS_H_
7 
8 #include <winapifamily.h>
9 
10 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
11 
12 #include "pnrpdef.h"
13 
14 #ifndef NS_PNRPNAME
15 #define NS_PNRPNAME (38)
16 #endif
17 
18 #ifndef NS_PNRPCLOUD
19 #define NS_PNRPCLOUD (39)
20 #endif
21 
22 #define PNRPINFO_HINT 0x1
23 
24 typedef struct _PNRPINFO_V1 {
25   DWORD dwSize;
26   LPWSTR lpwszIdentity;
27   DWORD nMaxResolve;
28   DWORD dwTimeout;
29   DWORD dwLifetime;
30   PNRP_RESOLVE_CRITERIA enResolveCriteria;
31   DWORD dwFlags;
32   SOCKET_ADDRESS saHint;
33   PNRP_REGISTERED_ID_STATE enNameState;
34 } PNRPINFO_V1,*PPNRPINFO_V1;
35 
36 typedef struct _PNRPINFO_V2 {
37   DWORD dwSize;
38   LPWSTR lpwszIdentity;
39   DWORD nMaxResolve;
40   DWORD dwTimeout;
41   DWORD dwLifetime;
42   PNRP_RESOLVE_CRITERIA enResolveCriteria;
43   DWORD dwFlags;
44   SOCKET_ADDRESS saHint;
45   PNRP_REGISTERED_ID_STATE enNameState;
46   PNRP_EXTENDED_PAYLOAD_TYPE enExtendedPayloadType;
47   __C89_NAMELESS union {
48     BLOB blobPayload;
49     PWSTR pwszPayload;
50   };
51 } PNRPINFO_V2,*PPNRPINFO_V2;
52 
53 #ifdef PNRP_USE_V1_API
54 typedef PNRPINFO_V1 PNRPINFO;
55 typedef PPNRPINFO_V1 PPNRPINFO;
56 #else
57 typedef PNRPINFO_V2 PNRPINFO;
58 typedef PPNRPINFO_V2 PPNRPINFO;
59 #endif
60 
61 typedef struct _PNRPCLOUDINFO {
62   DWORD dwSize;
63   PNRP_CLOUD_ID Cloud;
64   PNRP_CLOUD_STATE enCloudState;
65   PNRP_CLOUD_FLAGS enCloudFlags;
66 } PNRPCLOUDINFO,*PPNRPCLOUDINFO;
67 
68 #endif
69 #endif
70 
71 #ifdef DEFINE_GUID
72 DEFINE_GUID (NS_PROVIDER_PNRPNAME, 0x03fe89cd, 0x766d, 0x4976, 0xb9, 0xc1, 0xbb, 0x9b, 0xc4, 0x2c, 0x7b, 0x4d);
73 DEFINE_GUID (NS_PROVIDER_PNRPCLOUD, 0x03fe89ce, 0x766d, 0x4976, 0xb9, 0xc1, 0xbb, 0x9b, 0xc4, 0x2c, 0x7b, 0x4d);
74 DEFINE_GUID (SVCID_PNRPCLOUD, 0xc2239ce6, 0x00c0, 0x4fbf, 0xba, 0xd6, 0x18, 0x13, 0x93, 0x85, 0xa4, 0x9a);
75 DEFINE_GUID (SVCID_PNRPNAME_V1, 0xc2239ce5, 0x00c0, 0x4fbf, 0xba, 0xd6, 0x18, 0x13, 0x93, 0x85, 0xa4, 0x9a);
76 DEFINE_GUID (SVCID_PNRPNAME_V2, 0xc2239ce7, 0x00c0, 0x4fbf, 0xba, 0xd6, 0x18, 0x13, 0x93, 0x85, 0xa4, 0x9a);
77 #ifdef PNRP_USE_V1_API
78 #define SVCID_PNRPNAME SVCID_PNRPNAME_V1
79 #else
80 #define SVCID_PNRPNAME SVCID_PNRPNAME_V2
81 #endif
82 #endif
83