comparison fuhtark_test/include/winapi/nspapi.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
comparison
equal deleted inserted replaced
1499:1f58458b7ef7 1500:91c8c3b7cbf0
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef _NSPAPI_INCLUDED
7 #define _NSPAPI_INCLUDED
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 #ifndef _tagBLOB_DEFINED
14 #define _tagBLOB_DEFINED
15 #define _BLOB_DEFINED
16 #define _LPBLOB_DEFINED
17 typedef struct _BLOB {
18 ULONG cbSize;
19 BYTE *pBlobData;
20 } BLOB,*LPBLOB;
21 #endif
22
23 #ifndef GUID_DEFINED
24 #define GUID_DEFINED
25 typedef struct _GUID {
26 unsigned long Data1;
27 unsigned short Data2;
28 unsigned short Data3;
29 unsigned char Data4[8];
30 } GUID;
31 #endif
32
33 #ifndef __LPGUID_DEFINED__
34 #define __LPGUID_DEFINED__
35 typedef GUID *LPGUID;
36 #endif
37
38 #define SERVICE_RESOURCE (0x00000001)
39 #define SERVICE_SERVICE (0x00000002)
40 #define SERVICE_LOCAL (0x00000004)
41
42 #define SERVICE_REGISTER (0x00000001)
43 #define SERVICE_DEREGISTER (0x00000002)
44 #define SERVICE_FLUSH (0x00000003)
45 #define SERVICE_ADD_TYPE (0x00000004)
46 #define SERVICE_DELETE_TYPE (0x00000005)
47
48 #define SERVICE_FLAG_DEFER (0x00000001)
49 #define SERVICE_FLAG_HARD (0x00000002)
50
51 #define PROP_COMMENT (0x00000001)
52 #define PROP_LOCALE (0x00000002)
53 #define PROP_DISPLAY_HINT (0x00000004)
54 #define PROP_VERSION (0x00000008)
55 #define PROP_START_TIME (0x00000010)
56 #define PROP_MACHINE (0x00000020)
57 #define PROP_ADDRESSES (0x00000100)
58 #define PROP_SD (0x00000200)
59 #define PROP_ALL (0x80000000)
60
61 #define SERVICE_ADDRESS_FLAG_RPC_CN (0x00000001)
62 #define SERVICE_ADDRESS_FLAG_RPC_DG (0x00000002)
63 #define SERVICE_ADDRESS_FLAG_RPC_NB (0x00000004)
64
65 #define NS_DEFAULT (0)
66
67 #define NS_SAP (1)
68 #define NS_NDS (2)
69 #define NS_PEER_BROWSE (3)
70
71 #define NS_TCPIP_LOCAL (10)
72 #define NS_TCPIP_HOSTS (11)
73 #define NS_DNS (12)
74 #define NS_NETBT (13)
75 #define NS_WINS (14)
76
77 #define NS_NBP (20)
78
79 #define NS_MS (30)
80 #define NS_STDA (31)
81 #define NS_NTDS (32)
82
83 #define NS_X500 (40)
84 #define NS_NIS (41)
85
86 #define NS_VNS (50)
87
88 #define NSTYPE_HIERARCHICAL (0x00000001)
89 #define NSTYPE_DYNAMIC (0x00000002)
90 #define NSTYPE_ENUMERABLE (0x00000004)
91 #define NSTYPE_WORKGROUP (0x00000008)
92
93 #define XP_CONNECTIONLESS (0x00000001)
94 #define XP_GUARANTEED_DELIVERY (0x00000002)
95 #define XP_GUARANTEED_ORDER (0x00000004)
96 #define XP_MESSAGE_ORIENTED (0x00000008)
97 #define XP_PSEUDO_STREAM (0x00000010)
98 #define XP_GRACEFUL_CLOSE (0x00000020)
99 #define XP_EXPEDITED_DATA (0x00000040)
100 #define XP_CONNECT_DATA (0x00000080)
101 #define XP_DISCONNECT_DATA (0x00000100)
102 #define XP_SUPPORTS_BROADCAST (0x00000200)
103 #define XP_SUPPORTS_MULTICAST (0x00000400)
104 #define XP_BANDWIDTH_ALLOCATION (0x00000800)
105 #define XP_FRAGMENTATION (0x00001000)
106 #define XP_ENCRYPTS (0x00002000)
107
108 #define RES_SOFT_SEARCH (0x00000001)
109 #define RES_FIND_MULTIPLE (0x00000002)
110 #define RES_SERVICE (0x00000004)
111
112 #define SERVICE_TYPE_VALUE_SAPIDA "SapId"
113 #define SERVICE_TYPE_VALUE_SAPIDW L"SapId"
114
115 #define SERVICE_TYPE_VALUE_CONNA "ConnectionOriented"
116 #define SERVICE_TYPE_VALUE_CONNW L"ConnectionOriented"
117
118 #define SERVICE_TYPE_VALUE_TCPPORTA "TcpPort"
119 #define SERVICE_TYPE_VALUE_TCPPORTW L"TcpPort"
120
121 #define SERVICE_TYPE_VALUE_UDPPORTA "UdpPort"
122 #define SERVICE_TYPE_VALUE_UDPPORTW L"UdpPort"
123
124 #ifdef UNICODE
125
126 #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDW
127 #define SERVICE_TYPE_VALUE_CONN SERVICE_TYPE_VALUE_CONNW
128 #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTW
129 #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTW
130 #else
131
132 #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDA
133 #define SERVICE_TYPE_VALUE_CONN SERVICE_TYPE_VALUE_CONNA
134 #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTA
135 #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTA
136 #endif
137
138 #define SET_SERVICE_PARTIAL_SUCCESS (0x00000001)
139
140 typedef struct _NS_INFOA {
141 DWORD dwNameSpace;
142 DWORD dwNameSpaceFlags;
143 LPSTR lpNameSpace;
144 } NS_INFOA,*PNS_INFOA,*LPNS_INFOA;
145
146 typedef struct _NS_INFOW {
147 DWORD dwNameSpace;
148 DWORD dwNameSpaceFlags;
149 LPWSTR lpNameSpace;
150 } NS_INFOW,*PNS_INFOW,*LPNS_INFOW;
151 #ifdef UNICODE
152 typedef NS_INFOW NS_INFO;
153 typedef PNS_INFOW PNS_INFO;
154 typedef LPNS_INFOW LPNS_INFO;
155 #else
156 typedef NS_INFOA NS_INFO;
157 typedef PNS_INFOA PNS_INFO;
158 typedef LPNS_INFOA LPNS_INFO;
159 #endif
160
161 typedef struct _SERVICE_TYPE_VALUE {
162 DWORD dwNameSpace;
163 DWORD dwValueType;
164 DWORD dwValueSize;
165 DWORD dwValueNameOffset;
166 DWORD dwValueOffset;
167 } SERVICE_TYPE_VALUE,*PSERVICE_TYPE_VALUE,*LPSERVICE_TYPE_VALUE;
168
169 typedef struct _SERVICE_TYPE_VALUE_ABSA {
170 DWORD dwNameSpace;
171 DWORD dwValueType;
172 DWORD dwValueSize;
173 LPSTR lpValueName;
174 PVOID lpValue;
175 } SERVICE_TYPE_VALUE_ABSA,*PSERVICE_TYPE_VALUE_ABSA,*LPSERVICE_TYPE_VALUE_ABSA;
176
177 typedef struct _SERVICE_TYPE_VALUE_ABSW {
178 DWORD dwNameSpace;
179 DWORD dwValueType;
180 DWORD dwValueSize;
181 LPWSTR lpValueName;
182 PVOID lpValue;
183 } SERVICE_TYPE_VALUE_ABSW,*PSERVICE_TYPE_VALUE_ABSW,*LPSERVICE_TYPE_VALUE_ABSW;
184 #ifdef UNICODE
185 typedef SERVICE_TYPE_VALUE_ABSW SERVICE_TYPE_VALUE_ABS;
186 typedef PSERVICE_TYPE_VALUE_ABSW PSERVICE_TYPE_VALUE_ABS;
187 typedef LPSERVICE_TYPE_VALUE_ABSW LPSERVICE_TYPE_VALUE_ABS;
188 #else
189 typedef SERVICE_TYPE_VALUE_ABSA SERVICE_TYPE_VALUE_ABS;
190 typedef PSERVICE_TYPE_VALUE_ABSA PSERVICE_TYPE_VALUE_ABS;
191 typedef LPSERVICE_TYPE_VALUE_ABSA LPSERVICE_TYPE_VALUE_ABS;
192 #endif
193
194 typedef struct _SERVICE_TYPE_INFO {
195 DWORD dwTypeNameOffset;
196 DWORD dwValueCount;
197 SERVICE_TYPE_VALUE Values[1];
198 } SERVICE_TYPE_INFO,*PSERVICE_TYPE_INFO,*LPSERVICE_TYPE_INFO;
199
200 typedef struct _SERVICE_TYPE_INFO_ABSA {
201 LPSTR lpTypeName;
202 DWORD dwValueCount;
203 SERVICE_TYPE_VALUE_ABSA Values[1];
204 } SERVICE_TYPE_INFO_ABSA,*PSERVICE_TYPE_INFO_ABSA,*LPSERVICE_TYPE_INFO_ABSA;
205 typedef struct _SERVICE_TYPE_INFO_ABSW {
206 LPWSTR lpTypeName;
207 DWORD dwValueCount;
208 SERVICE_TYPE_VALUE_ABSW Values[1];
209 } SERVICE_TYPE_INFO_ABSW,*PSERVICE_TYPE_INFO_ABSW,*LPSERVICE_TYPE_INFO_ABSW;
210 #ifdef UNICODE
211 typedef SERVICE_TYPE_INFO_ABSW SERVICE_TYPE_INFO_ABS;
212 typedef PSERVICE_TYPE_INFO_ABSW PSERVICE_TYPE_INFO_ABS;
213 typedef LPSERVICE_TYPE_INFO_ABSW LPSERVICE_TYPE_INFO_ABS;
214 #else
215 typedef SERVICE_TYPE_INFO_ABSA SERVICE_TYPE_INFO_ABS;
216 typedef PSERVICE_TYPE_INFO_ABSA PSERVICE_TYPE_INFO_ABS;
217 typedef LPSERVICE_TYPE_INFO_ABSA LPSERVICE_TYPE_INFO_ABS;
218 #endif
219
220 typedef struct _SERVICE_ADDRESS {
221 DWORD dwAddressType;
222 DWORD dwAddressFlags;
223 DWORD dwAddressLength;
224 DWORD dwPrincipalLength;
225 BYTE *lpAddress;
226 BYTE *lpPrincipal;
227 } SERVICE_ADDRESS,*PSERVICE_ADDRESS,*LPSERVICE_ADDRESS;
228
229 typedef struct _SERVICE_ADDRESSES {
230 DWORD dwAddressCount;
231 SERVICE_ADDRESS Addresses[1];
232 } SERVICE_ADDRESSES,*PSERVICE_ADDRESSES,*LPSERVICE_ADDRESSES;
233
234 typedef struct _SERVICE_INFOA {
235 LPGUID lpServiceType;
236 LPSTR lpServiceName;
237 LPSTR lpComment;
238 LPSTR lpLocale;
239 DWORD dwDisplayHint;
240 DWORD dwVersion;
241 DWORD dwTime;
242 LPSTR lpMachineName;
243 LPSERVICE_ADDRESSES lpServiceAddress;
244 BLOB ServiceSpecificInfo;
245 } SERVICE_INFOA,*PSERVICE_INFOA,*LPSERVICE_INFOA;
246
247 typedef struct _SERVICE_INFOW {
248 LPGUID lpServiceType;
249 LPWSTR lpServiceName;
250 LPWSTR lpComment;
251 LPWSTR lpLocale;
252 DWORD dwDisplayHint;
253 DWORD dwVersion;
254 DWORD dwTime;
255 LPWSTR lpMachineName;
256 LPSERVICE_ADDRESSES lpServiceAddress;
257 BLOB ServiceSpecificInfo;
258 } SERVICE_INFOW,*PSERVICE_INFOW,*LPSERVICE_INFOW;
259 #ifdef UNICODE
260 typedef SERVICE_INFOW SERVICE_INFO;
261 typedef PSERVICE_INFOW PSERVICE_INFO;
262 typedef LPSERVICE_INFOW LPSERVICE_INFO;
263 #else
264 typedef SERVICE_INFOA SERVICE_INFO;
265 typedef PSERVICE_INFOA PSERVICE_INFO;
266 typedef LPSERVICE_INFOA LPSERVICE_INFO;
267 #endif
268
269 typedef struct _NS_SERVICE_INFOA {
270 DWORD dwNameSpace;
271 SERVICE_INFOA ServiceInfo;
272 } NS_SERVICE_INFOA,*PNS_SERVICE_INFOA,*LPNS_SERVICE_INFOA;
273
274 typedef struct _NS_SERVICE_INFOW {
275 DWORD dwNameSpace;
276 SERVICE_INFOW ServiceInfo;
277 } NS_SERVICE_INFOW,*PNS_SERVICE_INFOW,*LPNS_SERVICE_INFOW;
278 #ifdef UNICODE
279 typedef NS_SERVICE_INFOW NS_SERVICE_INFO;
280 typedef PNS_SERVICE_INFOW PNS_SERVICE_INFO;
281 typedef LPNS_SERVICE_INFOW LPNS_SERVICE_INFO;
282 #else
283 typedef NS_SERVICE_INFOA NS_SERVICE_INFO;
284 typedef PNS_SERVICE_INFOA PNS_SERVICE_INFO;
285 typedef LPNS_SERVICE_INFOA LPNS_SERVICE_INFO;
286 #endif
287
288 #ifndef __CSADDR_DEFINED__
289 #define __CSADDR_DEFINED__
290
291 typedef struct _SOCKET_ADDRESS {
292 LPSOCKADDR lpSockaddr;
293 INT iSockaddrLength;
294 } SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS;
295
296 typedef struct _CSADDR_INFO {
297 SOCKET_ADDRESS LocalAddr;
298 SOCKET_ADDRESS RemoteAddr;
299 INT iSocketType;
300 INT iProtocol;
301 } CSADDR_INFO,*PCSADDR_INFO,*LPCSADDR_INFO;
302 #endif
303
304 typedef struct _PROTOCOL_INFOA {
305 DWORD dwServiceFlags;
306 INT iAddressFamily;
307 INT iMaxSockAddr;
308 INT iMinSockAddr;
309 INT iSocketType;
310 INT iProtocol;
311 DWORD dwMessageSize;
312 LPSTR lpProtocol;
313 } PROTOCOL_INFOA,*PPROTOCOL_INFOA,*LPPROTOCOL_INFOA;
314
315 typedef struct _PROTOCOL_INFOW {
316 DWORD dwServiceFlags;
317 INT iAddressFamily;
318 INT iMaxSockAddr;
319 INT iMinSockAddr;
320 INT iSocketType;
321 INT iProtocol;
322 DWORD dwMessageSize;
323 LPWSTR lpProtocol;
324 } PROTOCOL_INFOW,*PPROTOCOL_INFOW,*LPPROTOCOL_INFOW;
325 #ifdef UNICODE
326 typedef PROTOCOL_INFOW PROTOCOL_INFO;
327 typedef PPROTOCOL_INFOW PPROTOCOL_INFO;
328 typedef LPPROTOCOL_INFOW LPPROTOCOL_INFO;
329 #else
330 typedef PROTOCOL_INFOA PROTOCOL_INFO;
331 typedef PPROTOCOL_INFOA PPROTOCOL_INFO;
332 typedef LPPROTOCOL_INFOA LPPROTOCOL_INFO;
333 #endif
334
335 typedef struct _NETRESOURCE2A {
336 DWORD dwScope;
337 DWORD dwType;
338 DWORD dwUsage;
339 DWORD dwDisplayType;
340 LPSTR lpLocalName;
341 LPSTR lpRemoteName;
342 LPSTR lpComment;
343 NS_INFO ns_info;
344 GUID ServiceType;
345 DWORD dwProtocols;
346 LPINT lpiProtocols;
347 } NETRESOURCE2A,*PNETRESOURCE2A,*LPNETRESOURCE2A;
348
349 typedef struct _NETRESOURCE2W {
350 DWORD dwScope;
351 DWORD dwType;
352 DWORD dwUsage;
353 DWORD dwDisplayType;
354 LPWSTR lpLocalName;
355 LPWSTR lpRemoteName;
356 LPWSTR lpComment;
357 NS_INFO ns_info;
358 GUID ServiceType;
359 DWORD dwProtocols;
360 LPINT lpiProtocols;
361 } NETRESOURCE2W,*PNETRESOURCE2W,*LPNETRESOURCE2W;
362 #ifdef UNICODE
363 typedef NETRESOURCE2W NETRESOURCE2;
364 typedef PNETRESOURCE2W PNETRESOURCE2;
365 typedef LPNETRESOURCE2W LPNETRESOURCE2;
366 #else
367 typedef NETRESOURCE2A NETRESOURCE2;
368 typedef PNETRESOURCE2A PNETRESOURCE2;
369 typedef LPNETRESOURCE2A LPNETRESOURCE2;
370 #endif
371
372 typedef DWORD (*LPFN_NSPAPI)(VOID);
373
374 typedef VOID (*LPSERVICE_CALLBACK_PROC)(LPARAM lParam,HANDLE hAsyncTaskHandle);
375 typedef struct _SERVICE_ASYNC_INFO {
376 LPSERVICE_CALLBACK_PROC lpServiceCallbackProc;
377 LPARAM lParam;
378 HANDLE hAsyncTaskHandle;
379 } SERVICE_ASYNC_INFO,*PSERVICE_ASYNC_INFO,*LPSERVICE_ASYNC_INFO;
380
381 #ifdef UNICODE
382 #define EnumProtocols EnumProtocolsW
383 #define GetAddressByName GetAddressByNameW
384 #define GetTypeByName GetTypeByNameW
385 #define GetNameByType GetNameByTypeW
386 #define SetService SetServiceW
387 #define GetService GetServiceW
388 #else
389 #define EnumProtocols EnumProtocolsA
390 #define GetAddressByName GetAddressByNameA
391 #define GetTypeByName GetTypeByNameA
392 #define GetNameByType GetNameByTypeA
393 #define SetService SetServiceA
394 #define GetService GetServiceA
395 #endif
396
397 INT WINAPI EnumProtocolsA(LPINT lpiProtocols,LPVOID lpProtocolBuffer,LPDWORD lpdwBufferLength);
398 INT WINAPI EnumProtocolsW(LPINT lpiProtocols,LPVOID lpProtocolBuffer,LPDWORD lpdwBufferLength);
399 INT WINAPI GetAddressByNameA(DWORD dwNameSpace,LPGUID lpServiceType,LPSTR lpServiceName,LPINT lpiProtocols,DWORD dwResolution,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,LPVOID lpCsaddrBuffer,LPDWORD lpdwBufferLength,LPSTR lpAliasBuffer,LPDWORD lpdwAliasBufferLength);
400 INT WINAPI GetAddressByNameW(DWORD dwNameSpace,LPGUID lpServiceType,LPWSTR lpServiceName,LPINT lpiProtocols,DWORD dwResolution,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,LPVOID lpCsaddrBuffer,LPDWORD lpdwBufferLength,LPWSTR lpAliasBuffer,LPDWORD lpdwAliasBufferLength);
401 INT WINAPI GetTypeByNameA(LPSTR lpServiceName,LPGUID lpServiceType);
402 INT WINAPI GetTypeByNameW(LPWSTR lpServiceName,LPGUID lpServiceType);
403 INT WINAPI GetNameByTypeA(LPGUID lpServiceType,LPSTR lpServiceName,DWORD dwNameLength);
404 INT WINAPI GetNameByTypeW(LPGUID lpServiceType,LPWSTR lpServiceName,DWORD dwNameLength);
405 INT WINAPI SetServiceA(DWORD dwNameSpace,DWORD dwOperation,DWORD dwFlags,LPSERVICE_INFOA lpServiceInfo,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,LPDWORD lpdwStatusFlags);
406 INT WINAPI SetServiceW(DWORD dwNameSpace,DWORD dwOperation,DWORD dwFlags,LPSERVICE_INFOW lpServiceInfo,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,LPDWORD lpdwStatusFlags);
407 INT WINAPI GetServiceA(DWORD dwNameSpace,LPGUID lpGuid,LPSTR lpServiceName,DWORD dwProperties,LPVOID lpBuffer,LPDWORD lpdwBufferSize,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo);
408 INT WINAPI GetServiceW(DWORD dwNameSpace,LPGUID lpGuid,LPWSTR lpServiceName,DWORD dwProperties,LPVOID lpBuffer,LPDWORD lpdwBufferSize,LPSERVICE_ASYNC_INFO lpServiceAsyncInfo);
409
410 #ifdef __cplusplus
411 }
412 #endif
413 #endif