[1166] | 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
|
---|