A
download jwaqossp.pas
Language: Delphi
License: LGPL
Copyright: (C) 1995-2001 Microsoft } (C) 1999-2001 }
LOC: 406
Project Info
FreePascal
Server: FreePascal
Type: zip
...rc\packages\extra\winunits\
   activex.pp
   buildjwa.pp
   commctrl.pp
   comobj.pp
   jedi.inc
   jediapilib.inc
   jwaaccctrl.pas
   jwaaclapi.pas
   jwaaclui.pas
   jwaactiveds.pas
   jwaadsdb.pas
   jwaadserr.pas
   jwaadshlp.pas
   jwaadsnms.pas
   jwaadsprop.pas
   jwaadssts.pas
   jwaadstlb.pas
   jwaadtgen.pas
   jwaaf_irda.pas
   jwaatalkwsh.pas
   jwaauthif.pas
   jwaauthz.pas
   jwabatclass.pas
   jwabits.pas
   jwabits1_5.pas
   jwabitscfg.pas
   jwabitsmsg.pas
   jwablberr.pas
   jwabluetoothapis.pas
   jwabthdef.pas
   jwabthsdpdef.pas
   jwabugcodes.pas
   jwacderr.pas
   jwacmnquery.pas
   jwacolordlg.pas
   jwacpl.pas
   jwacplext.pas
   jwacryptuiapi.pas
   jwadbt.pas
   jwadde.pas
   jwadhcpcsdk.pas
   jwadhcpsapi.pas
   jwadhcpssdk.pas
   jwadlgs.pas
   jwadsadmin.pas
   jwadsclient.pas
   jwadsgetdc.pas
   jwadskquota.pas
   jwadsquery.pas
   jwadsrole.pas
   jwadssec.pas
   jwaerrorrep.pas
   jwaexcpt.pas
   jwafaxdev.pas
   jwafaxext.pas
   jwafaxmmc.pas
   jwafaxroute.pas
   jwagpedit.pas
   jwahherror.pas
   jwahtmlGuid.pas
   jwahtmlhelp.pas
   jwaiaccess.pas
   jwaiadmext.pas
   jwaicmpapi.pas
   jwaiiscnfg.pas
   jwaimagehlp.pas
   jwaimapi.pas
   jwaimapierror.pas
   jwaime.pas
   jwaioevent.pas
   jwaipexport.pas
   jwaiphlpapi.pas
   jwaipifcons.pas
   jwaipinfoid.pas
   jwaiprtrmib.pas
   jwaiptypes.pas
   jwaisguids.pas
   jwaissper16.pas
   jwalmaccess.pas
   jwalmalert.pas
   jwalmapibuf.pas
   jwalmat.pas
   jwalmaudit.pas
   jwalmconfig.pas
   jwalmcons.pas
   jwalmdfs.pas
   jwalmerr.pas
   jwalmerrlog.pas
   jwalmjoin.pas
   jwalmmsg.pas
   jwalmremutl.pas
   jwalmrepl.pas
   jwalmserver.pas
   jwalmshare.pas
   jwalmsname.pas
   jwalmstats.pas
   jwalmsvc.pas
   jwalmuse.pas
   jwalmuseflg.pas
   jwalmwksta.pas
   jwaloadperf.pas
   jwalpmapi.pas
   jwamciavi.pas
   jwamprerror.pas
   jwamsi.pas
   jwamsidefs.pas
   jwamsiquery.pas
   jwamstask.pas
   jwamstcpip.pas
   jwamswsock.pas
   jwanative.pas
   jwanb30.pas
   jwanetsh.pas
   jwanspapi.pas
   jwantddpar.pas
   jwantdsapi.pas
   jwantdsbcli.pas
   jwantdsbmsg.pas
   jwantldap.pas
   jwantquery.pas
   jwantsecapi.pas
   jwantstatus.pas
   jwaObjsel.pas
   jwapatchapi.pas
   jwapatchwiz.pas
   jwapbt.pas
   jwapdh.pas
   jwapdhmsg.pas
   jwapowrprof.pas
   jwaprofinfo.pas
   jwaprotocol.pas
   jwaprsht.pas
   jwapsapi.pas
   jwaqos.pas
   jwaqosname.pas
   jwaqospol.pas
   jwaqossp.pas
   jwareason.pas
   jwaregstr.pas
   jwarpc.pas
   jwarpcasync.pas
   jwarpcdce.pas
   jwarpcnsi.pas
   jwarpcnterr.pas
   jwarpcssl.pas
   jwascesvc.pas
   jwaschedule.pas
   jwaschemadef.pas
   jwasddl.pas
   jwasecext.pas
   jwasecurity.pas
   jwasens.pas
   jwasensapi.pas
   jwasensevts.pas
   jwasfc.pas
   jwashlguid.pas
   jwasisbkup.pas
   jwasnmp.pas
   jwasporder.pas
   jwasrrestoreptapi.pas
   jwasspi.pas
   jwasubauth.pas
   jwasvcguid.pas
   jwatlhelp32.pas
   jwatmschema.pas
   jwatraffic.pas
   jwauserenv.pas
   jwauxtheme.pas
   jwawbemcli.pas
   jwawinable.pas
   jwawinber.pas
   jwawincon.pas
   jwawincpl.pas
   jwawincred.pas
   jwawindns.pas
   jwawinefs.pas
   jwawinfax.pas
   jwawingdi.pas
   jwawinioctl.pas
   jwawinldap.pas
   jwawinnetwk.pas
   jwawinnls.pas
   jwawinnt.pas
   jwawinperf.pas
   jwawinreg.pas
   jwawinresrc.pas
   jwawinsafer.pas
   jwawinsock.pas
   jwawinsock2.pas
   jwawinsvc.pas
   jwawintype.pas
   jwawinver.pas
   jwawinwlx.pas
   jwawmistr.pas
   jwawownt16.pas
   jwawownt32.pas
   jwawpapi.pas
   jwawpapimsg.pas
   jwawpcrsmsg.pas
   jwawpftpmsg.pas
   jwawppstmsg.pas
   jwawpspihlp.pas
   jwawptypes.pas
   jwawpwizmsg.pas
   jwaws2atm.pas
   jwaws2bth.pas
   jwaws2dnet.pas
   jwaws2spi.pas
   jwaws2tcpip.pas
   jwawshisotp.pas
   jwawsipx.pas
   jwawsnetbs.pas
   jwawsnwlink.pas
   jwawsrm.pas
   jwawsvns.pas
   jwawtsapi32.pas
   jwazmouse.pas
   Makefile.fpc
   mmsystem.pp
   ole2.pp
   shellapi.pp
   shfolder.pp
   shlobj.pp
   winver.pp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
{******************************************************************************}
{                                                                              }
{ Winsock2 QOS Service Provider API interface Unit for Object Pascal           }
{                                                                              }
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft          }
{ Corporation. All Rights Reserved.                                            }
{                                                                              }
{ The original file is: qossp.h, released August 2001. The original Pascal     }
{ code is: QosSp.pas, released December 2000. The initial developer of the     }
{ Pascal code is Marcel van Brakel (brakelm att chello dott nl).               }
{                                                                              }
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001            }
{ Marcel van Brakel. All Rights Reserved.                                      }
{                                                                              }
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
{                                                                              }
{ You may retrieve the latest version of this file at the Project JEDI         }
{ APILIB home page, located at http://jedi-apilib.sourceforge.net              }
{                                                                              }
{ The contents of this file are used with permission, subject to the Mozilla   }
{ Public License Version 1.1 (the "License"); you may not use this file except }
{ in compliance with the License. You may obtain a copy of the License at      }
{ http://www.mozilla.org/MPL/MPL-1.1.html                                      }
{                                                                              }
{ Software distributed under the License is distributed on an "AS IS" basis,   }
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
{ the specific language governing rights and limitations under the License.    }
{                                                                              }
{ Alternatively, the contents of this file may be used under the terms of the  }
{ GNU Lesser General Public License (the  "LGPL License"), in which case the   }
{ provisions of the LGPL License are applicable instead of those above.        }
{ If you wish to allow use of your version of this file only under the terms   }
{ of the LGPL License and not to allow others to use your version of this file }
{ under the MPL, indicate your decision by deleting  the provisions above and  }
{ replace  them with the notice and other provisions required by the LGPL      }
{ License.  If you do not delete the provisions above, a recipient may use     }
{ your version of this file under either the MPL or the LGPL License.          }
{                                                                              }
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
{                                                                              }
{******************************************************************************}


unit JwaQosSp;

{$WEAKPACKAGEUNIT}

{$HPPEMIT ''}
{$HPPEMIT '#include "qossp.h"'}
{$HPPEMIT ''}

{$I jediapilib.inc}

interface

uses
  {$IFDEF USE_DELPHI_TYPES}
  Windows,
  {$ELSE}
  JwaWinType,
  {$ENDIF USE_DELPHI_TYPES}
  JwaWinSock2, JwaQos;

(*
 * Definition of object Types
 *
 *
 * define the values for ObjectType above - RSVP Objects ids start at an
 * offset from zero to allow for ATM objects that might be defined in the
 * lower number range.
 *)

const
  RSVP_OBJECT_ID_BASE     = 1000;
  {$EXTERNALSYM RSVP_OBJECT_ID_BASE}
  RSVP_OBJECT_STATUS_INFO = $00000000 + RSVP_OBJECT_ID_BASE;
  {$EXTERNALSYM RSVP_OBJECT_STATUS_INFO}
  (* RSVP_STATUS_INFO structure passed *)
  RSVP_OBJECT_RESERVE_INFO = $00000001 + RSVP_OBJECT_ID_BASE;
  {$EXTERNALSYM RSVP_OBJECT_RESERVE_INFO}
  (* RSVP_RESERVE_INFO structure passed *)
  RSVP_OBJECT_ADSPEC = $00000002 + RSVP_OBJECT_ID_BASE;
  {$EXTERNALSYM RSVP_OBJECT_ADSPEC}
  (* RSVP_ADSPEC structure passed *)
  RSVP_OBJECT_POLICY_INFO = $00000003 + RSVP_OBJECT_ID_BASE;
  {$EXTERNALSYM RSVP_OBJECT_POLICY_INFO}
  (* RSVP POLICY ELEMENT(S) retrieved *)
  RSVP_OBJECT_FILTERSPEC_LIST = $00000004 + RSVP_OBJECT_ID_BASE;
  {$EXTERNALSYM RSVP_OBJECT_FILTERSPEC_LIST}
  (* RSVP SENDER LIST returned *)

(*
 * IPV4 addressing for RSVP FILTERSPECS
 *)

type
  _IN_ADDR_IPV4 = record
    Addr: ULONG;
    AddrBytes: array [0..3] of UCHAR;
  end;
  {$EXTERNALSYM _IN_ADDR_IPV4}
  IN_ADDR_IPV4 = _IN_ADDR_IPV4;
  {$EXTERNALSYM IN_ADDR_IPV4}
  LPIN_ADDR_IPV4 = ^IN_ADDR_IPV4;
  {$EXTERNALSYM LPIN_ADDR_IPV4}
  TInAddrIPV4 = IN_ADDR_IPV4;
  PInAddrIPV4 = LPIN_ADDR_IPV4;

(*
 * IPV6 addressing for RSVP FILTERSPECS
 *)

  _IN_ADDR_IPV6 = record
    Addr: array [0..15] of UCHAR;               //IPV6 address
  end;
  {$EXTERNALSYM _IN_ADDR_IPV6}
  IN_ADDR_IPV6 = _IN_ADDR_IPV6;
  {$EXTERNALSYM IN_ADDR_IPV6}
  LPIN_ADDR_IPV6 = ^IN_ADDR_IPV6;
  {$EXTERNALSYM LPIN_ADDR_IPV6}
  TInAddrIPV6 = IN_ADDR_IPV6;
  PInAddrIPV6 = LPIN_ADDR_IPV6;

  LPCIN_ADDR_IPV6 = ^IN_ADDR_IPV6;
  {$EXTERNALSYM LPCIN_ADDR_IPV6}

(*
 * IPV4 addressing for RSVP FILTERSPECS
 *)

  LPRSVP_FILTERSPEC_V4 = ^RSVP_FILTERSPEC_V4;
  {$EXTERNALSYM LPRSVP_FILTERSPEC_V4}
  _RSVP_FILTERSPEC_V4 = record
    Address: IN_ADDR_IPV4;
    Unused: USHORT;
    Port: USHORT;
  end;
  {$EXTERNALSYM _RSVP_FILTERSPEC_V4}
  RSVP_FILTERSPEC_V4 = _RSVP_FILTERSPEC_V4;
  {$EXTERNALSYM RSVP_FILTERSPEC_V4}
  TRsvpFilterSpecV4 = RSVP_FILTERSPEC_V4;
  PRsvpFilterSpecV4 = LPRSVP_FILTERSPEC_V4;

  LPRSVP_FILTERSPEC_V6 = ^RSVP_FILTERSPEC_V6;
  {$EXTERNALSYM LPRSVP_FILTERSPEC_V6}
  _RSVP_FILTERSPEC_V6 = record
    Address: IN_ADDR_IPV6;
    UnUsed: USHORT;
    Port: USHORT;
  end;
  {$EXTERNALSYM _RSVP_FILTERSPEC_V6}
  RSVP_FILTERSPEC_V6 = _RSVP_FILTERSPEC_V6;
  {$EXTERNALSYM RSVP_FILTERSPEC_V6}
  TRsvpFilterSpecV6 = RSVP_FILTERSPEC_V6;
  PRsvpFilterSpecV6 = LPRSVP_FILTERSPEC_V6;

  LPRSVP_FILTERSPEC_V6_FLOW = ^RSVP_FILTERSPEC_V6_FLOW;
  {$EXTERNALSYM LPRSVP_FILTERSPEC_V6_FLOW}
  _RSVP_FILTERSPEC_V6_FLOW = record
    Address: IN_ADDR_IPV6;
    UnUsed: UCHAR;
    FlowLabel: array [0..2] of UCHAR;
  end;
  {$EXTERNALSYM _RSVP_FILTERSPEC_V6_FLOW}
  RSVP_FILTERSPEC_V6_FLOW = _RSVP_FILTERSPEC_V6_FLOW;
  {$EXTERNALSYM RSVP_FILTERSPEC_V6_FLOW}
  TRsvpFilterSpecV6Flow = RSVP_FILTERSPEC_V6_FLOW;
  PRsvpFilterSpecV6Flow = LPRSVP_FILTERSPEC_V6_FLOW;

  LPRSVP_FILTERSPEC_V4_GPI = ^RSVP_FILTERSPEC_V4_GPI;
  {$EXTERNALSYM LPRSVP_FILTERSPEC_V4_GPI}
  _RSVP_FILTERSPEC_V4_GPI = record
    Address: IN_ADDR_IPV4;
    GeneralPortId: ULONG;
  end;
  {$EXTERNALSYM _RSVP_FILTERSPEC_V4_GPI}
  RSVP_FILTERSPEC_V4_GPI = _RSVP_FILTERSPEC_V4_GPI;
  {$EXTERNALSYM RSVP_FILTERSPEC_V4_GPI}
  TRsvpFilterSpecV4Gpi = RSVP_FILTERSPEC_V4_GPI;
  PRsvpFilterSpecV4Gpi = LPRSVP_FILTERSPEC_V4_GPI;

  LPRSVP_FILTERSPEC_V6_GPI = ^RSVP_FILTERSPEC_V6_GPI;
  {$EXTERNALSYM LPRSVP_FILTERSPEC_V6_GPI}
  _RSVP_FILTERSPEC_V6_GPI = record
    Address: IN_ADDR_IPV6;
    GeneralPortId: ULONG;
  end;
  {$EXTERNALSYM _RSVP_FILTERSPEC_V6_GPI}
  RSVP_FILTERSPEC_V6_GPI = _RSVP_FILTERSPEC_V6_GPI;
  {$EXTERNALSYM RSVP_FILTERSPEC_V6_GPI}
  TRsvpFilterSpecV6Gpi = RSVP_FILTERSPEC_V6_GPI;
  PRsvpFilterSpecV6Gpi = LPRSVP_FILTERSPEC_V6_GPI;

(*
 * FILTERSPEC TYPES used in making reservations.
 *)

const
  FILTERSPECV4 = 1;
  {$EXTERNALSYM FILTERSPECV4}
  FILTERSPECV6 = 2;
  {$EXTERNALSYM FILTERSPECV6}
  FILTERSPECV6_FLOW = 3;
  {$EXTERNALSYM FILTERSPECV6_FLOW}
  FILTERSPECV4_GPI = 4;
  {$EXTERNALSYM FILTERSPECV4_GPI}
  FILTERSPECV6_GPI = 5;
  {$EXTERNALSYM FILTERSPECV6_GPI}
  FILTERSPEC_END = 6;
  {$EXTERNALSYM FILTERSPEC_END}

type
  FilterType = DWORD;
  {$EXTERNALSYM FilterType}

type
  LPRSVP_FILTERSPEC = ^RSVP_FILTERSPEC;
  {$EXTERNALSYM LPRSVP_FILTERSPEC}
  _RSVP_FILTERSPEC = record
    Type_: FilterType;
    case Integer of
      0: (FilterSpecV4: RSVP_FILTERSPEC_V4);
      1: (FilterSpecV6: RSVP_FILTERSPEC_V6);
      2: (FilterSpecV6Flow: RSVP_FILTERSPEC_V6_FLOW);
      3: (FilterSpecV4Gpi: RSVP_FILTERSPEC_V4_GPI);
      4: (FilterSpecV6Gpi: RSVP_FILTERSPEC_V6_GPI);
  end;
  {$EXTERNALSYM _RSVP_FILTERSPEC}
  RSVP_FILTERSPEC = _RSVP_FILTERSPEC;
  {$EXTERNALSYM RSVP_FILTERSPEC}
  TRsvpFilterSpec = RSVP_FILTERSPEC;
  PRsvpFilterSpec = LPRSVP_FILTERSPEC;

(*
 * FLOWDESCRIPTOR Structure used for specifying one or more
 * Filters per Flowspec.
 *)

  LPFLOWDESCRIPTOR = ^FLOWDESCRIPTOR;
  {$EXTERNALSYM LPFLOWDESCRIPTOR}
  _FLOWDESCRIPTOR = record
    FlowSpec: FLOWSPEC;
    NumFilters: ULONG;
    FilterList: LPRSVP_FILTERSPEC;
  end;
  {$EXTERNALSYM _FLOWDESCRIPTOR}
  FLOWDESCRIPTOR = _FLOWDESCRIPTOR;
  {$EXTERNALSYM FLOWDESCRIPTOR}
  TFlowDescriptor = FLOWDESCRIPTOR;
  PFlowDescriptor = LPFLOWDESCRIPTOR;

(*
 * RSVP_POLICY contains undefined policy data.  RSVP transports this
 * data on behalf of the Policy Control component.
 *)

  LPRSVP_POLICY = ^RSVP_POLICY;
  {$EXTERNALSYM LPRSVP_POLICY}
  _RSVP_POLICY = record
    Len: USHORT;
    Type_: USHORT;
    Info: array [0..4 - 1] of UCHAR;
  end;
  {$EXTERNALSYM _RSVP_POLICY}
  RSVP_POLICY = _RSVP_POLICY;
  {$EXTERNALSYM RSVP_POLICY}
  TRsvpPolicy = RSVP_POLICY;
  PRsvpPolicy = LPRSVP_POLICY;

  LPCRSVP_POLICY = ^RSVP_POLICY;
  {$EXTERNALSYM LPCRSVP_POLICY}

const
  RSVP_POLICY_HDR_LEN = SizeOf(USHORT) + SizeOf(USHORT);
  {$EXTERNALSYM RSVP_POLICY_HDR_LEN}

(*
 * RSVP_POLICY_INFO contains undefined policy element(s) retrieved from RSVP.  
 *)

type
  LPRSVP_POLICY_INFO = ^RSVP_POLICY_INFO;
  {$EXTERNALSYM LPRSVP_POLICY_INFO}
  _RSVP_POLICY_INFO = record
    ObjectHdr: QOS_OBJECT_HDR;
    NumPolicyElement: ULONG; // count of the number of policy elements
    PolicyElement: array [0..0] of RSVP_POLICY; // a list of the policy elements retrieved
  end;
  {$EXTERNALSYM _RSVP_POLICY_INFO}
  RSVP_POLICY_INFO = _RSVP_POLICY_INFO;
  {$EXTERNALSYM RSVP_POLICY_INFO}
  TRsvpPolicyInfo = RSVP_POLICY_INFO;
  PRsvpPolicyInfo = LPRSVP_POLICY_INFO;

(*
 * RSVP_RESERVE_INFO Structure used for storing RSVP specific
 * information for fine tuning interaction via the Winsock2
 * Generic QoS API via the provider specific buffer. This structure
 * includes the QOS_OBJECT_HDR structure directly
 *)

  LPRSVP_RESERVE_INFO = ^RSVP_RESERVE_INFO;
  {$EXTERNALSYM LPRSVP_RESERVE_INFO}
  _RSVP_RESERVE_INFO = record
    ObjectHdr: QOS_OBJECT_HDR; // type and length of this object
    Style: ULONG; // RSVP Style (FF,WF,SE)
    ConfirmRequest: ULONG; // Non Zero for Confirm Request (receive only)
    PolicyElementList: LPRSVP_POLICY_INFO; // Points to the set of policy elements
    NumFlowDesc: ULONG; // Number of FlowDesc
    FlowDescList: LPFLOWDESCRIPTOR; // Points to the FlowDesc list
  end;
  {$EXTERNALSYM _RSVP_RESERVE_INFO}
  RSVP_RESERVE_INFO = _RSVP_RESERVE_INFO;
  {$EXTERNALSYM RSVP_RESERVE_INFO}
  TRsvpReserveInfo = RSVP_RESERVE_INFO;
  PRsvpReserveInfo = LPRSVP_RESERVE_INFO;

  LPCRSVP_RESERVE_INFO = ^RSVP_RESERVE_INFO;
  {$EXTERNALSYM LPCRSVP_RESERVE_INFO}

(*
 * definitions for the ulStyle in the previous structure
 *)

const
  RSVP_DEFAULT_STYLE         = $00000000;
  {$EXTERNALSYM RSVP_DEFAULT_STYLE}
  RSVP_WILDCARD_STYLE        = $00000001;
  {$EXTERNALSYM RSVP_WILDCARD_STYLE}
  RSVP_FIXED_FILTER_STYLE    = $00000002;
  {$EXTERNALSYM RSVP_FIXED_FILTER_STYLE}
  RSVP_SHARED_EXPLICIT_STYLE = $00000003;
  {$EXTERNALSYM RSVP_SHARED_EXPLICIT_STYLE}

(*
 * RSVP_STATUS_INFO Structure used for storing RSVP specific
 * error of status indications.  This also serves as a header
 * for additional objects in the provider specific buffer when
 * interacting via Winsock2 Generic QoS API. This structure includes
 * the QOS_OBJECT_COUNT and QOS_OBJECT_HDR structures directly It is
 * expected to be the first structure in the provider specific structure
 * since it includes the QOS_OBJECT_COUNT
 *)

type
  LPRSVP_STATUS_INFO = ^RSVP_STATUS_INFO;
  {$EXTERNALSYM LPRSVP_STATUS_INFO}
  _RSVP_STATUS_INFO = record
    ObjectHdr: QOS_OBJECT_HDR; // Object Hdr
    StatusCode: ULONG; // Error or Status Information see Winsock2.h
    ExtendedStatus1: ULONG; // Provider specific status extension
    ExtendedStatus2: ULONG; // Provider specific status extension
  end;
  {$EXTERNALSYM _RSVP_STATUS_INFO}
  RSVP_STATUS_INFO = _RSVP_STATUS_INFO;
  {$EXTERNALSYM RSVP_STATUS_INFO}
  TRsvpStatusInfo = RSVP_STATUS_INFO;
  PRsvpStatusInfo = LPRSVP_STATUS_INFO;

  LPCRSVP_STATUS_INFO = ^RSVP_STATUS_INFO;
  {$EXTERNALSYM LPCRSVP_STATUS_INFO}

(*
 * QOS_DestAddr structure -- used for WSAIoctl(SIO_SET_QOS) when we
 * do not want to issue a connect for a sending socket.  The destination
 * address is required so we can generate the session information for
 * RSVP signalling.
*)

  LPQOS_DESTADDR = ^QOS_DESTADDR;
  {$EXTERNALSYM LPQOS_DESTADDR}
  _QOS_DESTADDR = record
    ObjectHdr: QOS_OBJECT_HDR; // Object header
    SocketAddress: PSockAddr; // Destination socket address
    SocketAddressLength: ULONG; // Length of the address structure
  end;
  {$EXTERNALSYM _QOS_DESTADDR}
  QOS_DESTADDR = _QOS_DESTADDR;
  {$EXTERNALSYM QOS_DESTADDR}
  TQosDestAddr = QOS_DESTADDR;
  PQosDestAddr = LPQOS_DESTADDR;

  LPCQOS_DESTADDR = ^QOS_DESTADDR;
  {$EXTERNALSYM LPCQOS_DESTADDR}

(*
 * this structure defines the "General Characterization Parameters" contained in
 * the RSVP Adspec object
 *)

  LPAD_GENERAL_PARAMS = ^AD_GENERAL_PARAMS;
  {$EXTERNALSYM LPAD_GENERAL_PARAMS}
  _AD_GENERAL_PARAMS = record
    IntServAwareHopCount: ULONG; // number of hops that conform to
    // Integrated Services requirements *)
    PathBandwidthEstimate: ULONG; // minimum bandwidth available from
    // sender to receiver *)
    MinimumLatency: ULONG; // sum of minimum latency of the packet
    // forwarding process in routers
    // (in usec)*)
    PathMTU: ULONG; // max transmission unit end to end that
    // will not incur fragmentation *)
    Flags: ULONG; // used to hold break bits.*)
  end;
  {$EXTERNALSYM _AD_GENERAL_PARAMS}
  AD_GENERAL_PARAMS = _AD_GENERAL_PARAMS;
  {$EXTERNALSYM AD_GENERAL_PARAMS}
  TAdGeneralParams = AD_GENERAL_PARAMS;
  PAdGeneralParams = LPAD_GENERAL_PARAMS;

(*
 * Minimum Latency may be set to this "undefined" value
 *)

const
  INDETERMINATE_LATENCY = DWORD($FFFFFFFF);
  {$EXTERNALSYM INDETERMINATE_LATENCY}

(*
 * This Flag is used to indicate the existence of a network element not 
 * supporting  QoS control services somewhere in the data path. If this bit 
 * is set in the specific service override then it indicates that that
 * service was not supported at at least one hop.
 *)

  AD_FLAG_BREAK_BIT = $00000001;
  {$EXTERNALSYM AD_FLAG_BREAK_BIT}

(*
 * this structure describes the Guaranteed service parameters
 *)

type
  LPAD_GUARANTEED = ^AD_GUARANTEED;
  {$EXTERNALSYM LPAD_GUARANTEED}
  _AD_GUARANTEED = record
    CTotal: ULONG;
    DTotal: ULONG;
    CSum: ULONG;
    DSum: ULONG;
  end;
  {$EXTERNALSYM _AD_GUARANTEED}
  AD_GUARANTEED = _AD_GUARANTEED;
  {$EXTERNALSYM AD_GUARANTEED}
  TAdGuaranteed = AD_GUARANTEED;
  PAdGuaranteed = LPAD_GUARANTEED;

(*
 * this structure describes the format of the parameter buffer that can be
 * included in the Service_Type structure below.  This structure allows an
 * application to include any valid Int Serv service parameter in the Buffer 
 * value, after providing the Int Serv parameter id in the ParameterId field.
 *)

  LPPARAM_BUFFER = ^PARAM_BUFFER;
  {$EXTERNALSYM LPPARAM_BUFFER}
  _PARAM_BUFFER = record
    ParameterId: ULONG; // Int Server parameter ID
    Length: ULONG; // total length of this structure
    // ( 8 bytes + length of Buffer )
    Buffer: array [0..1 - 1] of UCHAR; // Paramter itself
  end;
  {$EXTERNALSYM _PARAM_BUFFER}
  PARAM_BUFFER = _PARAM_BUFFER;
  {$EXTERNALSYM PARAM_BUFFER}
  TParamBuffer = PARAM_BUFFER;
  PParamBuffer = LPPARAM_BUFFER;

(*
 * this structure contains the service types supported
 *)

  LPCONTROL_SERVICE = ^CONTROL_SERVICE;
  {$EXTERNALSYM LPCONTROL_SERVICE}
  _CONTROL_SERVICE = record

    //
    // the length of this entire structure including the following buffer.
    // This length value can be added to the ptr to the structure to get the ptr
    // to the next SERVICE_TYPE structure in the list, until the
    // NumberOfServices count has been exhausted.
    //

    Length: ULONG;
    Service: SERVICETYPE;
    Overrides: AD_GENERAL_PARAMS;

    //
    // service specific information ( controlled load has no service specific
    // info here )
    //

    case Integer of
      0: (Guaranteed: AD_GUARANTEED);
      1: (ParamBuffer: array [0..0] of PARAM_BUFFER); // allows for other services down the road

  end;
  {$EXTERNALSYM _CONTROL_SERVICE}
  CONTROL_SERVICE = _CONTROL_SERVICE;
  {$EXTERNALSYM CONTROL_SERVICE}
  TControlService = CONTROL_SERVICE;
  PControlService = LPCONTROL_SERVICE;

(*
 * This structure defines the information which is carried in the Rsvp 
 * Adspec.  This Rsvp object typically indicates which service types are 
 * available ( Controlled Load and/or Guaranteed Service ), if a non-Rsvp
 * hop has been encountered by the Path message, and the minumum MTU along 
 * the path. The services array indicates which services are supported
 *)

  LPRSVP_ADSPEC = ^RSVP_ADSPEC;
  {$EXTERNALSYM LPRSVP_ADSPEC}
  _RSVP_ADSPEC = record
    ObjectHdr: QOS_OBJECT_HDR;
    GeneralParams: AD_GENERAL_PARAMS; // contains the general characterization paramters
    NumberOfServices: ULONG; // count of the number of services
    Services: array [0..0] of CONTROL_SERVICE; // a list of the services supported/requested
  end;
  {$EXTERNALSYM _RSVP_ADSPEC}
  RSVP_ADSPEC = _RSVP_ADSPEC;
  {$EXTERNALSYM RSVP_ADSPEC}
  TRsvpAdSpec = RSVP_ADSPEC;
  PRsvpAdSpec = LPRSVP_ADSPEC;

//
// Opcode for the SIO_CHK_QOS ioctl
// (specific for the Microsoft QOS Service Provider
//
// Bascially:
//
// SIO_CHK_QOS = _WSAIORW(IOC_VENDOR,1)
//             = mIOC_IN | mIOC_OUT | mIOC_VENDOR | mCOMPANY | ioctl_code
//    where
//         mIOC_IN     = 0x80000000
//         mIOC_OUT    = 0x40000000
//         mIOC_VENDOR = 0x04000000
//         mCOMPANY    = 0x18000000
//         ioctl_code  = 0x00000001
//         
// See WSAIoctl man page for details.
//

const
  mIOC_IN     = DWORD($80000000);
  {$EXTERNALSYM mIOC_IN}
  mIOC_OUT    = $40000000;
  {$EXTERNALSYM mIOC_OUT}
  mIOC_VENDOR = $04000000;
  {$EXTERNALSYM mIOC_VENDOR}
  mCOMPANY    = $18000000;
  {$EXTERNALSYM mCOMPANY}
  ioctl_code  = $00000001;
  {$EXTERNALSYM ioctl_code}

  SIO_CHK_QOS = mIOC_IN or mIOC_OUT or mIOC_VENDOR or mCOMPANY or ioctl_code;
  {$EXTERNALSYM SIO_CHK_QOS}

//
// The following may be specified in the input buffer 
// of the SIO_CHK_IOCTL ioctl call 
//

  QOSSPBASE = 50000;
  {$EXTERNALSYM QOSSPBASE}

  ALLOWED_TO_SEND_DATA = QOSSPBASE + 1; // query the SBM/BEST_EFFORT limit
  {$EXTERNALSYM ALLOWED_TO_SEND_DATA}
                                                //   -- result is based on a comparison between
                                                //      the user-specified token rate and the
                                                //      SBM/BEST_EFFORT bandwidth parameters in
                                                //      the system
                                                //   -- result is a YES(1) or NO(0) answer
                                                //      in the output buffer 

  ABLE_TO_RECV_RSVP = QOSSPBASE + 2; // query the SBM/BEST_EFFORT limit
  {$EXTERNALSYM ABLE_TO_RECV_RSVP}
                                                //   -- result is based on a comparison between
                                                //      the user-specified token rate and the
                                                //      SBM/BEST_EFFORT bandwidth parameters in
                                                //      the system
                                                //   -- result is a YES(1) or NO(0) answer
                                                //      in the output buffer 

  LINE_RATE = QOSSPBASE + 3; // query the interface capacity
  {$EXTERNALSYM LINE_RATE}
                                                //   -- result returned in the output buffer
                                                //      in kilo-bits per second

  LOCAL_TRAFFIC_CONTROL = QOSSPBASE + 4; // check if Kernel Traffic Control is available or not
  {$EXTERNALSYM LOCAL_TRAFFIC_CONTROL}
                                                //   -- 0 if not available
                                                //   -- 1 if avaiable
                                                //   -- INFO_NOT_AVAILABLE if there is no way to check

  LOCAL_QOSABILITY = QOSSPBASE + 5; // The followings are for
  {$EXTERNALSYM LOCAL_QOSABILITY}
                                                // the Discovery of Local QOSability
                                                //   -- 0 if no local QOS support
                                                //   -- 1 if local QOS support available
                                                //   -- INFO_NOT_AVAILABLE if there is no way to check

  END_TO_END_QOSABILITY = QOSSPBASE + 6; // The followings are for
  {$EXTERNALSYM END_TO_END_QOSABILITY}
                                                // the Discovery of End-to-End QOSability
                                                //   -- 0 if no end-to-end QOS support
                                                //   -- 1 if end-to-end QOS support available
                                                //   -- INFO_NOT_AVAILABLE if there is no way to check

  INFO_NOT_AVAILABLE = DWORD($FFFFFFFF); // used when LINE_RATE is not known
  {$EXTERNALSYM INFO_NOT_AVAILABLE}

  ANY_DEST_ADDR = DWORD($FFFFFFFF); // for QOS_OBJECT_DEST_ADDR
  {$EXTERNALSYM ANY_DEST_ADDR}

// The followings are for Guaranteed_Service+Latency -> ISSLOW_Traffic_Class Mapping

  MODERATELY_DELAY_SENSITIVE = DWORD($FFFFFFFD);
  {$EXTERNALSYM MODERATELY_DELAY_SENSITIVE}

  HIGHLY_DELAY_SENSITIVE = DWORD($FFFFFFFE);
  {$EXTERNALSYM HIGHLY_DELAY_SENSITIVE}

//
// QOSSP Error Code/Value
//

  QOSSP_ERR_BASE = QOSSPBASE + 6000;
  {$EXTERNALSYM QOSSP_ERR_BASE}

// No error

  GQOS_NO_ERRORCODE = 0;
  {$EXTERNALSYM GQOS_NO_ERRORCODE}

  GQOS_NO_ERRORVALUE = 0;
  {$EXTERNALSYM GQOS_NO_ERRORVALUE}

// Unknown error

  GQOS_ERRORCODE_UNKNOWN = DWORD($FFFFFFFF);
  {$EXTERNALSYM GQOS_ERRORCODE_UNKNOWN}

  GQOS_ERRORVALUE_UNKNOWN = DWORD($FFFFFFFF);
  {$EXTERNALSYM GQOS_ERRORVALUE_UNKNOWN}

// Admission (Resource) Error

  GQOS_NET_ADMISSION = QOSSP_ERR_BASE + 100;
  {$EXTERNALSYM GQOS_NET_ADMISSION}

  GQOS_OTHER     = QOSSP_ERR_BASE + 100 + 1;
  {$EXTERNALSYM GQOS_OTHER}
  GQOS_DELAYBND  = QOSSP_ERR_BASE + 100 + 2;
  {$EXTERNALSYM GQOS_DELAYBND}
  GQOS_BANDWIDTH = QOSSP_ERR_BASE + 100 + 3;
  {$EXTERNALSYM GQOS_BANDWIDTH}
  GQOS_MTU       = QOSSP_ERR_BASE + 100 + 4;
  {$EXTERNALSYM GQOS_MTU}
  GQOS_FLOW_RATE = QOSSP_ERR_BASE + 100 + 5;
  {$EXTERNALSYM GQOS_FLOW_RATE}
  GQOS_PEAK_RATE = QOSSP_ERR_BASE + 100 + 6;
  {$EXTERNALSYM GQOS_PEAK_RATE}
  GQOS_AGG_PEAK_RATE = QOSSP_ERR_BASE + 100 + 7;
  {$EXTERNALSYM GQOS_AGG_PEAK_RATE}

// Policy Error

  GQOS_NET_POLICY = QOSSP_ERR_BASE + 200;
  {$EXTERNALSYM GQOS_NET_POLICY}

  GQOS_POLICY_ERROR_UNKNOWN = QOSSP_ERR_BASE + 200 + 0;
  {$EXTERNALSYM GQOS_POLICY_ERROR_UNKNOWN}

  GQOS_POLICY_GLOBAL_DEF_FLOW_COUNT      = QOSSP_ERR_BASE + 200 + 1;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_DEF_FLOW_COUNT}
  GQOS_POLICY_GLOBAL_GRP_FLOW_COUNT      = QOSSP_ERR_BASE + 200 + 2;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_GRP_FLOW_COUNT}
  GQOS_POLICY_GLOBAL_USER_FLOW_COUNT     = QOSSP_ERR_BASE + 200 + 3;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_USER_FLOW_COUNT}
  GQOS_POLICY_GLOBAL_UNK_USER_FLOW_COUNT = QOSSP_ERR_BASE + 200 + 4;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_UNK_USER_FLOW_COUNT}
  GQOS_POLICY_SUBNET_DEF_FLOW_COUNT      = QOSSP_ERR_BASE + 200 + 5;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_DEF_FLOW_COUNT}
  GQOS_POLICY_SUBNET_GRP_FLOW_COUNT      = QOSSP_ERR_BASE + 200 + 6;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_GRP_FLOW_COUNT}
  GQOS_POLICY_SUBNET_USER_FLOW_COUNT     = QOSSP_ERR_BASE + 200 + 7;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_USER_FLOW_COUNT}
  GQOS_POLICY_SUBNET_UNK_USER_FLOW_COUNT = QOSSP_ERR_BASE + 200 + 8;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_UNK_USER_FLOW_COUNT}

  GQOS_POLICY_GLOBAL_DEF_FLOW_DURATION      = QOSSP_ERR_BASE + 200 + 9;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_DEF_FLOW_DURATION}
  GQOS_POLICY_GLOBAL_GRP_FLOW_DURATION      = QOSSP_ERR_BASE + 200 + 10;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_GRP_FLOW_DURATION}
  GQOS_POLICY_GLOBAL_USER_FLOW_DURATION     = QOSSP_ERR_BASE + 200 + 11;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_USER_FLOW_DURATION}
  GQOS_POLICY_GLOBAL_UNK_USER_FLOW_DURATION = QOSSP_ERR_BASE + 200 + 12;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_UNK_USER_FLOW_DURATION}
  GQOS_POLICY_SUBNET_DEF_FLOW_DURATION      = QOSSP_ERR_BASE + 200 + 13;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_DEF_FLOW_DURATION}
  GQOS_POLICY_SUBNET_GRP_FLOW_DURATION      = QOSSP_ERR_BASE + 200 + 14;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_GRP_FLOW_DURATION}
  GQOS_POLICY_SUBNET_USER_FLOW_DURATION     = QOSSP_ERR_BASE + 200 + 15;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_USER_FLOW_DURATION}
  GQOS_POLICY_SUBNET_UNK_USER_FLOW_DURATION = QOSSP_ERR_BASE + 200 + 16;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_UNK_USER_FLOW_DURATION}

  GQOS_POLICY_GLOBAL_DEF_FLOW_RATE      = QOSSP_ERR_BASE + 200 + 17;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_DEF_FLOW_RATE}
  GQOS_POLICY_GLOBAL_GRP_FLOW_RATE      = QOSSP_ERR_BASE + 200 + 18;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_GRP_FLOW_RATE}
  GQOS_POLICY_GLOBAL_USER_FLOW_RATE     = QOSSP_ERR_BASE + 200 + 19;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_USER_FLOW_RATE}
  GQOS_POLICY_GLOBAL_UNK_USER_FLOW_RATE = QOSSP_ERR_BASE + 200 + 20;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_UNK_USER_FLOW_RATE}
  GQOS_POLICY_SUBNET_DEF_FLOW_RATE      = QOSSP_ERR_BASE + 200 + 21;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_DEF_FLOW_RATE}
  GQOS_POLICY_SUBNET_GRP_FLOW_RATE      = QOSSP_ERR_BASE + 200 + 22;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_GRP_FLOW_RATE}
  GQOS_POLICY_SUBNET_USER_FLOW_RATE     = QOSSP_ERR_BASE + 200 + 23;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_USER_FLOW_RATE}
  GQOS_POLICY_SUBNET_UNK_USER_FLOW_RATE = QOSSP_ERR_BASE + 200 + 24;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_UNK_USER_FLOW_RATE}

  GQOS_POLICY_GLOBAL_DEF_PEAK_RATE      = QOSSP_ERR_BASE + 200 + 25;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_DEF_PEAK_RATE}
  GQOS_POLICY_GLOBAL_GRP_PEAK_RATE      = QOSSP_ERR_BASE + 200 + 26;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_GRP_PEAK_RATE}
  GQOS_POLICY_GLOBAL_USER_PEAK_RATE     = QOSSP_ERR_BASE + 200 + 27;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_USER_PEAK_RATE}
  GQOS_POLICY_GLOBAL_UNK_USER_PEAK_RATE = QOSSP_ERR_BASE + 200 + 28;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_UNK_USER_PEAK_RATE}
  GQOS_POLICY_SUBNET_DEF_PEAK_RATE      = QOSSP_ERR_BASE + 200 + 29;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_DEF_PEAK_RATE}
  GQOS_POLICY_SUBNET_GRP_PEAK_RATE      = QOSSP_ERR_BASE + 200 + 30;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_GRP_PEAK_RATE}
  GQOS_POLICY_SUBNET_USER_PEAK_RATE     = QOSSP_ERR_BASE + 200 + 31;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_USER_PEAK_RATE}
  GQOS_POLICY_SUBNET_UNK_USER_PEAK_RATE = QOSSP_ERR_BASE + 200 + 32;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_UNK_USER_PEAK_RATE}

  GQOS_POLICY_GLOBAL_DEF_SUM_FLOW_RATE      = QOSSP_ERR_BASE + 200 + 33;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_DEF_SUM_FLOW_RATE}
  GQOS_POLICY_GLOBAL_GRP_SUM_FLOW_RATE      = QOSSP_ERR_BASE + 200 + 34;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_GRP_SUM_FLOW_RATE}
  GQOS_POLICY_GLOBAL_USER_SUM_FLOW_RATE     = QOSSP_ERR_BASE + 200 + 35;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_USER_SUM_FLOW_RATE}
  GQOS_POLICY_GLOBAL_UNK_USER_SUM_FLOW_RATE = QOSSP_ERR_BASE + 200 + 36;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_UNK_USER_SUM_FLOW_RATE}
  GQOS_POLICY_SUBNET_DEF_SUM_FLOW_RATE      = QOSSP_ERR_BASE + 200 + 37;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_DEF_SUM_FLOW_RATE}
  GQOS_POLICY_SUBNET_GRP_SUM_FLOW_RATE      = QOSSP_ERR_BASE + 200 + 38;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_GRP_SUM_FLOW_RATE}
  GQOS_POLICY_SUBNET_USER_SUM_FLOW_RATE     = QOSSP_ERR_BASE + 200 + 39;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_USER_SUM_FLOW_RATE}
  GQOS_POLICY_SUBNET_UNK_USER_SUM_FLOW_RATE = QOSSP_ERR_BASE + 200 + 40;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_UNK_USER_SUM_FLOW_RATE}

  GQOS_POLICY_GLOBAL_DEF_SUM_PEAK_RATE      = QOSSP_ERR_BASE + 200 + 41;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_DEF_SUM_PEAK_RATE}
  GQOS_POLICY_GLOBAL_GRP_SUM_PEAK_RATE      = QOSSP_ERR_BASE + 200 + 42;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_GRP_SUM_PEAK_RATE}
  GQOS_POLICY_GLOBAL_USER_SUM_PEAK_RATE     = QOSSP_ERR_BASE + 200 + 43;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_USER_SUM_PEAK_RATE}
  GQOS_POLICY_GLOBAL_UNK_USER_SUM_PEAK_RATE = QOSSP_ERR_BASE + 200 + 44;
  {$EXTERNALSYM GQOS_POLICY_GLOBAL_UNK_USER_SUM_PEAK_RATE}
  GQOS_POLICY_SUBNET_DEF_SUM_PEAK_RATE      = QOSSP_ERR_BASE + 200 + 45;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_DEF_SUM_PEAK_RATE}
  GQOS_POLICY_SUBNET_GRP_SUM_PEAK_RATE      = QOSSP_ERR_BASE + 200 + 46;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_GRP_SUM_PEAK_RATE}
  GQOS_POLICY_SUBNET_USER_SUM_PEAK_RATE     = QOSSP_ERR_BASE + 200 + 47;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_USER_SUM_PEAK_RATE}
  GQOS_POLICY_SUBNET_UNK_USER_SUM_PEAK_RATE = QOSSP_ERR_BASE + 200 + 48;
  {$EXTERNALSYM GQOS_POLICY_SUBNET_UNK_USER_SUM_PEAK_RATE}

  GQOS_POLICY_UNKNOWN_USER       = QOSSP_ERR_BASE + 200 + 49;
  {$EXTERNALSYM GQOS_POLICY_UNKNOWN_USER}
  GQOS_POLICY_NO_PRIVILEGES      = QOSSP_ERR_BASE + 200 + 50;
  {$EXTERNALSYM GQOS_POLICY_NO_PRIVILEGES}
  GQOS_POLICY_EXPIRED_USER_TOKEN = QOSSP_ERR_BASE + 200 + 51;
  {$EXTERNALSYM GQOS_POLICY_EXPIRED_USER_TOKEN}
  GQOS_POLICY_NO_RESOURCES       = QOSSP_ERR_BASE + 200 + 52;
  {$EXTERNALSYM GQOS_POLICY_NO_RESOURCES}
  GQOS_POLICY_PRE_EMPTED         = QOSSP_ERR_BASE + 200 + 53;
  {$EXTERNALSYM GQOS_POLICY_PRE_EMPTED}
  GQOS_POLICY_USER_CHANGED       = QOSSP_ERR_BASE + 200 + 54;
  {$EXTERNALSYM GQOS_POLICY_USER_CHANGED}
  GQOS_POLICY_NO_ACCEPTS         = QOSSP_ERR_BASE + 200 + 55;
  {$EXTERNALSYM GQOS_POLICY_NO_ACCEPTS}
  GQOS_POLICY_NO_MEMORY          = QOSSP_ERR_BASE + 200 + 56;
  {$EXTERNALSYM GQOS_POLICY_NO_MEMORY}
  GQOS_POLICY_CRAZY_FLOWSPEC     = QOSSP_ERR_BASE + 200 + 57;
  {$EXTERNALSYM GQOS_POLICY_CRAZY_FLOWSPEC}

  GQOS_POLICY_NO_MORE_INFO                = QOSSP_ERR_BASE + 200 + 58;
  {$EXTERNALSYM GQOS_POLICY_NO_MORE_INFO}
  GQOS_POLICY_UNSUPPORTED_CREDENTIAL_TYPE = QOSSP_ERR_BASE + 200 + 59;
  {$EXTERNALSYM GQOS_POLICY_UNSUPPORTED_CREDENTIAL_TYPE}
  GQOS_POLICY_INSUFFICIENT_PRIVILEGES     = QOSSP_ERR_BASE + 200 + 60;
  {$EXTERNALSYM GQOS_POLICY_INSUFFICIENT_PRIVILEGES}
  GQOS_POLICY_EXPIRED_CREDENTIAL          = QOSSP_ERR_BASE + 200 + 61;
  {$EXTERNALSYM GQOS_POLICY_EXPIRED_CREDENTIAL}
  GQOS_POLICY_IDENTITY_CHANGED            = QOSSP_ERR_BASE + 200 + 62;
  {$EXTERNALSYM GQOS_POLICY_IDENTITY_CHANGED}
  GQOS_POLICY_NO_QOS_PROVIDED             = QOSSP_ERR_BASE + 200 + 63;
  {$EXTERNALSYM GQOS_POLICY_NO_QOS_PROVIDED}
  GQOS_POLICY_DO_NOT_SEND                 = QOSSP_ERR_BASE + 200 + 64;
  {$EXTERNALSYM GQOS_POLICY_DO_NOT_SEND}

  GQOS_POLICY_ERROR_USERID = QOSSP_ERR_BASE + 200 + 99;
  {$EXTERNALSYM GQOS_POLICY_ERROR_USERID}

