1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7  * Source: $(DRUNTIMESRC core/sys/windows/_lmstats.d)
8  */
9 module core.sys.windows.lmstats;
10 version (Windows):
11 pragma(lib, "netapi32");
12 
13 import core.sys.windows.lmcons, core.sys.windows.windef;
14 
15 enum ULONG
16     STATSOPT_CLR   = 1,
17     STATS_NO_VALUE = -1,
18     STATS_OVERFLOW = -2;
19 
20 struct STAT_SERVER_0{
21     DWORD sts0_start;
22     DWORD sts0_fopens;
23     DWORD sts0_devopens;
24     DWORD sts0_jobsqueued;
25     DWORD sts0_sopens;
26     DWORD sts0_stimedout;
27     DWORD sts0_serrorout;
28     DWORD sts0_pwerrors;
29     DWORD sts0_permerrors;
30     DWORD sts0_syserrors;
31     DWORD sts0_bytessent_low;
32     DWORD sts0_bytessent_high;
33     DWORD sts0_bytesrcvd_low;
34     DWORD sts0_bytesrcvd_high;
35     DWORD sts0_avresponse;
36     DWORD sts0_reqbufneed;
37     DWORD sts0_bigbufneed;
38 }
39 alias STAT_SERVER_0* PSTAT_SERVER_0, LPSTAT_SERVER_0;
40 
41 // #ifdef LM20_WORKSTATION_STATISTICS
42 // typedef struct _STAT_WORKSTATION_0 {
43 //  DWORD stw0_start;
44 //  DWORD stw0_numNCB_r;
45 //  DWORD stw0_numNCB_s;
46 //  DWORD stw0_numNCB_a;
47 //  DWORD stw0_fiNCB_r;
48 //  DWORD stw0_fiNCB_s;
49 //  DWORD stw0_fiNCB_a;
50 //  DWORD stw0_fcNCB_r;
51 //  DWORD stw0_fcNCB_s;
52 //  DWORD stw0_fcNCB_a;
53 //  DWORD stw0_sesstart;
54 //  DWORD stw0_sessfailcon;
55 //  DWORD stw0_sessbroke;
56 //  DWORD stw0_uses;
57 //  DWORD stw0_usefail;
58 //  DWORD stw0_autorec;
59 //  DWORD stw0_bytessent_r_lo;
60 //  DWORD stw0_bytessent_r_hi;
61 //  DWORD stw0_bytesrcvd_r_lo;
62 //  DWORD stw0_bytesrcvd_r_hi;
63 //  DWORD stw0_bytessent_s_lo;
64 //  DWORD stw0_bytessent_s_hi;
65 //  DWORD stw0_bytesrcvd_s_lo;
66 //  DWORD stw0_bytesrcvd_s_hi;
67 //  DWORD stw0_bytessent_a_lo;
68 //  DWORD stw0_bytessent_a_hi;
69 //  DWORD stw0_bytesrcvd_a_lo;
70 //  DWORD stw0_bytesrcvd_a_hi;
71 //  DWORD stw0_reqbufneed;
72 //  DWORD stw0_bigbufneed;
73 // } STAT_WORKSTATION_0,*PSTAT_WORKSTATION_0,*LPSTAT_WORKSTATION_0;
74 // #else
75 
76 struct STAT_WORKSTATION_0{
77     LARGE_INTEGER StatisticsStartTime;
78     LARGE_INTEGER BytesReceived;
79     LARGE_INTEGER SmbsReceived;
80     LARGE_INTEGER PagingReadBytesRequested;
81     LARGE_INTEGER NonPagingReadBytesRequested;
82     LARGE_INTEGER CacheReadBytesRequested;
83     LARGE_INTEGER NetworkReadBytesRequested;
84     LARGE_INTEGER BytesTransmitted;
85     LARGE_INTEGER SmbsTransmitted;
86     LARGE_INTEGER PagingWriteBytesRequested;
87     LARGE_INTEGER NonPagingWriteBytesRequested;
88     LARGE_INTEGER CacheWriteBytesRequested;
89     LARGE_INTEGER NetworkWriteBytesRequested;
90     DWORD InitiallyFailedOperations;
91     DWORD FailedCompletionOperations;
92     DWORD ReadOperations;
93     DWORD RandomReadOperations;
94     DWORD ReadSmbs;
95     DWORD LargeReadSmbs;
96     DWORD SmallReadSmbs;
97     DWORD WriteOperations;
98     DWORD RandomWriteOperations;
99     DWORD WriteSmbs;
100     DWORD LargeWriteSmbs;
101     DWORD SmallWriteSmbs;
102     DWORD RawReadsDenied;
103     DWORD RawWritesDenied;
104     DWORD NetworkErrors;
105     DWORD Sessions;
106     DWORD FailedSessions;
107     DWORD Reconnects;
108     DWORD CoreConnects;
109     DWORD Lanman20Connects;
110     DWORD Lanman21Connects;
111     DWORD LanmanNtConnects;
112     DWORD ServerDisconnects;
113     DWORD HungSessions;
114     DWORD UseCount;
115     DWORD FailedUseCount;
116     DWORD CurrentCommands;
117 }
118 alias STAT_WORKSTATION_0* PSTAT_WORKSTATION_0, LPSTAT_WORKSTATION_0;
119 
120 extern (Windows):
121 NET_API_STATUS NetStatisticsGet(LPWSTR,LPWSTR,DWORD,DWORD,PBYTE*);