| 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 |