// RSVP Error

  GQOS_RSVP = QOSSP_ERR_BASE + 300;
  {$EXTERNALSYM GQOS_RSVP}

  GQOS_NO_PATH        = QOSSP_ERR_BASE + 300 + 1;
  {$EXTERNALSYM GQOS_NO_PATH}
  GQOS_NO_SENDER      = QOSSP_ERR_BASE + 300 + 2;
  {$EXTERNALSYM GQOS_NO_SENDER}
  GQOS_BAD_STYLE      = QOSSP_ERR_BASE + 300 + 3;
  {$EXTERNALSYM GQOS_BAD_STYLE}
  GQOS_UNKNOWN_STYLE  = QOSSP_ERR_BASE + 300 + 4;
  {$EXTERNALSYM GQOS_UNKNOWN_STYLE}
  GQOS_BAD_DSTPORT    = QOSSP_ERR_BASE + 300 + 5;
  {$EXTERNALSYM GQOS_BAD_DSTPORT}
  GQOS_BAD_SNDPORT    = QOSSP_ERR_BASE + 300 + 6;
  {$EXTERNALSYM GQOS_BAD_SNDPORT}
  GQOS_AMBIG_FILTER   = QOSSP_ERR_BASE + 300 + 7;
  {$EXTERNALSYM GQOS_AMBIG_FILTER}
  GQOS_PREEMPTED      = QOSSP_ERR_BASE + 300 + 8;
  {$EXTERNALSYM GQOS_PREEMPTED}
  GQOS_UNKN_OBJ_CLASS = QOSSP_ERR_BASE + 300 + 9;
  {$EXTERNALSYM GQOS_UNKN_OBJ_CLASS}
  GQOS_UNKNOWN_CTYPE  = QOSSP_ERR_BASE + 300 + 10;
  {$EXTERNALSYM GQOS_UNKNOWN_CTYPE}
  GQOS_INVALID        = QOSSP_ERR_BASE + 300 + 11;
  {$EXTERNALSYM GQOS_INVALID}

