ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/lpmapi.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 18716 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 #ifndef __LPMAPI_H_
7 #define __LPMAPI_H_
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 #ifndef CALLBACK
14 #if defined(_ARM_)
15 #define CALLBACK
16 #else
17 #define CALLBACK __stdcall
18 #endif
19 #endif
20
21 #ifndef WINAPI
22 #if defined(_ARM_)
23 #define WINAPI
24 #else
25 #define WINAPI __stdcall
26 #endif
27 #endif
28
29 #ifndef APIENTRY
30 #define APIENTRY WINAPI
31 #endif
32
33 typedef struct {
34 USHORT obj_length;
35 UCHAR obj_class;
36 UCHAR obj_ctype;
37 } RsvpObjHdr;
38
39 #define ObjLength(x) ((RsvpObjHdr *)x)->obj_length
40 #define ObjCType(x) ((RsvpObjHdr *)x)->obj_ctype
41 #define ObjClass(x) ((RsvpObjHdr *)x)->obj_class
42 #define ObjData(x) ((RsvpObjHdr *)(x)+1)
43
44 #define class_NULL 0
45 #define class_SESSION 1
46 #define class_SESSION_GROUP 2
47 #define class_RSVP_HOP 3
48 #define class_INTEGRITY 4
49 #define class_TIME_VALUES 5
50 #define class_ERROR_SPEC 6
51 #define class_SCOPE 7
52 #define class_STYLE 8
53 #define class_FLOWSPEC 9
54 #define class_IS_FLOWSPEC 9
55 #define class_FILTER_SPEC 10
56 #define class_SENDER_TEMPLATE 11
57 #define class_SENDER_TSPEC 12
58 #define class_ADSPEC 13
59 #define class_POLICY_DATA 14
60 #define class_CONFIRM 15
61 #define class_MAX 15
62
63 #define ctype_SESSION_ipv4 1
64 #define ctype_SESSION_ipv4GPI 3
65
66 #define SESSFLG_E_Police 0x01
67
68 typedef struct {
69 IN_ADDR sess_destaddr;
70 UCHAR sess_protid;
71 UCHAR sess_flags;
72 USHORT sess_destport;
73 } Session_IPv4;
74
75 typedef struct {
76 RsvpObjHdr sess_header;
77 union {
78 Session_IPv4 sess_ipv4;
79 } sess_u;
80 } RSVP_SESSION;
81
82 #define Sess4Addr sess_u.sess_ipv4.sess_destaddr
83 #define Sess4Port sess_u.sess_ipv4.sess_destport
84 #define Sess4Protocol sess_u.sess_ipv4.sess_protid
85 #define Sess4Flags sess_u.sess_ipv4.sess_flags
86
87 #define ctype_RSVP_HOP_ipv4 1
88
89 typedef struct {
90 IN_ADDR hop_ipaddr;
91 ULONG hop_LIH;
92 } Rsvp_Hop_IPv4;
93
94 typedef struct {
95 RsvpObjHdr hop_header;
96 union {
97 Rsvp_Hop_IPv4 hop_ipv4;
98 } hop_u;
99 } RSVP_HOP;
100
101 #define Hop4LIH hop_u.hop_ipv4.hop_LIH
102 #define Hop4Addr hop_u.hop_ipv4.hop_ipaddr
103
104 #define Opt_Share_mask 0x00000018
105 #define Opt_Distinct 0x00000008
106 #define Opt_Shared 0x00000010
107
108 #define Opt_SndSel_mask 0x00000007
109 #define Opt_Wildcard 0x00000001
110 #define Opt_Explicit 0x00000002
111
112 #define Style_is_Wildcard(p) (((p)&Opt_SndSel_mask)==Opt_Wildcard)
113 #define Style_is_Shared(p) (((p)&Opt_Share_mask)==Opt_Shared)
114
115 #define STYLE_WF Opt_Shared + Opt_Wildcard
116 #define STYLE_FF Opt_Distinct + Opt_Explicit
117 #define STYLE_SE Opt_Shared + Opt_Explicit
118
119 #define ctype_STYLE 1
120
121 typedef struct {
122 RsvpObjHdr style_header;
123 ULONG style_word;
124 } RESV_STYLE;
125
126 #define ctype_FILTER_SPEC_ipv4 1
127 #define ctype_FILTER_SPEC_ipv4GPI 4
128
129 typedef struct {
130 IN_ADDR filt_ipaddr;
131 USHORT filt_unused;
132 USHORT filt_port;
133 } Filter_Spec_IPv4;
134
135 typedef struct {
136 IN_ADDR filt_ipaddr;
137 ULONG filt_gpi;
138 } Filter_Spec_IPv4GPI;
139
140 typedef struct {
141 RsvpObjHdr filt_header;
142 union {
143 Filter_Spec_IPv4 filt_ipv4;
144 Filter_Spec_IPv4GPI filt_ipv4gpi;
145 } filt_u;
146 } FILTER_SPEC;
147
148 #define FilterSrcaddr filt_u.filt_ipv4.filt_ipaddr
149 #define FilterSrcport filt_u.filt_ipv4.filt_port
150
151 #define ctype_SENDER_TEMPLATE_ipv4 1
152 #define ctype_SENDER_TEMPLATE_ipv4GPI 4
153
154 typedef FILTER_SPEC SENDER_TEMPLATE;
155
156 #define ctype_SCOPE_list_ipv4 1
157
158 typedef struct {
159 IN_ADDR scopl_ipaddr[1];
160 } Scope_list_ipv4;
161
162 typedef struct {
163 RsvpObjHdr scopl_header;
164 union {
165 Scope_list_ipv4 scopl_ipv4;
166 } scope_u;
167 } RSVP_SCOPE;
168
169 #define Scope4Addr scope_u.scopl_ipv4.scopl_ipaddr
170 #define ScopeCnt(scp) ((ObjLength(scp)-sizeof(RsvpObjHdr))/sizeof(struct in_addr))
171 #define ScopeLen(cnt) (cnt*sizeof(struct in_addr)+sizeof(RsvpObjHdr))
172
173 #define ctype_ERROR_SPEC_ipv4 1
174
175 #define ERROR_SPECF_InPlace 0x01
176 #define ERROR_SPECF_NotGuilty 0x02
177
178 #define ERR_FORWARD_OK 0x8000
179 #define Error_Usage(x) (((x)>>12)&3)
180 #define ERR_Usage_globl 0x00
181 #define ERR_Usage_local 0x10
182 #define ERR_Usage_serv 0x11
183 #define ERR_global_mask 0x0fff
184
185 typedef struct {
186 struct in_addr errs_errnode;
187 u_char errs_flags;
188 UCHAR errs_code;
189 USHORT errs_value;
190 } Error_Spec_IPv4;
191
192 typedef struct {
193 RsvpObjHdr errs_header;
194 union {
195 Error_Spec_IPv4 errs_ipv4;
196 } errs_u;
197 } ERROR_SPEC;
198
199 #define errspec4_enode errs_u.errs_ipv4.errs_errnode
200 #define errspec4_code errs_u.errs_ipv4.errs_code
201 #define errspec4_value errs_u.errs_ipv4.errs_value
202 #define errspec4_flags errs_u.errs_ipv4.errs_flags
203
204 #define ctype_POLICY_DATA 1
205
206 typedef struct {
207 RsvpObjHdr PolicyObjHdr;
208 USHORT usPeOffset;
209 USHORT usReserved;
210 } POLICY_DATA;
211
212 #define PD_HDR_LEN sizeof(POLICY_DATA)
213
214 typedef struct {
215 USHORT usPeLength;
216 USHORT usPeType;
217 UCHAR ucPeData[4];
218 } POLICY_ELEMENT;
219
220 #define PE_HDR_LEN (2 *sizeof(USHORT))
221
222 #define GENERAL_INFO 1
223 #define GUARANTEED_SERV 2
224 #define PREDICTIVE_SERV 3
225 #define CONTROLLED_DELAY_SERV 4
226 #define CONTROLLED_LOAD_SERV 5
227 #define QUALITATIVE_SERV 6
228
229 enum int_serv_wkp {
230 IS_WKP_HOP_CNT = 4,IS_WKP_PATH_BW = 6,IS_WKP_MIN_LATENCY = 8,IS_WKP_COMPOSED_MTU = 10,IS_WKP_TB_TSPEC = 127,IS_WKP_Q_TSPEC = 128
231 };
232
233 typedef struct {
234 UCHAR ismh_version;
235 UCHAR ismh_unused;
236 USHORT ismh_len32b;
237 } IntServMainHdr;
238
239 #define INTSERV_VERS_MASK 0xf0
240 #define INTSERV_VERSION0 0
241 #define Intserv_Version(x) (((x)&INTSERV_VERS_MASK)>>4)
242 #define Intserv_Version_OK(x) (((x)->ismh_version&INTSERV_VERS_MASK)== INTSERV_VERSION0)
243 #define Intserv_Obj_size(x) (((IntServMainHdr *)(x))->ismh_len32b *4 + sizeof(IntServMainHdr) + sizeof(RsvpObjHdr))
244
245 #define ISSH_BREAK_BIT 0x80
246
247 typedef struct {
248 UCHAR issh_service;
249 UCHAR issh_flags;
250 USHORT issh_len32b;
251 } IntServServiceHdr;
252
253 #define Issh_len32b(p) ((p)->issh_len32b)
254
255 #define ISPH_FLG_INV 0x80
256
257 typedef struct {
258 UCHAR isph_parm_num;
259 UCHAR isph_flags;
260 USHORT isph_len32b;
261 } IntServParmHdr;
262
263 #define Next_Main_Hdr(p) (IntServMainHdr *)((ULONG *)(p)+1+(p)->ismh_len32b)
264 #define Next_Serv_Hdr(p) (IntServServiceHdr *)((ULONG *)(p)+1+(p)->issh_len32b)
265 #define Next_Parm_Hdr(p) (IntServParmHdr *)((ULONG *)(p)+1+(p)->isph_len32b)
266
267 typedef struct {
268 FLOAT TB_Tspec_r;
269 FLOAT TB_Tspec_b;
270 FLOAT TB_Tspec_p;
271 ULONG TB_Tspec_m;
272 ULONG TB_Tspec_M;
273 } GenTspecParms;
274
275 typedef struct {
276 IntServServiceHdr gen_Tspec_serv_hdr;
277 IntServParmHdr gen_Tspec_parm_hdr;
278 GenTspecParms gen_Tspec_parms;
279 } GenTspec;
280
281 #define gtspec_r gen_Tspec_parms.TB_Tspec_r
282 #define gtspec_b gen_Tspec_parms.TB_Tspec_b
283 #define gtspec_m gen_Tspec_parms.TB_Tspec_m
284 #define gtspec_M gen_Tspec_parms.TB_Tspec_M
285 #define gtspec_p gen_Tspec_parms.TB_Tspec_p
286 #define gtspec_parmno gen_Tspec_parm_hdr.isph_parm_num
287 #define gtspec_flags gen_Tspec_parm_hdr.isph_flags
288 #define gtspec_len (sizeof(GenTspec) - sizeof(IntServServiceHdr))
289
290 typedef struct {
291 ULONG TB_Tspec_M;
292 } QualTspecParms;
293
294 typedef struct {
295 IntServServiceHdr qual_Tspec_serv_hdr;
296 IntServParmHdr qual_Tspec_parm_hdr;
297 QualTspecParms qual_Tspec_parms;
298 } QualTspec;
299
300 typedef struct {
301 IntServServiceHdr Q_spec_serv_hdr;
302 IntServParmHdr Q_spec_parm_hdr;
303 QualTspecParms Q_spec_parms;
304 } QualAppFlowSpec;
305
306 #define QAspec_M Q_spec_parms.TB_Tspec_M
307
308 typedef struct {
309 IntServMainHdr st_mh;
310 union {
311 GenTspec gen_stspec;
312 QualTspec qual_stspec;
313 } tspec_u;
314 } IntServTspecBody;
315
316 #define ctype_SENDER_TSPEC 2
317
318 typedef struct {
319 RsvpObjHdr stspec_header;
320 IntServTspecBody stspec_body;
321 } SENDER_TSPEC;
322
323 typedef struct {
324 IntServServiceHdr CL_spec_serv_hdr;
325 IntServParmHdr CL_spec_parm_hdr;
326 GenTspecParms CL_spec_parms;
327 } CtrlLoadFlowspec;
328
329 #define CLspec_r CL_spec_parms.TB_Tspec_r
330 #define CLspec_b CL_spec_parms.TB_Tspec_b
331 #define CLspec_p CL_spec_parms.TB_Tspec_p
332 #define CLspec_m CL_spec_parms.TB_Tspec_m
333 #define CLspec_M CL_spec_parms.TB_Tspec_M
334 #define CLspec_parmno CL_spec_parm_hdr.isph_parm_num
335 #define CLspec_flags CL_spec_parm_hdr.isph_flags
336 #define CLspec_len32b CL_spec_parm_hdr.isph_len32b
337 #define CLspec_len (sizeof(CtrlLoadFlowspec) - sizeof(IntServServiceHdr))
338
339 enum {
340 IS_GUAR_RSPEC = 130,GUAR_ADSPARM_C = 131,GUAR_ADSPARM_D = 132,GUAR_ADSPARM_Ctot = 133,GUAR_ADSPARM_Dtot = 134,GUAR_ADSPARM_Csum = 135,
341 GUAR_ADSPARM_Dsum = 136
342 };
343
344 typedef struct {
345 FLOAT Guar_R;
346 ULONG Guar_S;
347 } GuarRspec;
348
349 typedef struct {
350 IntServServiceHdr Guar_serv_hdr;
351 IntServParmHdr Guar_Tspec_hdr;
352 GenTspecParms Guar_Tspec_parms;
353 IntServParmHdr Guar_Rspec_hdr;
354 GuarRspec Guar_Rspec;
355 } GuarFlowSpec;
356
357 #define Gspec_r Guar_Tspec_parms.TB_Tspec_r
358 #define Gspec_b Guar_Tspec_parms.TB_Tspec_b
359 #define Gspec_p Guar_Tspec_parms.TB_Tspec_p
360 #define Gspec_m Guar_Tspec_parms.TB_Tspec_m
361 #define Gspec_M Guar_Tspec_parms.TB_Tspec_M
362 #define Gspec_R Guar_Rspec.Guar_R
363 #define Gspec_S Guar_Rspec.Guar_S
364 #define Gspec_T_parmno Guar_Tspec_hdr.isph_parm_num
365 #define Gspec_T_flags Guar_Tspec_hdr.isph_flags
366 #define Gspec_R_parmno Guar_Rspec_hdr.isph_parm_num
367 #define Gspec_R_flags Guar_Rspec_hdr.isph_flags
368 #define Gspec_len (sizeof(GuarFlowSpec) - sizeof(IntServServiceHdr))
369
370 typedef struct {
371 IntServMainHdr spec_mh;
372 union {
373 CtrlLoadFlowspec CL_spec;
374 GuarFlowSpec G_spec;
375 QualAppFlowSpec Q_spec;
376 } spec_u;
377 } IntServFlowSpec;
378
379 #define ISmh_len32b spec_mh.ismh_len32b
380 #define ISmh_version spec_mh.ismh_version
381 #define ISmh_unused spec_mh.ismh_unused
382
383 #define ctype_FLOWSPEC_Intserv0 2
384
385 typedef struct {
386 RsvpObjHdr flow_header;
387 IntServFlowSpec flow_body;
388 } IS_FLOWSPEC;
389
390 typedef struct flow_desc {
391 union {
392 SENDER_TSPEC *stspec;
393 IS_FLOWSPEC *isflow;
394 } u1;
395 union {
396 SENDER_TEMPLATE *stemp;
397 FILTER_SPEC *fspec;
398 } u2;
399 } FLOW_DESC;
400
401 #define FdSenderTspec u1.stspec
402 #define FdIsFlowSpec u1.isflow
403
404 #define FdSenderTemplate u2.stemp
405 #define FdFilterSpec u2.fspec
406
407 #define ctype_ADSPEC_INTSERV 2
408
409 typedef struct {
410 IntServServiceHdr Gads_serv_hdr;
411 IntServParmHdr Gads_Ctot_hdr;
412 ULONG Gads_Ctot;
413 IntServParmHdr Gads_Dtot_hdr;
414 ULONG Gads_Dtot;
415 IntServParmHdr Gads_Csum_hdr;
416 ULONG Gads_Csum;
417 IntServParmHdr Gads_Dsum_hdr;
418 ULONG Gads_Dsum;
419 } Gads_parms_t;
420
421 typedef struct {
422 IntServServiceHdr gen_parm_hdr;
423 IntServParmHdr gen_parm_hopcnt_hdr;
424 ULONG gen_parm_hopcnt;
425 IntServParmHdr gen_parm_pathbw_hdr;
426 FLOAT gen_parm_path_bw;
427 IntServParmHdr gen_parm_minlat_hdr;
428 ULONG gen_parm_min_latency;
429 IntServParmHdr gen_parm_compmtu_hdr;
430 ULONG gen_parm_composed_MTU;
431 } GenAdspecParams;
432
433 typedef struct {
434 IntServMainHdr adspec_mh;
435 GenAdspecParams adspec_genparms;
436 } IS_ADSPEC_BODY;
437
438 #define GEN_ADSPEC_LEN (sizeof(Object_header) + sizeof(IS_adsbody_t))
439
440 typedef struct {
441 RsvpObjHdr adspec_header;
442 IS_ADSPEC_BODY adspec_body;
443 } ADSPEC;
444
445 #define RSVP_PATH 1
446 #define RSVP_RESV 2
447 #define RSVP_PATH_ERR 3
448 #define RSVP_RESV_ERR 4
449 #define RSVP_PATH_TEAR 5
450 #define RSVP_RESV_TEAR 6
451
452 #define RSVP_Err_NONE 0
453 #define RSVP_Erv_Nonev 0
454
455 #define RSVP_Err_ADMISSION 1
456
457 #define RSVP_Erv_Other 0
458 #define RSVP_Erv_DelayBnd 1
459 #define RSVP_Erv_Bandwidth 2
460 #define RSVP_Erv_MTU 3
461
462 #define RSVP_Erv_Flow_Rate 0x8001
463 #define RSVP_Erv_Bucket_szie 0x8002
464 #define RSVP_Erv_Peak_Rate 0x8003
465 #define RSVP_Erv_Min_Policied_size 0x8004
466
467 #define RSVP_Err_POLICY 2
468
469 #define POLICY_ERRV_NO_MORE_INFO 1
470 #define POLICY_ERRV_UNSUPPORTED_CREDENTIAL_TYPE 2
471 #define POLICY_ERRV_INSUFFICIENT_PRIVILEGES 3
472 #define POLICY_ERRV_EXPIRED_CREDENTIALS 4
473 #define POLICY_ERRV_IDENTITY_CHANGED 5
474
475 #define POLICY_ERRV_UNKNOWN 0
476
477 #define POLICY_ERRV_GLOBAL_DEF_FLOW_COUNT 1
478 #define POLICY_ERRV_GLOBAL_GRP_FLOW_COUNT 2
479 #define POLICY_ERRV_GLOBAL_USER_FLOW_COUNT 3
480 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_COUNT 4
481 #define POLICY_ERRV_SUBNET_DEF_FLOW_COUNT 5
482 #define POLICY_ERRV_SUBNET_GRP_FLOW_COUNT 6
483 #define POLICY_ERRV_SUBNET_USER_FLOW_COUNT 7
484 #define POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_COUNT 8
485
486 #define POLICY_ERRV_GLOBAL_DEF_FLOW_DURATION 9
487 #define POLICY_ERRV_GLOBAL_GRP_FLOW_DURATION 10
488 #define POLICY_ERRV_GLOBAL_USER_FLOW_DURATION 11
489 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_DURATION 12
490 #define POLICY_ERRV_SUBNET_DEF_FLOW_DURATION 13
491 #define POLICY_ERRV_SUBNET_GRP_FLOW_DURATION 14
492 #define POLICY_ERRV_SUBNET_USER_FLOW_DURATION 15
493 #define POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_DURATION 16
494
495 #define POLICY_ERRV_GLOBAL_DEF_FLOW_RATE 17
496 #define POLICY_ERRV_GLOBAL_GRP_FLOW_RATE 18
497 #define POLICY_ERRV_GLOBAL_USER_FLOW_RATE 19
498 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_RATE 20
499 #define POLICY_ERRV_SUBNET_DEF_FLOW_RATE 21
500 #define POLICY_ERRV_SUBNET_GRP_FLOW_RATE 22
501 #define POLICY_ERRV_SUBNET_USER_FLOW_RATE 23
502 #define POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_RATE 24
503
504 #define POLICY_ERRV_GLOBAL_DEF_PEAK_RATE 25
505 #define POLICY_ERRV_GLOBAL_GRP_PEAK_RATE 26
506 #define POLICY_ERRV_GLOBAL_USER_PEAK_RATE 27
507 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_PEAK_RATE 28
508 #define POLICY_ERRV_SUBNET_DEF_PEAK_RATE 29
509 #define POLICY_ERRV_SUBNET_GRP_PEAK_RATE 30
510 #define POLICY_ERRV_SUBNET_USER_PEAK_RATE 31
511 #define POLICY_ERRV_SUBNET_UNAUTH_USER_PEAK_RATE 32
512
513 #define POLICY_ERRV_GLOBAL_DEF_SUM_FLOW_RATE 33
514 #define POLICY_ERRV_GLOBAL_GRP_SUM_FLOW_RATE 34
515 #define POLICY_ERRV_GLOBAL_USER_SUM_FLOW_RATE 35
516 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_SUM_FLOW_RATE 36
517 #define POLICY_ERRV_SUBNET_DEF_SUM_FLOW_RATE 37
518 #define POLICY_ERRV_SUBNET_GRP_SUM_FLOW_RATE 38
519 #define POLICY_ERRV_SUBNET_USER_SUM_FLOW_RATE 39
520 #define POLICY_ERRV_SUBNET_UNAUTH_USER_SUM_FLOW_RATE 40
521
522 #define POLICY_ERRV_GLOBAL_DEF_SUM_PEAK_RATE 41
523 #define POLICY_ERRV_GLOBAL_GRP_SUM_PEAK_RATE 42
524 #define POLICY_ERRV_GLOBAL_USER_SUM_PEAK_RATE 43
525 #define POLICY_ERRV_GLOBAL_UNAUTH_USER_SUM_PEAK_RATE 44
526 #define POLICY_ERRV_SUBNET_DEF_SUM_PEAK_RATE 45
527 #define POLICY_ERRV_SUBNET_GRP_SUM_PEAK_RATE 46
528 #define POLICY_ERRV_SUBNET_USER_SUM_PEAK_RATE 47
529 #define POLICY_ERRV_SUBNET_UNAUTH_USER_SUM_PEAK_RATE 48
530
531 #define POLICY_ERRV_UNKNOWN_USER 49
532 #define POLICY_ERRV_NO_PRIVILEGES 50
533 #define POLICY_ERRV_EXPIRED_USER_TOKEN 51
534 #define POLICY_ERRV_NO_RESOURCES 52
535 #define POLICY_ERRV_PRE_EMPTED 53
536 #define POLICY_ERRV_USER_CHANGED 54
537 #define POLICY_ERRV_NO_ACCEPTS 55
538 #define POLICY_ERRV_NO_MEMORY 56
539 #define POLICY_ERRV_CRAZY_FLOWSPEC 57
540
541 #define RSVP_Err_NO_PATH 3
542 #define RSVP_Err_NO_SENDER 4
543 #define RSVP_Err_BAD_STYLE 5
544 #define RSVP_Err_UNKNOWN_STYLE 6
545 #define RSVP_Err_BAD_DSTPORT 7
546 #define RSVP_Err_BAD_SNDPORT 8
547 #define RSVP_Err_AMBIG_FILTER 9
548 #define RSVP_Err_PREEMPTED 12
549 #define RSVP_Err_UNKN_OBJ_CLASS 13
550 #define RSVP_Err_UNKNOWN_CTYPE 14
551 #define RSVP_Err_API_ERROR 20
552 #define RSVP_Err_TC_ERROR 21
553
554 #define RSVP_Erv_Conflict_Serv 01
555 #define RSVP_Erv_No_Serv 02
556 #define RSVP_Erv_Crazy_Flowspec 03
557 #define RSVP_Erv_Crazy_Tspec 04
558
559 #define RSVP_Err_TC_SYS_ERROR 22
560
561 #define RSVP_Err_RSVP_SYS_ERROR 23
562
563 #define RSVP_Erv_MEMORY 1
564 #define RSVP_Erv_API 2
565
566 #define LPM_PE_USER_IDENTITY 2
567 #define LPM_PE_APP_IDENTITY 3
568
569 #define ERROR_NO_MORE_INFO 1
570 #define UNSUPPORTED_CREDENTIAL_TYPE 2
571 #define INSUFFICIENT_PRIVILEGES 3
572 #define EXPIRED_CREDENTIAL 4
573 #define IDENTITY_CHANGED 5
574
575 typedef struct {
576 USHORT usIdErrLength;
577 UCHAR ucAType;
578 UCHAR ucSubType;
579 USHORT usReserved;
580 USHORT usIdErrorValue;
581 UCHAR ucIdErrData[4];
582 } ID_ERROR_OBJECT;
583
584 #define ID_ERR_OBJ_HDR_LEN (sizeof(ID_ERROR_OBJECT) - 4 *sizeof(UCHAR))
585
586 DECLARE_HANDLE(LPM_HANDLE);
587 DECLARE_HANDLE(RHANDLE);
588
589 typedef ULONG LPV;
590 typedef USHORT PETYPE;
591
592 #define LPM_OK 0
593
594 typedef int MSG_TYPE;
595
596 typedef struct rsvpmsgobjs {
597 MSG_TYPE RsvpMsgType;
598 RSVP_SESSION *pRsvpSession;
599 RSVP_HOP *pRsvpFromHop;
600 RSVP_HOP *pRsvpToHop;
601 RESV_STYLE *pResvStyle;
602 RSVP_SCOPE *pRsvpScope;
603 int FlowDescCount;
604 FLOW_DESC *pFlowDescs;
605 int PdObjectCount;
606 POLICY_DATA **ppPdObjects;
607 ERROR_SPEC *pErrorSpec;
608 ADSPEC *pAdspec;
609 } RSVP_MSG_OBJS;
610
611 typedef void *(WINAPI *PALLOCMEM)(DWORD Size);
612 typedef void (WINAPI *PFREEMEM)(void *pv);
613
614 typedef struct policy_decision {
615 LPV lpvResult;
616 WORD wPolicyErrCode;
617 WORD wPolicyErrValue;
618 } POLICY_DECISION;
619
620 typedef ULONG *(CALLBACK *CBADMITRESULT)(LPM_HANDLE LpmHandle,RHANDLE RequestHandle,ULONG ulPcmActionFlags,int LpmError,int PolicyDecisionsCount,POLICY_DECISION *pPolicyDecisions);
621 typedef ULONG *(CALLBACK *CBGETRSVPOBJECTS)(LPM_HANDLE LpmHandle,RHANDLE RequestHandle,int LpmError,int RsvpObjectsCount,RsvpObjHdr **ppRsvpObjects);
622
623 #define INV_LPM_HANDLE 1
624 #define LPM_TIME_OUT 2
625 #define INV_REQ_HANDLE 3
626 #define DUP_RESULTS 4
627 #define INV_RESULTS 5
628
629 typedef struct lpminitinfo {
630 DWORD PcmVersionNumber;
631 DWORD ResultTimeLimit;
632 int ConfiguredLpmCount;
633 PALLOCMEM AllocMemory;
634 PFREEMEM FreeMemory;
635 CBADMITRESULT PcmAdmitResultCallback;
636 CBGETRSVPOBJECTS GetRsvpObjectsCallback;
637 } LPM_INIT_INFO;
638
639 #define LPM_PE_ALL_TYPES 0
640 #define LPM_API_VERSION_1 1
641
642 #define PCM_VERSION_1 1
643
644 ULONG WINAPI LPM_Initialize(LPM_HANDLE LpmHandle,LPM_INIT_INFO *pLpmInitInfo,DWORD *pLpmVersionNumber,PETYPE *pSupportedPeType,VOID *Reserved);
645 ULONG WINAPI LPM_Deinitialize(LPM_HANDLE LpmHandle);
646
647 #define LPV_RESERVED 0
648 #define LPV_MIN_PRIORITY 1
649 #define LPV_MAX_PRIORITY 0xFF00
650 #define LPV_DROP_MSG 0xFFFD
651 #define LPV_DONT_CARE 0xFFFE
652 #define LPV_REJECT 0xFFFF
653
654 #define FORCE_IMMEDIATE_REFRESH 1
655
656 #define LPM_RESULT_READY 0
657 #define LPM_RESULT_DEFER 1
658
659 ULONG WINAPI LPM_AdmitRsvpMsg(RHANDLE PcmReqHandle,RSVP_HOP *pRecvdIntf,RSVP_MSG_OBJS *pRsvpMsgObjs,int RcvdRsvpMsgLength,UCHAR *RcvdRsvpMsg,ULONG *pulPcmActionFlags,POLICY_DECISION *pPolicyDecisions,void *Reserved);
660 ULONG WINAPI LPM_GetRsvpObjects(RHANDLE PcmReqHandle,ULONG MaxPdSize,RSVP_HOP *SendingIntfAddr,RSVP_MSG_OBJS *pRsvpMsgObjs,int *pRsvpObjectsCount,RsvpObjHdr ***pppRsvpObjects,void *Reserved);
661
662 #define RCVD_PATH_TEAR 1
663 #define RCVD_RESV_TEAR 2
664 #define ADM_CTRL_FAILED 3
665 #define STATE_TIMEOUT 4
666 #define FLOW_DURATION 5
667
668 VOID WINAPI LPM_DeleteState(RSVP_HOP *pRcvdIfAddr,MSG_TYPE RsvpMsgType,RSVP_SESSION *pRsvpSession,RSVP_HOP *pRsvpFromHop,RESV_STYLE *pResvStyle,int FilterSpecCount,FILTER_SPEC **ppFilterSpecList,int TearDownReason);
669
670 typedef struct lpmiptable {
671 ULONG ulIfIndex;
672 ULONG MediaType;
673 IN_ADDR IfIpAddr;
674 IN_ADDR IfNetMask;
675 } LPMIPTABLE;
676
677 WINBOOL WINAPI LPM_IpAddressTable (ULONG cIpAddrTable,LPMIPTABLE *pIpAddrTable);
678
679 #define RESOURCES_ALLOCATED 1
680 #define RESOURCES_MODIFIED 2
681
682 VOID WINAPI LPM_CommitResv (RSVP_SESSION *RsvpSession,RSVP_HOP *FlowInstalledIntf,RESV_STYLE *RsvpStyle,int FilterSpecCount,FILTER_SPEC **ppFilterSpecList,IS_FLOWSPEC *pMergedFlowSpec,ULONG CommitDecision);
683
684 #ifdef __cplusplus
685 }
686 #endif
687 #endif