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 _NTDDPSCH_
7#define _NTDDPSCH_
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13#pragma pack(1)
14
15#define PS_COMPONENT_ADAPTER 1
16#define PS_COMPONENT_FLOW 2
17#define PS_COMPONENT_CONFORMER 3
18#define PS_COMPONENT_SHAPER 4
19#define PS_COMPONENT_DRRSEQ 5
20
21  typedef struct _PS_COMPONENT_STATS {
22    ULONG Type;
23    ULONG Length;
24    UCHAR Stats[1];
25  } PS_COMPONENT_STATS,*PPS_COMPONENT_STATS;
26
27#pragma pack()
28
29#pragma pack(1)
30  typedef struct _PS_CONFORMER_STATS {
31    ULONG NonconformingPacketsScheduled;
32  } PS_CONFORMER_STATS,*PPS_CONFORMER_STATS;
33#pragma pack()
34
35#pragma pack(1)
36  typedef struct _PS_SHAPER_STATS {
37    ULONG MaxPacketsInShaper;
38    ULONG AveragePacketsInShaper;
39  } PS_SHAPER_STATS,*PPS_SHAPER_STATS;
40
41#pragma pack()
42
43#pragma pack(1)
44  typedef struct _PS_DRRSEQ_STATS {
45    ULONG MaxPacketsInNetcard;
46    ULONG AveragePacketsInNetcard;
47    ULONG MaxPacketsInSequencer;
48    ULONG AveragePacketsInSequencer;
49    ULONG NonconformingPacketsTransmitted;
50  } PS_DRRSEQ_STATS,*PPS_DRRSEQ_STATS;
51#pragma pack()
52
53#pragma pack(1)
54  typedef struct _PS_FLOW_STATS {
55
56    ULONG DroppedPackets;
57    ULONG PacketsScheduled;
58    ULONG PacketsTransmitted;
59    LARGE_INTEGER BytesScheduled;
60    LARGE_INTEGER BytesTransmitted;
61  } PS_FLOW_STATS,*PPS_FLOW_STATS;
62#pragma pack()
63
64#pragma pack(1)
65  typedef struct _PS_ADAPTER_STATS {
66    ULONG OutOfPackets;
67    ULONG FlowsOpened;
68    ULONG FlowsClosed;
69    ULONG FlowsRejected;
70    ULONG FlowsModified;
71    ULONG FlowModsRejected;
72    ULONG MaxSimultaneousFlows;
73  } PS_ADAPTER_STATS,*PPS_ADAPTER_STATS;
74#pragma pack()
75
76#define ADAPTER_FLOW_MODE_DIFFSERV 1
77#define ADAPTER_FLOW_MODE_STANDARD 2
78
79#ifdef __cplusplus
80}
81#endif
82#endif
83