// API Error

  GQOS_API = QOSSP_ERR_BASE + 400;
  {$EXTERNALSYM GQOS_API}

  GQOS_API_BADSEND  = QOSSP_ERR_BASE + 400 + 1; (* Sender addr not my interface *)
  {$EXTERNALSYM GQOS_API_BADSEND}
  GQOS_API_BADRECV  = QOSSP_ERR_BASE + 400 + 2; (* Recv addr not my interface *)
  {$EXTERNALSYM GQOS_API_BADRECV}
  GQOS_API_BADSPORT = QOSSP_ERR_BASE + 400 + 3; (* Sport !=0 but Dport == 0 *)
  {$EXTERNALSYM GQOS_API_BADSPORT}

// TC System Error

  GQOS_KERNEL_TC_SYS = QOSSP_ERR_BASE + 500;
  {$EXTERNALSYM GQOS_KERNEL_TC_SYS}

  GQOS_TC_GENERIC       = QOSSP_ERR_BASE + 500 + 1;
  {$EXTERNALSYM GQOS_TC_GENERIC}
  GQOS_TC_INVALID       = QOSSP_ERR_BASE + 500 + 2;
  {$EXTERNALSYM GQOS_TC_INVALID}
  GQOS_NO_MEMORY        = QOSSP_ERR_BASE + 500 + 3;
  {$EXTERNALSYM GQOS_NO_MEMORY}
  GQOS_BAD_ADDRESSTYPE  = QOSSP_ERR_BASE + 500 + 4;
  {$EXTERNALSYM GQOS_BAD_ADDRESSTYPE}
  GQOS_BAD_DUPLICATE    = QOSSP_ERR_BASE + 500 + 5;
  {$EXTERNALSYM GQOS_BAD_DUPLICATE}
  GQOS_CONFLICT         = QOSSP_ERR_BASE + 500 + 6;
  {$EXTERNALSYM GQOS_CONFLICT}
  GQOS_NOTREADY         = QOSSP_ERR_BASE + 500 + 7;
  {$EXTERNALSYM GQOS_NOTREADY}
  GQOS_WOULDBLOCK       = QOSSP_ERR_BASE + 500 + 8;
  {$EXTERNALSYM GQOS_WOULDBLOCK}
  GQOS_INCOMPATIBLE     = QOSSP_ERR_BASE + 500 + 9;
  {$EXTERNALSYM GQOS_INCOMPATIBLE}
  GQOS_BAD_SDMODE       = QOSSP_ERR_BASE + 500 + 10;
  {$EXTERNALSYM GQOS_BAD_SDMODE}
  GQOS_BAD_QOSPRIORITY  = QOSSP_ERR_BASE + 500 + 11;
  {$EXTERNALSYM GQOS_BAD_QOSPRIORITY}
  GQOS_BAD_TRAFFICCLASS = QOSSP_ERR_BASE + 500 + 12;
  {$EXTERNALSYM GQOS_BAD_TRAFFICCLASS}
  GQOS_NO_SYS_RESOURCES = QOSSP_ERR_BASE + 500 + 13;
  {$EXTERNALSYM GQOS_NO_SYS_RESOURCES}

