123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023 |
- {******************************************************************************}
- { }
- { 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.
|