[CMAKE]
[reactos.git] / include / reactos / winsock / rnr20lib.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS WinSock 2 NSP
4 * FILE: include/nsp_dns.h
5 * PURPOSE: WinSock 2 NSP Header
6 */
7
8 #ifndef __NSP_H
9 #define __NSP_H
10
11 /* DEFINES *******************************************************************/
12
13 /* Lookup Flags */
14 #define DONE 0x01
15 #define REVERSE 0x02
16 #define LOCAL 0x04
17 #define IANA 0x10
18 #define LOOPBACK 0x20
19
20 /* Protocol Flags */
21 #define UDP 0x01
22 #define TCP 0x02
23 #define ATM 0x04
24
25 /* GUID Masks */
26 #define NBT_MASK 0x01
27 #define DNS_MASK 0x02
28
29 /* TYPES *********************************************************************/
30
31 typedef struct _RNR_CONTEXT
32 {
33 LIST_ENTRY ListEntry;
34 HANDLE Handle;
35 PDNS_BLOB CachedSaBlob;
36 DWORD Signature;
37 DWORD RefCount;
38 DWORD Instance;
39 DWORD LookupFlags;
40 DWORD RnrId;
41 DWORD dwNameSpace;
42 DWORD RrType;
43 DWORD dwControlFlags;
44 DWORD UdpPort;
45 DWORD TcpPort;
46 DWORD ProtocolFlags;
47 BLOB CachedBlob;
48 GUID lpServiceClassId;
49 GUID lpProviderId;
50 WCHAR ServiceName[1];
51 } RNR_CONTEXT, *PRNR_CONTEXT;
52
53 typedef struct _RNR_TEB_DATA
54 {
55 ULONG Foo;
56 } RNR_TEB_DATA, *PRNR_TEB_DATA;
57
58 /* PROTOTYPES ****************************************************************/
59
60 /*
61 * proc.c
62 */
63 BOOLEAN
64 WINAPI
65 RNRPROV_SockEnterApi(VOID);
66
67 /*
68 * oldutil.c
69 */
70 DWORD
71 WINAPI
72 GetServerAndProtocolsFromString(
73 PWCHAR ServiceString,
74 LPGUID ServiceType,
75 PSERVENT *ReverseServent
76 );
77
78 DWORD
79 WINAPI
80 FetchPortFromClassInfo(
81 IN DWORD Type,
82 IN LPGUID Guid,
83 IN LPWSASERVICECLASSINFOW ServiceClassInfo
84 );
85
86 PSERVENT
87 WSPAPI
88 CopyServEntry(
89 IN PSERVENT Servent,
90 IN OUT PULONG_PTR BufferPos,
91 IN OUT PULONG BufferFreeSize,
92 IN OUT PULONG BlobSize,
93 IN BOOLEAN Relative
94 );
95
96 WORD
97 WINAPI
98 GetDnsQueryTypeFromGuid(
99 IN LPGUID Guid
100 );
101
102 /*
103 * context.c
104 */
105 VOID
106 WSPAPI
107 RnrCtx_ListCleanup(VOID);
108
109 VOID
110 WSPAPI
111 RnrCtx_Release(PRNR_CONTEXT RnrContext);
112
113 PRNR_CONTEXT
114 WSPAPI
115 RnrCtx_Get(
116 HANDLE LookupHandle,
117 DWORD dwControlFlags,
118 PLONG Instance
119 );
120
121 PRNR_CONTEXT
122 WSPAPI
123 RnrCtx_Create(
124 IN HANDLE LookupHandle,
125 IN LPWSTR ServiceName
126 );
127
128 VOID
129 WSPAPI
130 RnrCtx_DecInstance(IN PRNR_CONTEXT RnrContext);
131
132 /*
133 * util.c
134 */
135 PVOID
136 WSPAPI
137 Temp_AllocZero(IN DWORD Size);
138
139 /*
140 * lookup.c
141 */
142 PDNS_BLOB
143 WSPAPI
144 Rnr_DoHostnameLookup(IN PRNR_CONTEXT Context);
145
146 PDNS_BLOB
147 WSPAPI
148 Rnr_GetHostByAddr(IN PRNR_CONTEXT Context);
149
150 PDNS_BLOB
151 WSPAPI
152 Rnr_DoDnsLookup(IN PRNR_CONTEXT Context);
153
154 BOOLEAN
155 WINAPI
156 Rnr_CheckIfUseNbt(PRNR_CONTEXT RnrContext);
157
158 PDNS_BLOB
159 WINAPI
160 Rnr_NbtResolveAddr(IN IN_ADDR Address);
161
162 PDNS_BLOB
163 WINAPI
164 Rnr_NbtResolveName(IN LPWSTR Name);
165
166 /*
167 * init.c
168 */
169 VOID
170 WSPAPI
171 Rnr_ProcessInit(VOID);
172
173 VOID
174 WSPAPI
175 Rnr_ProcessCleanup(VOID);
176
177 BOOLEAN
178 WSPAPI
179 Rnr_ThreadInit(VOID);
180
181 VOID
182 WSPAPI
183 Rnr_ThreadCleanup(VOID);
184
185 /*
186 * nsp.c
187 */
188 VOID
189 WSPAPI
190 Nsp_GlobalCleanup(VOID);
191
192 INT
193 WINAPI
194 Dns_NSPCleanup(IN LPGUID lpProviderId);
195
196 INT
197 WINAPI
198 Dns_NSPSetService(
199 IN LPGUID lpProviderId,
200 IN LPWSASERVICECLASSINFOW lpServiceClassInfo,
201 IN LPWSAQUERYSETW lpqsRegInfo,
202 IN WSAESETSERVICEOP essOperation,
203 IN DWORD dwControlFlags
204 );
205
206 INT
207 WINAPI
208 Dns_NSPInstallServiceClass(
209 IN LPGUID lpProviderId,
210 IN LPWSASERVICECLASSINFOW lpServiceClassInfo
211 );
212
213 INT
214 WINAPI
215 Dns_NSPRemoveServiceClass(
216 IN LPGUID lpProviderId,
217 IN LPGUID lpServiceCallId
218 );
219
220 INT
221 WINAPI
222 Dns_NSPGetServiceClassInfo(
223 IN LPGUID lpProviderId,
224 IN OUT LPDWORD lpdwBufSize,
225 IN OUT LPWSASERVICECLASSINFOW lpServiceClassInfo
226 );
227
228 INT
229 WINAPI
230 Dns_NSPLookupServiceBegin(
231 LPGUID lpProviderId,
232 LPWSAQUERYSETW lpqsRestrictions,
233 LPWSASERVICECLASSINFOW lpServiceClassInfo,
234 DWORD dwControlFlags,
235 LPHANDLE lphLookup
236 );
237
238 INT
239 WINAPI
240 Dns_NSPLookupServiceNext(
241 IN HANDLE hLookup,
242 IN DWORD dwControlFlags,
243 IN OUT LPDWORD lpdwBufferLength,
244 OUT LPWSAQUERYSETW lpqsResults
245 );
246
247 INT
248 WINAPI
249 Dns_NSPLookupServiceEnd(IN HANDLE hLookup);
250
251 INT
252 WINAPI
253 Dns_NSPStartup(
254 IN LPGUID lpProviderId,
255 IN OUT LPNSP_ROUTINE lpsnpRoutines
256 );
257
258 /* Unchecked yet */
259 #define ATM_ADDRESS_LENGTH 20
260 #define WS2_INTERNAL_MAX_ALIAS 16
261 #define MAX_HOSTNAME_LEN 256
262 #define MAXADDRS 16
263
264 #endif
265