// RSVP System Error

  GQOS_RSVP_SYS = QOSSP_ERR_BASE + 600;
  {$EXTERNALSYM GQOS_RSVP_SYS}

  GQOS_OTHER_SYS            = QOSSP_ERR_BASE + 600 + 1;
  {$EXTERNALSYM GQOS_OTHER_SYS}
  GQOS_MEMORY_SYS           = QOSSP_ERR_BASE + 600 + 2;
  {$EXTERNALSYM GQOS_MEMORY_SYS}
  GQOS_API_SYS              = QOSSP_ERR_BASE + 600 + 3;
  {$EXTERNALSYM GQOS_API_SYS}
  GQOS_SETQOS_NO_LOCAL_APPS = QOSSP_ERR_BASE + 600 + 4;
  {$EXTERNALSYM GQOS_SETQOS_NO_LOCAL_APPS}

// TC Error

  GQOS_KERNEL_TC = QOSSP_ERR_BASE + 700;
  {$EXTERNALSYM GQOS_KERNEL_TC}

  GQOS_CONFLICT_SERV = QOSSP_ERR_BASE + 700 + 1;
  {$EXTERNALSYM GQOS_CONFLICT_SERV}
  GQOS_NO_SERV       = QOSSP_ERR_BASE + 700 + 2;
  {$EXTERNALSYM GQOS_NO_SERV}
  GQOS_BAD_FLOWSPEC  = QOSSP_ERR_BASE + 700 + 3;
  {$EXTERNALSYM GQOS_BAD_FLOWSPEC}
  GQOS_BAD_TSPEC     = QOSSP_ERR_BASE + 700 + 4;
  {$EXTERNALSYM GQOS_BAD_TSPEC}
  GQOS_BAD_ADSPEC    = QOSSP_ERR_BASE + 700 + 5;
  {$EXTERNALSYM GQOS_BAD_ADSPEC}

