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 _DLCAPI_
|
---|
7 | #define _DLCAPI_
|
---|
8 |
|
---|
9 | #ifdef __cplusplus
|
---|
10 | extern "C" {
|
---|
11 | #endif
|
---|
12 |
|
---|
13 | #define LLC_DIR_INTERRUPT 0x00
|
---|
14 | #define LLC_DIR_OPEN_ADAPTER 0x03
|
---|
15 | #define LLC_DIR_CLOSE_ADAPTER 0x04
|
---|
16 | #define LLC_DIR_SET_MULTICAST_ADDRESS 0x05
|
---|
17 | #define LLC_DIR_SET_GROUP_ADDRESS 0x06
|
---|
18 | #define LLC_DIR_SET_FUNCTIONAL_ADDRESS 0x07
|
---|
19 | #define LLC_DIR_READ_LOG 0x08
|
---|
20 | #define LLC_TRANSMIT_FRAMES 0x09
|
---|
21 | #define LLC_TRANSMIT_DIR_FRAME 0x0A
|
---|
22 | #define LLC_TRANSMIT_I_FRAME 0x0B
|
---|
23 | #define LLC_TRANSMIT_UI_FRAME 0x0D
|
---|
24 | #define LLC_TRANSMIT_XID_CMD 0x0E
|
---|
25 | #define LLC_TRANSMIT_XID_RESP_FINAL 0x0F
|
---|
26 | #define LLC_TRANSMIT_XID_RESP_NOT_FINAL 0x10
|
---|
27 | #define LLC_TRANSMIT_TEST_CMD 0x11
|
---|
28 | #define LLC_DLC_RESET 0x14
|
---|
29 | #define LLC_DLC_OPEN_SAP 0x15
|
---|
30 | #define LLC_DLC_CLOSE_SAP 0x16
|
---|
31 | #define LLC_DLC_REALLOCATE_STATIONS 0x17
|
---|
32 | #define LLC_DLC_OPEN_STATION 0x19
|
---|
33 | #define LLC_DLC_CLOSE_STATION 0x1A
|
---|
34 | #define LLC_DLC_CONNECT_STATION 0x1B
|
---|
35 | #define LLC_DLC_MODIFY 0x1C
|
---|
36 | #define LLC_DLC_FLOW_CONTROL 0x1D
|
---|
37 | #define LLC_DLC_STATISTICS 0x1E
|
---|
38 | #define LLC_DIR_INITIALIZE 0x20
|
---|
39 | #define LLC_DIR_STATUS 0x21
|
---|
40 | #define LLC_DIR_TIMER_SET 0x22
|
---|
41 | #define LLC_DIR_TIMER_CANCEL 0x23
|
---|
42 | #define LLC_BUFFER_GET 0x26
|
---|
43 | #define LLC_BUFFER_FREE 0x27
|
---|
44 | #define LLC_RECEIVE 0x28
|
---|
45 | #define LLC_RECEIVE_CANCEL 0x29
|
---|
46 | #define LLC_RECEIVE_MODIFY 0x2A
|
---|
47 | #define LLC_DIR_TIMER_CANCEL_GROUP 0x2C
|
---|
48 | #define LLC_DIR_SET_EXCEPTION_FLAGS 0x2D
|
---|
49 | #define LLC_BUFFER_CREATE 0x30
|
---|
50 | #define LLC_READ 0x31
|
---|
51 | #define LLC_READ_CANCEL 0x32
|
---|
52 | #define LLC_DLC_SET_THRESHOLD 0x33
|
---|
53 | #define LLC_DIR_CLOSE_DIRECT 0x34
|
---|
54 | #define LLC_DIR_OPEN_DIRECT 0x35
|
---|
55 | #define LLC_MAX_DLC_COMMAND 0x37
|
---|
56 |
|
---|
57 | union _LLC_PARMS;
|
---|
58 | typedef union _LLC_PARMS LLC_PARMS,*PLLC_PARMS;
|
---|
59 |
|
---|
60 | typedef union {
|
---|
61 | PLLC_PARMS pParameterTable;
|
---|
62 | struct {
|
---|
63 | USHORT usStationId;
|
---|
64 | USHORT usParameter;
|
---|
65 | } dlc;
|
---|
66 | struct {
|
---|
67 | USHORT usParameter0;
|
---|
68 | USHORT usParameter1;
|
---|
69 | } dir;
|
---|
70 | UCHAR auchBuffer[4];
|
---|
71 | ULONG ulParameter;
|
---|
72 | } CCB_PARMS;
|
---|
73 |
|
---|
74 | typedef struct _LLC_CCB {
|
---|
75 | UCHAR uchAdapterNumber;
|
---|
76 | UCHAR uchDlcCommand;
|
---|
77 | UCHAR uchDlcStatus;
|
---|
78 | UCHAR uchReserved1;
|
---|
79 | struct _LLC_CCB *pNext;
|
---|
80 | ULONG ulCompletionFlag;
|
---|
81 | CCB_PARMS u;
|
---|
82 | HANDLE hCompletionEvent;
|
---|
83 | UCHAR uchReserved2;
|
---|
84 | UCHAR uchReadFlag;
|
---|
85 | USHORT usReserved3;
|
---|
86 | } LLC_CCB,*PLLC_CCB;
|
---|
87 |
|
---|
88 | union _LLC_BUFFER;
|
---|
89 | typedef union _LLC_BUFFER LLC_BUFFER,*PLLC_BUFFER;
|
---|
90 |
|
---|
91 | typedef struct {
|
---|
92 | PLLC_BUFFER pNextBuffer;
|
---|
93 | USHORT cbFrame;
|
---|
94 | USHORT cbBuffer;
|
---|
95 | USHORT offUserData;
|
---|
96 | USHORT cbUserData;
|
---|
97 | } LLC_NEXT_BUFFER;
|
---|
98 |
|
---|
99 | typedef struct {
|
---|
100 | PLLC_BUFFER pNextBuffer;
|
---|
101 | USHORT cbFrame;
|
---|
102 | USHORT cbBuffer;
|
---|
103 | USHORT offUserData;
|
---|
104 | USHORT cbUserData;
|
---|
105 | USHORT usStationId;
|
---|
106 | UCHAR uchOptions;
|
---|
107 | UCHAR uchMsgType;
|
---|
108 | USHORT cBuffersLeft;
|
---|
109 | UCHAR uchRcvFS;
|
---|
110 | UCHAR uchAdapterNumber;
|
---|
111 | PLLC_BUFFER pNextFrame;
|
---|
112 | UCHAR cbLanHeader;
|
---|
113 | UCHAR cbDlcHeader;
|
---|
114 | UCHAR auchLanHeader[32];
|
---|
115 | UCHAR auchDlcHeader[4];
|
---|
116 | USHORT usPadding;
|
---|
117 | } LLC_NOT_CONTIGUOUS_BUFFER;
|
---|
118 |
|
---|
119 | typedef struct {
|
---|
120 | PLLC_BUFFER pNextBuffer;
|
---|
121 | USHORT cbFrame;
|
---|
122 | USHORT cbBuffer;
|
---|
123 | USHORT offUserData;
|
---|
124 | USHORT cbUserData;
|
---|
125 | USHORT usStationId;
|
---|
126 | UCHAR uchOptions;
|
---|
127 | UCHAR uchMsgType;
|
---|
128 | USHORT cBuffersLeft;
|
---|
129 | UCHAR uchRcvFS;
|
---|
130 | UCHAR uchAdapterNumber;
|
---|
131 | PLLC_BUFFER pNextFrame;
|
---|
132 | } LLC_CONTIGUOUS_BUFFER;
|
---|
133 |
|
---|
134 | union _LLC_BUFFER {
|
---|
135 | PLLC_BUFFER pNext;
|
---|
136 | LLC_NEXT_BUFFER Next;
|
---|
137 | struct LlcNextBuffer {
|
---|
138 | LLC_NEXT_BUFFER Header;
|
---|
139 | UCHAR auchData[];
|
---|
140 | } Buffer;
|
---|
141 | LLC_NOT_CONTIGUOUS_BUFFER NotContiguous;
|
---|
142 | struct {
|
---|
143 | LLC_NOT_CONTIGUOUS_BUFFER Header;
|
---|
144 | UCHAR auchData[];
|
---|
145 | } NotCont;
|
---|
146 | LLC_CONTIGUOUS_BUFFER Contiguous;
|
---|
147 | struct {
|
---|
148 | LLC_CONTIGUOUS_BUFFER Header;
|
---|
149 | UCHAR auchData[];
|
---|
150 | } Cont;
|
---|
151 | };
|
---|
152 |
|
---|
153 | struct _LLC_XMIT_BUFFER;
|
---|
154 | typedef struct _LLC_XMIT_BUFFER LLC_XMIT_BUFFER,*PLLC_XMIT_BUFFER;
|
---|
155 |
|
---|
156 | struct _LLC_XMIT_BUFFER {
|
---|
157 | PLLC_XMIT_BUFFER pNext;
|
---|
158 | USHORT usReserved1;
|
---|
159 | USHORT cbBuffer;
|
---|
160 | USHORT usReserved2;
|
---|
161 | USHORT cbUserData;
|
---|
162 | UCHAR auchData[];
|
---|
163 | };
|
---|
164 |
|
---|
165 | #define LLC_XMIT_BUFFER_SIZE sizeof(LLC_XMIT_BUFFER)
|
---|
166 |
|
---|
167 | typedef struct {
|
---|
168 | HANDLE hBufferPool;
|
---|
169 | PVOID pBuffer;
|
---|
170 | ULONG cbBufferSize;
|
---|
171 | ULONG cbMinimumSizeThreshold;
|
---|
172 | } LLC_BUFFER_CREATE_PARMS,*PLLC_BUFFER_CREATE_PARMS;
|
---|
173 |
|
---|
174 | typedef struct {
|
---|
175 | USHORT usReserved1;
|
---|
176 | USHORT cBuffersLeft;
|
---|
177 | ULONG ulReserved;
|
---|
178 | PLLC_XMIT_BUFFER pFirstBuffer;
|
---|
179 | } LLC_BUFFER_FREE_PARMS,*PLLC_BUFFER_FREE_PARMS;
|
---|
180 |
|
---|
181 | typedef struct {
|
---|
182 | USHORT usReserved1;
|
---|
183 | USHORT cBuffersLeft;
|
---|
184 | USHORT cBuffersToGet;
|
---|
185 | USHORT cbBufferSize;
|
---|
186 | PLLC_XMIT_BUFFER pFirstBuffer;
|
---|
187 | } LLC_BUFFER_GET_PARMS,*PLLC_BUFFER_GET_PARMS;
|
---|
188 |
|
---|
189 | typedef struct {
|
---|
190 | USHORT usStationId;
|
---|
191 | USHORT usReserved;
|
---|
192 | PUCHAR pRoutingInfo;
|
---|
193 | } LLC_DLC_CONNECT_PARMS,*PLLC_DLC_CONNECT_PARMS;
|
---|
194 |
|
---|
195 | #define LLC_RESET_LOCAL_BUSY_USER 0x80
|
---|
196 | #define LLC_RESET_LOCAL_BUSY_BUFFER 0xC0
|
---|
197 | #define LLC_SET_LOCAL_BUSY_USER 0
|
---|
198 |
|
---|
199 | typedef struct {
|
---|
200 | USHORT usRes;
|
---|
201 | USHORT usStationId;
|
---|
202 | UCHAR uchT1;
|
---|
203 | UCHAR uchT2;
|
---|
204 | UCHAR uchTi;
|
---|
205 | UCHAR uchMaxOut;
|
---|
206 | UCHAR uchMaxIn;
|
---|
207 | UCHAR uchMaxOutIncr;
|
---|
208 | UCHAR uchMaxRetryCnt;
|
---|
209 | UCHAR uchReserved1;
|
---|
210 | USHORT usMaxInfoFieldLength;
|
---|
211 | UCHAR uchAccessPriority;
|
---|
212 | UCHAR auchReserved3[4];
|
---|
213 | UCHAR cGroupCount;
|
---|
214 | PUCHAR pGroupList;
|
---|
215 | } LLC_DLC_MODIFY_PARMS,*PLLC_DLC_MODIFY_PARMS;
|
---|
216 |
|
---|
217 | #define LLC_XID_HANDLING_IN_APPLICATION 0x08
|
---|
218 | #define LLC_XID_HANDLING_IN_DLC 0
|
---|
219 | #define LLC_INDIVIDUAL_SAP 0x04
|
---|
220 | #define LLC_GROUP_SAP 0x02
|
---|
221 | #define LLC_MEMBER_OF_GROUP_SAP 0x01
|
---|
222 |
|
---|
223 | typedef struct {
|
---|
224 | USHORT usStationId;
|
---|
225 | USHORT usUserStatValue;
|
---|
226 | UCHAR uchT1;
|
---|
227 | UCHAR uchT2;
|
---|
228 | UCHAR uchTi;
|
---|
229 | UCHAR uchMaxOut;
|
---|
230 | UCHAR uchMaxIn;
|
---|
231 | UCHAR uchMaxOutIncr;
|
---|
232 | UCHAR uchMaxRetryCnt;
|
---|
233 | UCHAR uchMaxMembers;
|
---|
234 | USHORT usMaxI_Field;
|
---|
235 | UCHAR uchSapValue;
|
---|
236 | UCHAR uchOptionsPriority;
|
---|
237 | UCHAR uchcStationCount;
|
---|
238 | UCHAR uchReserved2[2];
|
---|
239 | UCHAR cGroupCount;
|
---|
240 | PUCHAR pGroupList;
|
---|
241 | ULONG DlcStatusFlags;
|
---|
242 | UCHAR uchReserved3[8];
|
---|
243 | UCHAR cLinkStationsAvail;
|
---|
244 | } LLC_DLC_OPEN_SAP_PARMS,*PLLC_DLC_OPEN_SAP_PARMS;
|
---|
245 |
|
---|
246 | typedef struct {
|
---|
247 | USHORT usSapStationId;
|
---|
248 | USHORT usLinkStationId;
|
---|
249 | UCHAR uchT1;
|
---|
250 | UCHAR uchT2;
|
---|
251 | UCHAR uchTi;
|
---|
252 | UCHAR uchMaxOut;
|
---|
253 | UCHAR uchMaxIn;
|
---|
254 | UCHAR uchMaxOutIncr;
|
---|
255 | UCHAR uchMaxRetryCnt;
|
---|
256 | UCHAR uchRemoteSap;
|
---|
257 | USHORT usMaxI_Field;
|
---|
258 | UCHAR uchAccessPriority;
|
---|
259 | PVOID pRemoteNodeAddress;
|
---|
260 | } LLC_DLC_OPEN_STATION_PARMS,*PLLC_DLC_OPEN_STATION_PARMS;
|
---|
261 |
|
---|
262 | #define LLC_INCREASE_LINK_STATIONS 0
|
---|
263 | #define LLC_DECREASE_LINK_STATIONS 0x80
|
---|
264 |
|
---|
265 | typedef struct {
|
---|
266 | USHORT usStationId;
|
---|
267 | UCHAR uchOption;
|
---|
268 | UCHAR uchStationCount;
|
---|
269 | UCHAR uchStationsAvailOnAdapter;
|
---|
270 | UCHAR uchStationsAvailOnSap;
|
---|
271 | UCHAR uchTotalStationsOnAdapter;
|
---|
272 | UCHAR uchTotalStationsOnSap;
|
---|
273 | } LLC_DLC_REALLOCATE_PARMS,*PLLC_DLC_REALLOCATE_PARMS;
|
---|
274 |
|
---|
275 | typedef struct {
|
---|
276 | USHORT usStationId;
|
---|
277 | USHORT cBufferThreshold;
|
---|
278 | PVOID AlertEvent;
|
---|
279 | } LLC_DLC_SET_THRESHOLD_PARMS,*PLLC_DLC_SET_THRESHOLD_PARMS;
|
---|
280 |
|
---|
281 | typedef struct {
|
---|
282 | PVOID TraceBuffer;
|
---|
283 | ULONG TraceBufferSize;
|
---|
284 | ULONG TraceFlags;
|
---|
285 | } LLC_TRACE_INITIALIZE_PARMS,*PLLC_TRACE_INITIALIZE_PARMS;
|
---|
286 |
|
---|
287 | #define LLC_DLC_RESET_STATISTICS 0x80
|
---|
288 | #define LLC_DLC_READ_STATISTICS 0
|
---|
289 |
|
---|
290 | typedef struct {
|
---|
291 | ULONG cTransmittedFrames;
|
---|
292 | ULONG cReceivedFrames;
|
---|
293 | ULONG cDiscardedFrames;
|
---|
294 | ULONG cDataLost;
|
---|
295 | USHORT cBuffersAvailable;
|
---|
296 | } DLC_SAP_LOG,*PDLC_SAP_LOG;
|
---|
297 |
|
---|
298 | typedef struct {
|
---|
299 | USHORT cI_FramesTransmitted;
|
---|
300 | USHORT cI_FramesReceived;
|
---|
301 | UCHAR cI_FrameReceiveErrors;
|
---|
302 | UCHAR cI_FrameTransmissionErrors;
|
---|
303 | USHORT cT1_ExpirationCount;
|
---|
304 | UCHAR uchLastCmdRespReceived;
|
---|
305 | UCHAR uchLastCmdRespTransmitted;
|
---|
306 | UCHAR uchPrimaryState;
|
---|
307 | UCHAR uchSecondaryState;
|
---|
308 | UCHAR uchSendStateVariable;
|
---|
309 | UCHAR uchReceiveStateVariable;
|
---|
310 | UCHAR uchLastNr;
|
---|
311 | UCHAR cbLanHeader;
|
---|
312 | UCHAR auchLanHeader[32];
|
---|
313 | } DLC_LINK_LOG,*PDLC_LINK_LOG;
|
---|
314 |
|
---|
315 | typedef union {
|
---|
316 | DLC_SAP_LOG Sap;
|
---|
317 | DLC_LINK_LOG Link;
|
---|
318 | } LLC_DLC_LOG_BUFFER,*PLLC_DLC_LOG_BUFFER;
|
---|
319 |
|
---|
320 | typedef struct {
|
---|
321 | USHORT usStationId;
|
---|
322 | USHORT cbLogBufSize;
|
---|
323 | PLLC_DLC_LOG_BUFFER pLogBuf;
|
---|
324 | USHORT usActLogLength;
|
---|
325 | UCHAR uchOptions;
|
---|
326 | } LLC_DLC_STATISTICS_PARMS,*PLLC_DLC_STATISTICS_PARMS;
|
---|
327 |
|
---|
328 | typedef struct {
|
---|
329 | USHORT usBringUps;
|
---|
330 | UCHAR Reserved[30];
|
---|
331 | } LLC_DIR_INITIALIZE_PARMS,*PLLC_DIR_INITIALIZE_PARMS;
|
---|
332 |
|
---|
333 | typedef struct {
|
---|
334 | USHORT usOpenErrorCode;
|
---|
335 | USHORT usOpenOptions;
|
---|
336 | UCHAR auchNodeAddress[6];
|
---|
337 | UCHAR auchGroupAddress[4];
|
---|
338 | UCHAR auchFunctionalAddress[4];
|
---|
339 | USHORT usReserved1;
|
---|
340 | USHORT usReserved2;
|
---|
341 | USHORT usMaxFrameSize;
|
---|
342 | USHORT usReserved3[4];
|
---|
343 | USHORT usBringUps;
|
---|
344 | USHORT InitWarnings;
|
---|
345 | USHORT usReserved4[3];
|
---|
346 | } LLC_ADAPTER_OPEN_PARMS,*PLLC_ADAPTER_OPEN_PARMS;
|
---|
347 |
|
---|
348 | typedef struct {
|
---|
349 | UCHAR uchDlcMaxSaps;
|
---|
350 | UCHAR uchDlcMaxStations;
|
---|
351 | UCHAR uchDlcMaxGroupSaps;
|
---|
352 | UCHAR uchDlcMaxGroupMembers;
|
---|
353 | UCHAR uchT1_TickOne;
|
---|
354 | UCHAR uchT2_TickOne;
|
---|
355 | UCHAR uchTi_TickOne;
|
---|
356 | UCHAR uchT1_TickTwo;
|
---|
357 | UCHAR uchT2_TickTwo;
|
---|
358 | UCHAR uchTi_TickTwo;
|
---|
359 | } LLC_DLC_PARMS,*PLLC_DLC_PARMS;
|
---|
360 |
|
---|
361 | typedef enum {
|
---|
362 | LLC_ETHERNET_TYPE_DEFAULT,LLC_ETHERNET_TYPE_AUTO,LLC_ETHERNET_TYPE_802_3,LLC_ETHERNET_TYPE_DIX
|
---|
363 | } LLC_ETHERNET_TYPE,*PLLC_ETHERNET_TYPE;
|
---|
364 |
|
---|
365 | typedef struct {
|
---|
366 | PVOID hBufferPool;
|
---|
367 | PVOID pSecurityDescriptor;
|
---|
368 | LLC_ETHERNET_TYPE LlcEthernetType;
|
---|
369 | } LLC_EXTENDED_ADAPTER_PARMS,*PLLC_EXTENDED_ADAPTER_PARMS;
|
---|
370 |
|
---|
371 | typedef struct {
|
---|
372 | PLLC_ADAPTER_OPEN_PARMS pAdapterParms;
|
---|
373 | PLLC_EXTENDED_ADAPTER_PARMS pExtendedParms;
|
---|
374 | PLLC_DLC_PARMS pDlcParms;
|
---|
375 | PVOID pReserved1;
|
---|
376 | } LLC_DIR_OPEN_ADAPTER_PARMS,*PLLC_DIR_OPEN_ADAPTER_PARMS;
|
---|
377 |
|
---|
378 | typedef struct {
|
---|
379 | UCHAR auchMulticastAddress[6];
|
---|
380 | } LLC_DIR_MULTICAST_ADDRESS,*PLLC_DIR_MULTICAST_ADDRESS;
|
---|
381 |
|
---|
382 | #define LLC_DIRECT_OPTIONS_ALL_MACS 0x1880
|
---|
383 |
|
---|
384 | typedef struct {
|
---|
385 | USHORT Reserved[4];
|
---|
386 | USHORT usOpenOptions;
|
---|
387 | USHORT usEthernetType;
|
---|
388 | ULONG ulProtocolTypeMask;
|
---|
389 | ULONG ulProtocolTypeMatch;
|
---|
390 | USHORT usProtocolTypeOffset;
|
---|
391 | } LLC_DIR_OPEN_DIRECT_PARMS,*PLLC_DIR_OPEN_DIRECT_PARMS;
|
---|
392 |
|
---|
393 | typedef struct {
|
---|
394 | UCHAR cLineError;
|
---|
395 | UCHAR cInternalError;
|
---|
396 | UCHAR cBurstError;
|
---|
397 | UCHAR cAC_Error;
|
---|
398 | UCHAR cAbortDelimiter;
|
---|
399 | UCHAR uchReserved1;
|
---|
400 | UCHAR cLostFrame;
|
---|
401 | UCHAR cReceiveCongestion;
|
---|
402 | UCHAR cFrameCopiedError;
|
---|
403 | UCHAR cFrequencyError;
|
---|
404 | UCHAR cTokenError;
|
---|
405 | UCHAR uchReserved2;
|
---|
406 | UCHAR uchReserved3;
|
---|
407 | UCHAR uchReserved4;
|
---|
408 | } LLC_ADAPTER_LOG_TR,*PLLC_ADAPTER_LOG_TR;
|
---|
409 |
|
---|
410 | typedef struct {
|
---|
411 | UCHAR cCRC_Error;
|
---|
412 | UCHAR uchReserved1;
|
---|
413 | UCHAR cAlignmentError;
|
---|
414 | UCHAR uchReserved2;
|
---|
415 | UCHAR cTransmitError;
|
---|
416 | UCHAR uchReserved3;
|
---|
417 | UCHAR cCollisionError;
|
---|
418 | UCHAR cReceiveCongestion;
|
---|
419 | UCHAR uchReserved[6];
|
---|
420 | } LLC_ADAPTER_LOG_ETH,*PLLC_ADAPTER_LOG_ETH;
|
---|
421 |
|
---|
422 | typedef union {
|
---|
423 | LLC_ADAPTER_LOG_TR Tr;
|
---|
424 | LLC_ADAPTER_LOG_ETH Eth;
|
---|
425 | } LLC_ADAPTER_LOG,*PLLC_ADAPTER_LOG;
|
---|
426 |
|
---|
427 | typedef struct {
|
---|
428 | ULONG cTransmittedFrames;
|
---|
429 | ULONG cReceivedFrames;
|
---|
430 | ULONG cDiscardedFrames;
|
---|
431 | ULONG cDataLost;
|
---|
432 | USHORT cBuffersAvailable;
|
---|
433 | } LLC_DIRECT_LOG,*PLLC_DIRECT_LOG;
|
---|
434 |
|
---|
435 | typedef union {
|
---|
436 | LLC_ADAPTER_LOG Adapter;
|
---|
437 | LLC_DIRECT_LOG Dir;
|
---|
438 | struct {
|
---|
439 | LLC_ADAPTER_LOG Adapter;
|
---|
440 | LLC_DIRECT_LOG Dir;
|
---|
441 | } both;
|
---|
442 | } LLC_DIR_READ_LOG_BUFFER,*PLLC_DIR_READ_LOG_BUFFER;
|
---|
443 |
|
---|
444 | #define LLC_DIR_READ_LOG_ADAPTER 0
|
---|
445 | #define LLC_DIR_READ_LOG_DIRECT 1
|
---|
446 | #define LLC_DIR_READ_LOG_BOTH 2
|
---|
447 |
|
---|
448 | typedef struct {
|
---|
449 | USHORT usTypeId;
|
---|
450 | USHORT cbLogBuffer;
|
---|
451 | PLLC_DIR_READ_LOG_BUFFER pLogBuffer;
|
---|
452 | USHORT cbActualLength;
|
---|
453 | } LLC_DIR_READ_LOG_PARMS,*PLLC_DIR_READ_LOG_PARMS;
|
---|
454 |
|
---|
455 | typedef struct {
|
---|
456 | ULONG ulAdapterCheckFlag;
|
---|
457 | ULONG ulNetworkStatusFlag;
|
---|
458 | ULONG ulPcErrorFlag;
|
---|
459 | ULONG ulSystemActionFlag;
|
---|
460 | } LLC_DIR_SET_EFLAG_PARMS,*PLLC_DIR_SET_EFLAG_PARMS;
|
---|
461 |
|
---|
462 | #define LLC_ADAPTER_ETHERNET 0x0010
|
---|
463 | #define LLC_ADAPTER_TOKEN_RING 0x0040
|
---|
464 |
|
---|
465 | typedef struct {
|
---|
466 | UCHAR auchPermanentAddress[6];
|
---|
467 | UCHAR auchNodeAddress[6];
|
---|
468 | UCHAR auchGroupAddress[4];
|
---|
469 | UCHAR auchFunctAddr[4];
|
---|
470 | UCHAR uchMaxSap;
|
---|
471 | UCHAR uchOpenSaps;
|
---|
472 | UCHAR uchMaxStations;
|
---|
473 | UCHAR uchOpenStation;
|
---|
474 | UCHAR uchAvailStations;
|
---|
475 | UCHAR uchAdapterConfig;
|
---|
476 | UCHAR auchReserved1[10];
|
---|
477 | ULONG ulReserved1;
|
---|
478 | ULONG ulReserved2;
|
---|
479 | ULONG ulMaxFrameLength;
|
---|
480 | USHORT usLastNetworkStatus;
|
---|
481 | USHORT usAdapterType;
|
---|
482 | } LLC_DIR_STATUS_PARMS,*PLLC_DIR_STATUS_PARMS;
|
---|
483 |
|
---|
484 | #define LLC_OPTION_READ_STATION 0
|
---|
485 | #define LLC_OPTION_READ_SAP 1
|
---|
486 | #define LLC_OPTION_READ_ALL 2
|
---|
487 |
|
---|
488 | #define LLC_EVENT_SYSTEM_ACTION 0x0040
|
---|
489 | #define LLC_EVENT_NETWORK_STATUS 0x0020
|
---|
490 | #define LLC_EVENT_CRITICAL_EXCEPTION 0x0010
|
---|
491 | #define LLC_EVENT_STATUS_CHANGE 0x0008
|
---|
492 | #define LLC_EVENT_RECEIVE_DATA 0x0004
|
---|
493 | #define LLC_EVENT_TRANSMIT_COMPLETION 0x0002
|
---|
494 | #define LLC_EVENT_COMMAND_COMPLETION 0x0001
|
---|
495 | #define LLC_READ_ALL_EVENTS 0x007F
|
---|
496 |
|
---|
497 | #define LLC_INDICATE_LINK_LOST 0x8000
|
---|
498 | #define LLC_INDICATE_DM_DISC_RECEIVED 0x4000
|
---|
499 | #define LLC_INDICATE_FRMR_RECEIVED 0x2000
|
---|
500 | #define LLC_INDICATE_FRMR_SENT 0x1000
|
---|
501 | #define LLC_INDICATE_RESET 0x0800
|
---|
502 | #define LLC_INDICATE_CONNECT_REQUEST 0x0400
|
---|
503 | #define LLC_INDICATE_REMOTE_BUSY 0x0200
|
---|
504 | #define LLC_INDICATE_REMOTE_READY 0x0100
|
---|
505 | #define LLC_INDICATE_TI_TIMER_EXPIRED 0x0080
|
---|
506 | #define LLC_INDICATE_DLC_COUNTER_OVERFLOW 0x0040
|
---|
507 | #define LLC_INDICATE_ACCESS_PRTY_LOWERED 0x0020
|
---|
508 | #define LLC_INDICATE_LOCAL_STATION_BUSY 0x0001
|
---|
509 |
|
---|
510 | typedef struct {
|
---|
511 | USHORT usStationId;
|
---|
512 | UCHAR uchOptionIndicator;
|
---|
513 | UCHAR uchEventSet;
|
---|
514 | UCHAR uchEvent;
|
---|
515 | UCHAR uchCriticalSubset;
|
---|
516 | ULONG ulNotificationFlag;
|
---|
517 | union {
|
---|
518 | struct {
|
---|
519 | USHORT usCcbCount;
|
---|
520 | PLLC_CCB pCcbCompletionList;
|
---|
521 | USHORT usBufferCount;
|
---|
522 | PLLC_BUFFER pFirstBuffer;
|
---|
523 | USHORT usReceivedFrameCount;
|
---|
524 | PLLC_BUFFER pReceivedFrame;
|
---|
525 | USHORT usEventErrorCode;
|
---|
526 | USHORT usEventErrorData[3];
|
---|
527 | } Event;
|
---|
528 | struct {
|
---|
529 | USHORT usStationId;
|
---|
530 | USHORT usDlcStatusCode;
|
---|
531 | UCHAR uchFrmrData[5];
|
---|
532 | UCHAR uchAccessPritority;
|
---|
533 | UCHAR uchRemoteNodeAddress[6];
|
---|
534 | UCHAR uchRemoteSap;
|
---|
535 | UCHAR uchReserved;
|
---|
536 | USHORT usUserStatusValue;
|
---|
537 | } Status;
|
---|
538 | } Type;
|
---|
539 | } LLC_READ_PARMS,*PLLC_READ_PARMS;
|
---|
540 |
|
---|
541 | typedef struct {
|
---|
542 | LLC_CCB Ccb;
|
---|
543 | LLC_READ_PARMS Parms;
|
---|
544 | } LLC_READ_COMMAND,*PLLC_READ_COMMAND;
|
---|
545 |
|
---|
546 | #define LLC_DIR_RCV_ALL_TR_FRAMES 0
|
---|
547 | #define LLC_DIR_RCV_ALL_MAC_FRAMES 1
|
---|
548 | #define LLC_DIR_RCV_ALL_8022_FRAMES 2
|
---|
549 | #define LLC_DIR_RCV_ALL_FRAMES 4
|
---|
550 | #define LLC_DIR_RCV_ALL_ETHERNET_TYPES 5
|
---|
551 |
|
---|
552 | #define LLC_CONTIGUOUS_MAC 0x80
|
---|
553 | #define LLC_CONTIGUOUS_DATA 0x40
|
---|
554 | #define LLC_NOT_CONTIGUOUS_DATA 0x00
|
---|
555 |
|
---|
556 | #define LLC_RCV_READ_INDIVIDUAL_FRAMES 0
|
---|
557 | #define LLC_RCV_CHAIN_FRAMES_ON_LINK 1
|
---|
558 | #define LLC_RCV_CHAIN_FRAMES_ON_SAP 2
|
---|
559 |
|
---|
560 | typedef struct {
|
---|
561 | USHORT usStationId;
|
---|
562 | USHORT usUserLength;
|
---|
563 | ULONG ulReceiveFlag;
|
---|
564 | PLLC_BUFFER pFirstBuffer;
|
---|
565 | UCHAR uchOptions;
|
---|
566 | UCHAR auchReserved1[3];
|
---|
567 | UCHAR uchRcvReadOption;
|
---|
568 | } LLC_RECEIVE_PARMS,*PLLC_RECEIVE_PARMS;
|
---|
569 |
|
---|
570 | #define LLC_CHAIN_XMIT_COMMANDS_ON_LINK 0
|
---|
571 | #define LLC_COMPLETE_SINGLE_XMIT_FRAME 1
|
---|
572 | #define LLC_CHAIN_XMIT_COMMANDS_ON_SAP 2
|
---|
573 |
|
---|
574 | typedef struct {
|
---|
575 | USHORT usStationId;
|
---|
576 | UCHAR uchTransmitFs;
|
---|
577 | UCHAR uchRemoteSap;
|
---|
578 | PLLC_XMIT_BUFFER pXmitQueue1;
|
---|
579 | PLLC_XMIT_BUFFER pXmitQueue2;
|
---|
580 | USHORT cbBuffer1;
|
---|
581 | USHORT cbBuffer2;
|
---|
582 | PVOID pBuffer1;
|
---|
583 | PVOID pBuffer2;
|
---|
584 | UCHAR uchXmitReadOption;
|
---|
585 | } LLC_TRANSMIT_PARMS,*PLLC_TRANSMIT_PARMS;
|
---|
586 |
|
---|
587 | #define LLC_FIRST_DATA_SEGMENT 0x01
|
---|
588 | #define LLC_NEXT_DATA_SEGMENT 0x02
|
---|
589 |
|
---|
590 | typedef struct {
|
---|
591 | UCHAR eSegmentType;
|
---|
592 | UCHAR boolFreeBuffer;
|
---|
593 | USHORT cbBuffer;
|
---|
594 | PVOID pBuffer;
|
---|
595 | } LLC_TRANSMIT_DESCRIPTOR,*PLLC_TRANSMIT_DESCRIPTOR;
|
---|
596 |
|
---|
597 | enum _LLC_FRAME_TYPES {
|
---|
598 | LLC_DIRECT_TRANSMIT = 0x0000,LLC_DIRECT_MAC = 0x0002,LLC_I_FRAME = 0x0004,LLC_UI_FRAME = 0x0006,LLC_XID_COMMAND_POLL = 0x0008,
|
---|
599 | LLC_XID_COMMAND_NOT_POLL = 0x000A,LLC_XID_RESPONSE_FINAL = 0x000C,LLC_XID_RESPONSE_NOT_FINAL = 0x000E,LLC_TEST_RESPONSE_FINAL = 0x0010,
|
---|
600 | LLC_TEST_RESPONSE_NOT_FINAL = 0x0012,LLC_DIRECT_8022 = 0x0014,LLC_TEST_COMMAND_POLL = 0x0016,LLC_DIRECT_ETHERNET_TYPE = 0x0018,
|
---|
601 | LLC_LAST_FRAME_TYPE = 0x001a,LLC_FIRST_ETHERNET_TYPE = 0x05DD
|
---|
602 | };
|
---|
603 |
|
---|
604 | typedef struct {
|
---|
605 | LLC_CCB Ccb;
|
---|
606 | USHORT usStationId;
|
---|
607 | USHORT usFrameType;
|
---|
608 | UCHAR uchRemoteSap;
|
---|
609 | UCHAR uchXmitReadOption;
|
---|
610 | UCHAR Reserved2[2];
|
---|
611 | ULONG cXmitBufferCount;
|
---|
612 | LLC_TRANSMIT_DESCRIPTOR aXmitBuffer[1];
|
---|
613 | } LLC_TRANSMIT2_COMMAND,*PLLC_TRANSMIT2_COMMAND;
|
---|
614 |
|
---|
615 | #define LLC_TRANSMIT2_VAR_PARMS(a) struct { LLC_CCB Ccb; USHORT usStationId; USHORT usFrameType; UCHAR uchRemoteSap; UCHAR uchXmitReadOption; UCHAR uchReserved2[2]; ULONG cXmitBufferCount; LLC_TRANSMIT_DESCRIPTOR XmitBuffer[(a)];}
|
---|
616 |
|
---|
617 | union _LLC_PARMS {
|
---|
618 | LLC_BUFFER_FREE_PARMS BufferFree;
|
---|
619 | LLC_BUFFER_GET_PARMS BufferGet;
|
---|
620 | LLC_DLC_CONNECT_PARMS DlcConnectStation;
|
---|
621 | LLC_DLC_MODIFY_PARMS DlcModify;
|
---|
622 | LLC_DLC_OPEN_SAP_PARMS DlcOpenSap;
|
---|
623 | LLC_DLC_OPEN_STATION_PARMS DlcOpenStation;
|
---|
624 | LLC_DLC_REALLOCATE_PARMS DlcReallocate;
|
---|
625 | LLC_DLC_SET_THRESHOLD_PARMS DlcSetThreshold;
|
---|
626 | LLC_DLC_STATISTICS_PARMS DlcStatistics;
|
---|
627 | LLC_DIR_INITIALIZE_PARMS DirInitialize;
|
---|
628 | LLC_DIR_OPEN_ADAPTER_PARMS DirOpenAdapter;
|
---|
629 | LLC_DIR_OPEN_DIRECT_PARMS DirOpenDirect;
|
---|
630 | LLC_DIR_READ_LOG_PARMS DirReadLog;
|
---|
631 | LLC_DIR_SET_EFLAG_PARMS DirSetEventFlag;
|
---|
632 | LLC_DIR_STATUS_PARMS DirStatus;
|
---|
633 | LLC_READ_PARMS Read;
|
---|
634 | LLC_RECEIVE_PARMS Receive;
|
---|
635 | LLC_TRANSMIT_PARMS Transmit;
|
---|
636 | LLC_TRANSMIT2_COMMAND Transmit2;
|
---|
637 | LLC_TRACE_INITIALIZE_PARMS TraceInitialize;
|
---|
638 | };
|
---|
639 |
|
---|
640 | typedef enum _LLC_STATUS {
|
---|
641 | LLC_STATUS_SUCCESS = 0x00,LLC_STATUS_INVALID_COMMAND = 0x01,LLC_STATUS_DUPLICATE_COMMAND = 0x02,LLC_STATUS_ADAPTER_OPEN = 0x03,
|
---|
642 | LLC_STATUS_ADAPTER_CLOSED = 0x04,LLC_STATUS_PARAMETER_MISSING = 0x05,LLC_STATUS_INVALID_OPTION = 0x06,LLC_STATUS_COMMAND_CANCELLED_FAILURE = 0x07,
|
---|
643 | LLC_STATUS_ACCESS_DENIED = 0x08,LLC_STATUS_ADAPTER_NOT_INITIALIZED = 0x09,LLC_STATUS_CANCELLED_BY_USER = 0x0A,
|
---|
644 | LLC_STATUS_COMMAND_CANCELLED_CLOSED = 0x0B,LLC_STATUS_SUCCESS_NOT_OPEN = 0x0C,LLC_STATUS_TIMER_ERROR = 0x11,LLC_STATUS_NO_MEMORY = 0x12,
|
---|
645 | LLC_STATUS_INVALID_LOG_ID = 0x13,LLC_STATUS_LOST_LOG_DATA = 0x15,LLC_STATUS_BUFFER_SIZE_EXCEEDED = 0x16,LLC_STATUS_INVALID_BUFFER_LENGTH = 0x18,
|
---|
646 | LLC_STATUS_INADEQUATE_BUFFERS = 0x19,LLC_STATUS_USER_LENGTH_TOO_LARGE = 0x1A,LLC_STATUS_INVALID_PARAMETER_TABLE = 0x1B,
|
---|
647 | LLC_STATUS_INVALID_POINTER_IN_CCB = 0x1C,LLC_STATUS_INVALID_ADAPTER = 0x1D,LLC_STATUS_LOST_DATA_NO_BUFFERS = 0x20,
|
---|
648 | LLC_STATUS_LOST_DATA_INADEQUATE_SPACE = 0x21,LLC_STATUS_TRANSMIT_ERROR_FS = 0x22,LLC_STATUS_TRANSMIT_ERROR = 0x23,
|
---|
649 | LLC_STATUS_UNAUTHORIZED_MAC = 0x24,LLC_STATUS_MAX_COMMANDS_EXCEEDED = 0x25,LLC_STATUS_LINK_NOT_TRANSMITTING = 0x27,
|
---|
650 | LLC_STATUS_INVALID_FRAME_LENGTH = 0x28,LLC_STATUS_INADEQUATE_RECEIVE = 0x30,LLC_STATUS_INVALID_NODE_ADDRESS = 0x32,
|
---|
651 | LLC_STATUS_INVALID_RCV_BUFFER_LENGTH = 0x33,LLC_STATUS_INVALID_XMIT_BUFFER_LENGTH = 0x34,LLC_STATUS_INVALID_STATION_ID = 0x40,
|
---|
652 | LLC_STATUS_LINK_PROTOCOL_ERROR = 0x41,LLC_STATUS_PARMETERS_EXCEEDED_MAX = 0x42,LLC_STATUS_INVALID_SAP_VALUE = 0x43,
|
---|
653 | LLC_STATUS_INVALID_ROUTING_INFO = 0x44,LLC_STATUS_RESOURCES_NOT_AVAILABLE = 0x46,LLC_STATUS_LINK_STATIONS_OPEN = 0x47,
|
---|
654 | LLC_STATUS_INCOMPATIBLE_COMMANDS = 0x4A,LLC_STATUS_OUTSTANDING_COMMANDS = 0x4C,LLC_STATUS_CONNECT_FAILED = 0x4D,
|
---|
655 | LLC_STATUS_INVALID_REMOTE_ADDRESS = 0x4F,LLC_STATUS_CCB_POINTER_FIELD = 0x50,LLC_STATUS_INVALID_APPLICATION_ID = 0x52,
|
---|
656 | LLC_STATUS_NO_SYSTEM_PROCESS = 0x56,LLC_STATUS_INADEQUATE_LINKS = 0x57,LLC_STATUS_INVALID_PARAMETER_1 = 0x58,
|
---|
657 | LLC_STATUS_DIRECT_STATIONS_NOT_ASSIGNED = 0x5C,LLC_STATUS_DEVICE_DRIVER_NOT_INSTALLED = 0x5d,LLC_STATUS_ADAPTER_NOT_INSTALLED = 0x5e,
|
---|
658 | LLC_STATUS_CHAINED_DIFFERENT_ADAPTERS = 0x5f,LLC_STATUS_INIT_COMMAND_STARTED = 0x60,LLC_STATUS_TOO_MANY_USERS = 0x61,
|
---|
659 | LLC_STATUS_CANCELLED_BY_SYSTEM_ACTION = 0x62,LLC_STATUS_DIR_STATIONS_NOT_AVAILABLE = 0x63,LLC_STATUS_NO_GDT_SELECTORS = 0x65,
|
---|
660 | LLC_STATUS_MEMORY_LOCK_FAILED = 0x69,LLC_STATUS_INVALID_BUFFER_ADDRESS = 0x80,LLC_STATUS_BUFFER_ALREADY_RELEASED = 0x81,
|
---|
661 | LLC_STATUS_BIND_ERROR = 0xA0,LLC_STATUS_INVALID_VERSION = 0xA1,LLC_STATUS_NT_ERROR_STATUS = 0xA2,LLC_STATUS_PENDING = 0xFF
|
---|
662 | } LLC_STATUS;
|
---|
663 |
|
---|
664 | #define LLC_STATUS_MAX_ERROR 0xFF
|
---|
665 |
|
---|
666 | typedef enum {
|
---|
667 | ACSLAN_STATUS_COMMAND_ACCEPTED = 0,ACSLAN_STATUS_INVALID_CCB_POINTER = 1,ACSLAN_STATUS_CCB_IN_ERROR = 2,ACSLAN_STATUS_CHAINED_CCB_IN_ERROR = 3,
|
---|
668 | ACSLAN_STATUS_SYSTEM_ERROR = 4,ACSLAN_STATUS_SYSTEM_STATUS = 5,ACSLAN_STATUS_INVALID_COMMAND = 6
|
---|
669 | } ACSLAN_STATUS;
|
---|
670 |
|
---|
671 | ACSLAN_STATUS WINAPI AcsLan(PLLC_CCB pCcb,PLLC_CCB *ppBadCcb);
|
---|
672 | LLC_STATUS WINAPI GetAdapterNameFromNumber(UINT AdapterNumber,LPTSTR pNdisName);
|
---|
673 | LLC_STATUS WINAPI GetAdapterNumberFromName(LPTSTR pNdisName,UINT *AdapterNumber);
|
---|
674 |
|
---|
675 | #ifdef __cplusplus
|
---|
676 | }
|
---|
677 | #endif
|
---|
678 | #endif
|
---|