// GQOS API ERRORS

// WSAIoctl Error

  GQOS_IOCTL_SYSTEMFAILURE   = QOSSP_ERR_BASE + 800 + 1;
  {$EXTERNALSYM GQOS_IOCTL_SYSTEMFAILURE}
  GQOS_IOCTL_NOBYTESRETURNED = QOSSP_ERR_BASE + 800 + 2;
  {$EXTERNALSYM GQOS_IOCTL_NOBYTESRETURNED}
  GQOS_IOCTL_INVALIDSOCKET   = QOSSP_ERR_BASE + 800 + 3;
  {$EXTERNALSYM GQOS_IOCTL_INVALIDSOCKET}
  GQOS_IOCTL_INV_FUNCPTR     = QOSSP_ERR_BASE + 800 + 4;
  {$EXTERNALSYM GQOS_IOCTL_INV_FUNCPTR}
  GQOS_IOCTL_INV_OVERLAPPED  = QOSSP_ERR_BASE + 800 + 5;
  {$EXTERNALSYM GQOS_IOCTL_INV_OVERLAPPED}

// SIO_SET_QOS error

  GQOS_SETQOS_BADINBUFFER      = QOSSP_ERR_BASE + 810 + 1;
  {$EXTERNALSYM GQOS_SETQOS_BADINBUFFER}
  GQOS_SETQOS_BADFLOWSPEC      = QOSSP_ERR_BASE + 810 + 2;
  {$EXTERNALSYM GQOS_SETQOS_BADFLOWSPEC}
  GQOS_SETQOS_COLLISION        = QOSSP_ERR_BASE + 810 + 3;
  {$EXTERNALSYM GQOS_SETQOS_COLLISION}
  GQOS_SETQOS_BADPROVSPECBUF   = QOSSP_ERR_BASE + 810 + 4;
  {$EXTERNALSYM GQOS_SETQOS_BADPROVSPECBUF}
  GQOS_SETQOS_ILLEGALOP        = QOSSP_ERR_BASE + 810 + 5;
  {$EXTERNALSYM GQOS_SETQOS_ILLEGALOP}
  GQOS_SETQOS_INVALIDADDRESS   = QOSSP_ERR_BASE + 810 + 6;
  {$EXTERNALSYM GQOS_SETQOS_INVALIDADDRESS}
  GQOS_SETQOS_OUTOFMEMORY      = QOSSP_ERR_BASE + 810 + 7;
  {$EXTERNALSYM GQOS_SETQOS_OUTOFMEMORY}
  GQOS_SETQOS_EXCEPTION        = QOSSP_ERR_BASE + 810 + 8;
  {$EXTERNALSYM GQOS_SETQOS_EXCEPTION}
  GQOS_SETQOS_BADADDRLEN       = QOSSP_ERR_BASE + 810 + 9;
  {$EXTERNALSYM GQOS_SETQOS_BADADDRLEN}
  GQOS_SETQOS_NOSOCKNAME       = QOSSP_ERR_BASE + 810 + 10;
  {$EXTERNALSYM GQOS_SETQOS_NOSOCKNAME}
  GQOS_SETQOS_IPTOSFAIL        = QOSSP_ERR_BASE + 810 + 11;
  {$EXTERNALSYM GQOS_SETQOS_IPTOSFAIL}
  GQOS_SETQOS_OPENSESSIONFAIL  = QOSSP_ERR_BASE + 810 + 12;
  {$EXTERNALSYM GQOS_SETQOS_OPENSESSIONFAIL}
  GQOS_SETQOS_SENDFAIL         = QOSSP_ERR_BASE + 810 + 13;
  {$EXTERNALSYM GQOS_SETQOS_SENDFAIL}
  GQOS_SETQOS_RECVFAIL         = QOSSP_ERR_BASE + 810 + 14;
  {$EXTERNALSYM GQOS_SETQOS_RECVFAIL}
  GQOS_SETQOS_BADPOLICYOBJECT  = QOSSP_ERR_BASE + 810 + 15;
  {$EXTERNALSYM GQOS_SETQOS_BADPOLICYOBJECT}
  GQOS_SETQOS_UNKNOWNFILTEROBJ = QOSSP_ERR_BASE + 810 + 16;
  {$EXTERNALSYM GQOS_SETQOS_UNKNOWNFILTEROBJ}
  GQOS_SETQOS_BADFILTERTYPE    = QOSSP_ERR_BASE + 810 + 17;
  {$EXTERNALSYM GQOS_SETQOS_BADFILTERTYPE}
  GQOS_SETQOS_BADFILTERCOUNT   = QOSSP_ERR_BASE + 810 + 18;
  {$EXTERNALSYM GQOS_SETQOS_BADFILTERCOUNT}
  GQOS_SETQOS_BADOBJLENGTH     = QOSSP_ERR_BASE + 810 + 19;
  {$EXTERNALSYM GQOS_SETQOS_BADOBJLENGTH}
  GQOS_SETQOS_BADFLOWCOUNT     = QOSSP_ERR_BASE + 810 + 20;
  {$EXTERNALSYM GQOS_SETQOS_BADFLOWCOUNT}
  GQOS_SETQOS_UNKNOWNPSOBJ     = QOSSP_ERR_BASE + 810 + 21;
  {$EXTERNALSYM GQOS_SETQOS_UNKNOWNPSOBJ}
  GQOS_SETQOS_BADPOLICYOBJ     = QOSSP_ERR_BASE + 810 + 22;
  {$EXTERNALSYM GQOS_SETQOS_BADPOLICYOBJ}
  GQOS_SETQOS_BADFLOWDESC      = QOSSP_ERR_BASE + 810 + 23;
  {$EXTERNALSYM GQOS_SETQOS_BADFLOWDESC}
  GQOS_SETQOS_BADPROVSPECOBJ   = QOSSP_ERR_BASE + 810 + 24;
  {$EXTERNALSYM GQOS_SETQOS_BADPROVSPECOBJ}
  GQOS_SETQOS_NOLOOPBACK       = QOSSP_ERR_BASE + 810 + 25;
  {$EXTERNALSYM GQOS_SETQOS_NOLOOPBACK}
  GQOS_SETQOS_MODENOTSUPPORTED = QOSSP_ERR_BASE + 810 + 26;
  {$EXTERNALSYM GQOS_SETQOS_MODENOTSUPPORTED}
  GQOS_SETQOS_MISSINGFLOWDESC  = QOSSP_ERR_BASE + 810 + 27;
  {$EXTERNALSYM GQOS_SETQOS_MISSINGFLOWDESC}

// SIO_GET_QOS error

  GQOS_GETQOS_BADOUTBUFFER    = QOSSP_ERR_BASE + 840 + 1;
  {$EXTERNALSYM GQOS_GETQOS_BADOUTBUFFER}
  GQOS_GETQOS_SYSTEMFAILURE   = QOSSP_ERR_BASE + 840 + 2;
  {$EXTERNALSYM GQOS_GETQOS_SYSTEMFAILURE}
  GQOS_GETQOS_EXCEPTION       = QOSSP_ERR_BASE + 840 + 3;
  {$EXTERNALSYM GQOS_GETQOS_EXCEPTION}
  GQOS_GETQOS_INTERNALFAILURE = QOSSP_ERR_BASE + 840 + 4;
  {$EXTERNALSYM GQOS_GETQOS_INTERNALFAILURE}

// SIO_CHK_QOS error

  GQOS_CHKQOS_BADINBUFFER     = QOSSP_ERR_BASE + 850 + 1;
  {$EXTERNALSYM GQOS_CHKQOS_BADINBUFFER}
  GQOS_CHKQOS_BADOUTBUFFER    = QOSSP_ERR_BASE + 850 + 2;
  {$EXTERNALSYM GQOS_CHKQOS_BADOUTBUFFER}
  GQOS_CHKQOS_SYSTEMFAILURE   = QOSSP_ERR_BASE + 850 + 3;
  {$EXTERNALSYM GQOS_CHKQOS_SYSTEMFAILURE}
  GQOS_CHKQOS_INTERNALFAILURE = QOSSP_ERR_BASE + 850 + 4;
  {$EXTERNALSYM GQOS_CHKQOS_INTERNALFAILURE}
  GQOS_CHKQOS_BADPARAMETER    = QOSSP_ERR_BASE + 850 + 5;
  {$EXTERNALSYM GQOS_CHKQOS_BADPARAMETER}
  GQOS_CHKQOS_EXCEPTION       = QOSSP_ERR_BASE + 850 + 6;
  {$EXTERNALSYM GQOS_CHKQOS_EXCEPTION}

implementation

end.

About Koders | Resources | Downloads | Support | Black Duck | Terms of Service | DMCA | Privacy Policy | Contact Us