123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678 |
- /**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
- #ifndef _DLCAPI_
- #define _DLCAPI_
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define LLC_DIR_INTERRUPT 0x00
- #define LLC_DIR_OPEN_ADAPTER 0x03
- #define LLC_DIR_CLOSE_ADAPTER 0x04
- #define LLC_DIR_SET_MULTICAST_ADDRESS 0x05
- #define LLC_DIR_SET_GROUP_ADDRESS 0x06
- #define LLC_DIR_SET_FUNCTIONAL_ADDRESS 0x07
- #define LLC_DIR_READ_LOG 0x08
- #define LLC_TRANSMIT_FRAMES 0x09
- #define LLC_TRANSMIT_DIR_FRAME 0x0A
- #define LLC_TRANSMIT_I_FRAME 0x0B
- #define LLC_TRANSMIT_UI_FRAME 0x0D
- #define LLC_TRANSMIT_XID_CMD 0x0E
- #define LLC_TRANSMIT_XID_RESP_FINAL 0x0F
- #define LLC_TRANSMIT_XID_RESP_NOT_FINAL 0x10
- #define LLC_TRANSMIT_TEST_CMD 0x11
- #define LLC_DLC_RESET 0x14
- #define LLC_DLC_OPEN_SAP 0x15
- #define LLC_DLC_CLOSE_SAP 0x16
- #define LLC_DLC_REALLOCATE_STATIONS 0x17
- #define LLC_DLC_OPEN_STATION 0x19
- #define LLC_DLC_CLOSE_STATION 0x1A
- #define LLC_DLC_CONNECT_STATION 0x1B
- #define LLC_DLC_MODIFY 0x1C
- #define LLC_DLC_FLOW_CONTROL 0x1D
- #define LLC_DLC_STATISTICS 0x1E
- #define LLC_DIR_INITIALIZE 0x20
- #define LLC_DIR_STATUS 0x21
- #define LLC_DIR_TIMER_SET 0x22
- #define LLC_DIR_TIMER_CANCEL 0x23
- #define LLC_BUFFER_GET 0x26
- #define LLC_BUFFER_FREE 0x27
- #define LLC_RECEIVE 0x28
- #define LLC_RECEIVE_CANCEL 0x29
- #define LLC_RECEIVE_MODIFY 0x2A
- #define LLC_DIR_TIMER_CANCEL_GROUP 0x2C
- #define LLC_DIR_SET_EXCEPTION_FLAGS 0x2D
- #define LLC_BUFFER_CREATE 0x30
- #define LLC_READ 0x31
- #define LLC_READ_CANCEL 0x32
- #define LLC_DLC_SET_THRESHOLD 0x33
- #define LLC_DIR_CLOSE_DIRECT 0x34
- #define LLC_DIR_OPEN_DIRECT 0x35
- #define LLC_MAX_DLC_COMMAND 0x37
- union _LLC_PARMS;
- typedef union _LLC_PARMS LLC_PARMS,*PLLC_PARMS;
- typedef union {
- PLLC_PARMS pParameterTable;
- struct {
- USHORT usStationId;
- USHORT usParameter;
- } dlc;
- struct {
- USHORT usParameter0;
- USHORT usParameter1;
- } dir;
- UCHAR auchBuffer[4];
- ULONG ulParameter;
- } CCB_PARMS;
- typedef struct _LLC_CCB {
- UCHAR uchAdapterNumber;
- UCHAR uchDlcCommand;
- UCHAR uchDlcStatus;
- UCHAR uchReserved1;
- struct _LLC_CCB *pNext;
- ULONG ulCompletionFlag;
- CCB_PARMS u;
- HANDLE hCompletionEvent;
- UCHAR uchReserved2;
- UCHAR uchReadFlag;
- USHORT usReserved3;
- } LLC_CCB,*PLLC_CCB;
- union _LLC_BUFFER;
- typedef union _LLC_BUFFER LLC_BUFFER,*PLLC_BUFFER;
- typedef struct {
- PLLC_BUFFER pNextBuffer;
- USHORT cbFrame;
- USHORT cbBuffer;
- USHORT offUserData;
- USHORT cbUserData;
- } LLC_NEXT_BUFFER;
- typedef struct {
- PLLC_BUFFER pNextBuffer;
- USHORT cbFrame;
- USHORT cbBuffer;
- USHORT offUserData;
- USHORT cbUserData;
- USHORT usStationId;
- UCHAR uchOptions;
- UCHAR uchMsgType;
- USHORT cBuffersLeft;
- UCHAR uchRcvFS;
- UCHAR uchAdapterNumber;
- PLLC_BUFFER pNextFrame;
- UCHAR cbLanHeader;
- UCHAR cbDlcHeader;
- UCHAR auchLanHeader[32];
- UCHAR auchDlcHeader[4];
- USHORT usPadding;
- } LLC_NOT_CONTIGUOUS_BUFFER;
- typedef struct {
- PLLC_BUFFER pNextBuffer;
- USHORT cbFrame;
- USHORT cbBuffer;
- USHORT offUserData;
- USHORT cbUserData;
- USHORT usStationId;
- UCHAR uchOptions;
- UCHAR uchMsgType;
- USHORT cBuffersLeft;
- UCHAR uchRcvFS;
- UCHAR uchAdapterNumber;
- PLLC_BUFFER pNextFrame;
- } LLC_CONTIGUOUS_BUFFER;
- union _LLC_BUFFER {
- PLLC_BUFFER pNext;
- LLC_NEXT_BUFFER Next;
- struct LlcNextBuffer {
- LLC_NEXT_BUFFER Header;
- UCHAR auchData[];
- } Buffer;
- LLC_NOT_CONTIGUOUS_BUFFER NotContiguous;
- struct {
- LLC_NOT_CONTIGUOUS_BUFFER Header;
- UCHAR auchData[];
- } NotCont;
- LLC_CONTIGUOUS_BUFFER Contiguous;
- struct {
- LLC_CONTIGUOUS_BUFFER Header;
- UCHAR auchData[];
- } Cont;
- };
- struct _LLC_XMIT_BUFFER;
- typedef struct _LLC_XMIT_BUFFER LLC_XMIT_BUFFER,*PLLC_XMIT_BUFFER;
- struct _LLC_XMIT_BUFFER {
- PLLC_XMIT_BUFFER pNext;
- USHORT usReserved1;
- USHORT cbBuffer;
- USHORT usReserved2;
- USHORT cbUserData;
- UCHAR auchData[];
- };
- #define LLC_XMIT_BUFFER_SIZE sizeof(LLC_XMIT_BUFFER)
- typedef struct {
- HANDLE hBufferPool;
- PVOID pBuffer;
- ULONG cbBufferSize;
- ULONG cbMinimumSizeThreshold;
- } LLC_BUFFER_CREATE_PARMS,*PLLC_BUFFER_CREATE_PARMS;
- typedef struct {
- USHORT usReserved1;
- USHORT cBuffersLeft;
- ULONG ulReserved;
- PLLC_XMIT_BUFFER pFirstBuffer;
- } LLC_BUFFER_FREE_PARMS,*PLLC_BUFFER_FREE_PARMS;
- typedef struct {
- USHORT usReserved1;
- USHORT cBuffersLeft;
- USHORT cBuffersToGet;
- USHORT cbBufferSize;
- PLLC_XMIT_BUFFER pFirstBuffer;
- } LLC_BUFFER_GET_PARMS,*PLLC_BUFFER_GET_PARMS;
- typedef struct {
- USHORT usStationId;
- USHORT usReserved;
- PUCHAR pRoutingInfo;
- } LLC_DLC_CONNECT_PARMS,*PLLC_DLC_CONNECT_PARMS;
- #define LLC_RESET_LOCAL_BUSY_USER 0x80
- #define LLC_RESET_LOCAL_BUSY_BUFFER 0xC0
- #define LLC_SET_LOCAL_BUSY_USER 0
- typedef struct {
- USHORT usRes;
- USHORT usStationId;
- UCHAR uchT1;
- UCHAR uchT2;
- UCHAR uchTi;
- UCHAR uchMaxOut;
- UCHAR uchMaxIn;
- UCHAR uchMaxOutIncr;
- UCHAR uchMaxRetryCnt;
- UCHAR uchReserved1;
- USHORT usMaxInfoFieldLength;
- UCHAR uchAccessPriority;
- UCHAR auchReserved3[4];
- UCHAR cGroupCount;
- PUCHAR pGroupList;
- } LLC_DLC_MODIFY_PARMS,*PLLC_DLC_MODIFY_PARMS;
- #define LLC_XID_HANDLING_IN_APPLICATION 0x08
- #define LLC_XID_HANDLING_IN_DLC 0
- #define LLC_INDIVIDUAL_SAP 0x04
- #define LLC_GROUP_SAP 0x02
- #define LLC_MEMBER_OF_GROUP_SAP 0x01
- typedef struct {
- USHORT usStationId;
- USHORT usUserStatValue;
- UCHAR uchT1;
- UCHAR uchT2;
- UCHAR uchTi;
- UCHAR uchMaxOut;
- UCHAR uchMaxIn;
- UCHAR uchMaxOutIncr;
- UCHAR uchMaxRetryCnt;
- UCHAR uchMaxMembers;
- USHORT usMaxI_Field;
- UCHAR uchSapValue;
- UCHAR uchOptionsPriority;
- UCHAR uchcStationCount;
- UCHAR uchReserved2[2];
- UCHAR cGroupCount;
- PUCHAR pGroupList;
- ULONG DlcStatusFlags;
- UCHAR uchReserved3[8];
- UCHAR cLinkStationsAvail;
- } LLC_DLC_OPEN_SAP_PARMS,*PLLC_DLC_OPEN_SAP_PARMS;
- typedef struct {
- USHORT usSapStationId;
- USHORT usLinkStationId;
- UCHAR uchT1;
- UCHAR uchT2;
- UCHAR uchTi;
- UCHAR uchMaxOut;
- UCHAR uchMaxIn;
- UCHAR uchMaxOutIncr;
- UCHAR uchMaxRetryCnt;
- UCHAR uchRemoteSap;
- USHORT usMaxI_Field;
- UCHAR uchAccessPriority;
- PVOID pRemoteNodeAddress;
- } LLC_DLC_OPEN_STATION_PARMS,*PLLC_DLC_OPEN_STATION_PARMS;
- #define LLC_INCREASE_LINK_STATIONS 0
- #define LLC_DECREASE_LINK_STATIONS 0x80
- typedef struct {
- USHORT usStationId;
- UCHAR uchOption;
- UCHAR uchStationCount;
- UCHAR uchStationsAvailOnAdapter;
- UCHAR uchStationsAvailOnSap;
- UCHAR uchTotalStationsOnAdapter;
- UCHAR uchTotalStationsOnSap;
- } LLC_DLC_REALLOCATE_PARMS,*PLLC_DLC_REALLOCATE_PARMS;
- typedef struct {
- USHORT usStationId;
- USHORT cBufferThreshold;
- PVOID AlertEvent;
- } LLC_DLC_SET_THRESHOLD_PARMS,*PLLC_DLC_SET_THRESHOLD_PARMS;
- typedef struct {
- PVOID TraceBuffer;
- ULONG TraceBufferSize;
- ULONG TraceFlags;
- } LLC_TRACE_INITIALIZE_PARMS,*PLLC_TRACE_INITIALIZE_PARMS;
- #define LLC_DLC_RESET_STATISTICS 0x80
- #define LLC_DLC_READ_STATISTICS 0
- typedef struct {
- ULONG cTransmittedFrames;
- ULONG cReceivedFrames;
- ULONG cDiscardedFrames;
- ULONG cDataLost;
- USHORT cBuffersAvailable;
- } DLC_SAP_LOG,*PDLC_SAP_LOG;
- typedef struct {
- USHORT cI_FramesTransmitted;
- USHORT cI_FramesReceived;
- UCHAR cI_FrameReceiveErrors;
- UCHAR cI_FrameTransmissionErrors;
- USHORT cT1_ExpirationCount;
- UCHAR uchLastCmdRespReceived;
- UCHAR uchLastCmdRespTransmitted;
- UCHAR uchPrimaryState;
- UCHAR uchSecondaryState;
- UCHAR uchSendStateVariable;
- UCHAR uchReceiveStateVariable;
- UCHAR uchLastNr;
- UCHAR cbLanHeader;
- UCHAR auchLanHeader[32];
- } DLC_LINK_LOG,*PDLC_LINK_LOG;
- typedef union {
- DLC_SAP_LOG Sap;
- DLC_LINK_LOG Link;
- } LLC_DLC_LOG_BUFFER,*PLLC_DLC_LOG_BUFFER;
- typedef struct {
- USHORT usStationId;
- USHORT cbLogBufSize;
- PLLC_DLC_LOG_BUFFER pLogBuf;
- USHORT usActLogLength;
- UCHAR uchOptions;
- } LLC_DLC_STATISTICS_PARMS,*PLLC_DLC_STATISTICS_PARMS;
- typedef struct {
- USHORT usBringUps;
- UCHAR Reserved[30];
- } LLC_DIR_INITIALIZE_PARMS,*PLLC_DIR_INITIALIZE_PARMS;
- typedef struct {
- USHORT usOpenErrorCode;
- USHORT usOpenOptions;
- UCHAR auchNodeAddress[6];
- UCHAR auchGroupAddress[4];
- UCHAR auchFunctionalAddress[4];
- USHORT usReserved1;
- USHORT usReserved2;
- USHORT usMaxFrameSize;
- USHORT usReserved3[4];
- USHORT usBringUps;
- USHORT InitWarnings;
- USHORT usReserved4[3];
- } LLC_ADAPTER_OPEN_PARMS,*PLLC_ADAPTER_OPEN_PARMS;
- typedef struct {
- UCHAR uchDlcMaxSaps;
- UCHAR uchDlcMaxStations;
- UCHAR uchDlcMaxGroupSaps;
- UCHAR uchDlcMaxGroupMembers;
- UCHAR uchT1_TickOne;
- UCHAR uchT2_TickOne;
- UCHAR uchTi_TickOne;
- UCHAR uchT1_TickTwo;
- UCHAR uchT2_TickTwo;
- UCHAR uchTi_TickTwo;
- } LLC_DLC_PARMS,*PLLC_DLC_PARMS;
- typedef enum {
- LLC_ETHERNET_TYPE_DEFAULT,LLC_ETHERNET_TYPE_AUTO,LLC_ETHERNET_TYPE_802_3,LLC_ETHERNET_TYPE_DIX
- } LLC_ETHERNET_TYPE,*PLLC_ETHERNET_TYPE;
- typedef struct {
- PVOID hBufferPool;
- PVOID pSecurityDescriptor;
- LLC_ETHERNET_TYPE LlcEthernetType;
- } LLC_EXTENDED_ADAPTER_PARMS,*PLLC_EXTENDED_ADAPTER_PARMS;
- typedef struct {
- PLLC_ADAPTER_OPEN_PARMS pAdapterParms;
- PLLC_EXTENDED_ADAPTER_PARMS pExtendedParms;
- PLLC_DLC_PARMS pDlcParms;
- PVOID pReserved1;
- } LLC_DIR_OPEN_ADAPTER_PARMS,*PLLC_DIR_OPEN_ADAPTER_PARMS;
- typedef struct {
- UCHAR auchMulticastAddress[6];
- } LLC_DIR_MULTICAST_ADDRESS,*PLLC_DIR_MULTICAST_ADDRESS;
- #define LLC_DIRECT_OPTIONS_ALL_MACS 0x1880
- typedef struct {
- USHORT Reserved[4];
- USHORT usOpenOptions;
- USHORT usEthernetType;
- ULONG ulProtocolTypeMask;
- ULONG ulProtocolTypeMatch;
- USHORT usProtocolTypeOffset;
- } LLC_DIR_OPEN_DIRECT_PARMS,*PLLC_DIR_OPEN_DIRECT_PARMS;
- typedef struct {
- UCHAR cLineError;
- UCHAR cInternalError;
- UCHAR cBurstError;
- UCHAR cAC_Error;
- UCHAR cAbortDelimiter;
- UCHAR uchReserved1;
- UCHAR cLostFrame;
- UCHAR cReceiveCongestion;
- UCHAR cFrameCopiedError;
- UCHAR cFrequencyError;
- UCHAR cTokenError;
- UCHAR uchReserved2;
- UCHAR uchReserved3;
- UCHAR uchReserved4;
- } LLC_ADAPTER_LOG_TR,*PLLC_ADAPTER_LOG_TR;
- typedef struct {
- UCHAR cCRC_Error;
- UCHAR uchReserved1;
- UCHAR cAlignmentError;
- UCHAR uchReserved2;
- UCHAR cTransmitError;
- UCHAR uchReserved3;
- UCHAR cCollisionError;
- UCHAR cReceiveCongestion;
- UCHAR uchReserved[6];
- } LLC_ADAPTER_LOG_ETH,*PLLC_ADAPTER_LOG_ETH;
- typedef union {
- LLC_ADAPTER_LOG_TR Tr;
- LLC_ADAPTER_LOG_ETH Eth;
- } LLC_ADAPTER_LOG,*PLLC_ADAPTER_LOG;
- typedef struct {
- ULONG cTransmittedFrames;
- ULONG cReceivedFrames;
- ULONG cDiscardedFrames;
- ULONG cDataLost;
- USHORT cBuffersAvailable;
- } LLC_DIRECT_LOG,*PLLC_DIRECT_LOG;
- typedef union {
- LLC_ADAPTER_LOG Adapter;
- LLC_DIRECT_LOG Dir;
- struct {
- LLC_ADAPTER_LOG Adapter;
- LLC_DIRECT_LOG Dir;
- } both;
- } LLC_DIR_READ_LOG_BUFFER,*PLLC_DIR_READ_LOG_BUFFER;
- #define LLC_DIR_READ_LOG_ADAPTER 0
- #define LLC_DIR_READ_LOG_DIRECT 1
- #define LLC_DIR_READ_LOG_BOTH 2
- typedef struct {
- USHORT usTypeId;
- USHORT cbLogBuffer;
- PLLC_DIR_READ_LOG_BUFFER pLogBuffer;
- USHORT cbActualLength;
- } LLC_DIR_READ_LOG_PARMS,*PLLC_DIR_READ_LOG_PARMS;
- typedef struct {
- ULONG ulAdapterCheckFlag;
- ULONG ulNetworkStatusFlag;
- ULONG ulPcErrorFlag;
- ULONG ulSystemActionFlag;
- } LLC_DIR_SET_EFLAG_PARMS,*PLLC_DIR_SET_EFLAG_PARMS;
- #define LLC_ADAPTER_ETHERNET 0x0010
- #define LLC_ADAPTER_TOKEN_RING 0x0040
- typedef struct {
- UCHAR auchPermanentAddress[6];
- UCHAR auchNodeAddress[6];
- UCHAR auchGroupAddress[4];
- UCHAR auchFunctAddr[4];
- UCHAR uchMaxSap;
- UCHAR uchOpenSaps;
- UCHAR uchMaxStations;
- UCHAR uchOpenStation;
- UCHAR uchAvailStations;
- UCHAR uchAdapterConfig;
- UCHAR auchReserved1[10];
- ULONG ulReserved1;
- ULONG ulReserved2;
- ULONG ulMaxFrameLength;
- USHORT usLastNetworkStatus;
- USHORT usAdapterType;
- } LLC_DIR_STATUS_PARMS,*PLLC_DIR_STATUS_PARMS;
- #define LLC_OPTION_READ_STATION 0
- #define LLC_OPTION_READ_SAP 1
- #define LLC_OPTION_READ_ALL 2
- #define LLC_EVENT_SYSTEM_ACTION 0x0040
- #define LLC_EVENT_NETWORK_STATUS 0x0020
- #define LLC_EVENT_CRITICAL_EXCEPTION 0x0010
- #define LLC_EVENT_STATUS_CHANGE 0x0008
- #define LLC_EVENT_RECEIVE_DATA 0x0004
- #define LLC_EVENT_TRANSMIT_COMPLETION 0x0002
- #define LLC_EVENT_COMMAND_COMPLETION 0x0001
- #define LLC_READ_ALL_EVENTS 0x007F
- #define LLC_INDICATE_LINK_LOST 0x8000
- #define LLC_INDICATE_DM_DISC_RECEIVED 0x4000
- #define LLC_INDICATE_FRMR_RECEIVED 0x2000
- #define LLC_INDICATE_FRMR_SENT 0x1000
- #define LLC_INDICATE_RESET 0x0800
- #define LLC_INDICATE_CONNECT_REQUEST 0x0400
- #define LLC_INDICATE_REMOTE_BUSY 0x0200
- #define LLC_INDICATE_REMOTE_READY 0x0100
- #define LLC_INDICATE_TI_TIMER_EXPIRED 0x0080
- #define LLC_INDICATE_DLC_COUNTER_OVERFLOW 0x0040
- #define LLC_INDICATE_ACCESS_PRTY_LOWERED 0x0020
- #define LLC_INDICATE_LOCAL_STATION_BUSY 0x0001
- typedef struct {
- USHORT usStationId;
- UCHAR uchOptionIndicator;
- UCHAR uchEventSet;
- UCHAR uchEvent;
- UCHAR uchCriticalSubset;
- ULONG ulNotificationFlag;
- union {
- struct {
- USHORT usCcbCount;
- PLLC_CCB pCcbCompletionList;
- USHORT usBufferCount;
- PLLC_BUFFER pFirstBuffer;
- USHORT usReceivedFrameCount;
- PLLC_BUFFER pReceivedFrame;
- USHORT usEventErrorCode;
- USHORT usEventErrorData[3];
- } Event;
- struct {
- USHORT usStationId;
- USHORT usDlcStatusCode;
- UCHAR uchFrmrData[5];
- UCHAR uchAccessPritority;
- UCHAR uchRemoteNodeAddress[6];
- UCHAR uchRemoteSap;
- UCHAR uchReserved;
- USHORT usUserStatusValue;
- } Status;
- } Type;
- } LLC_READ_PARMS,*PLLC_READ_PARMS;
- typedef struct {
- LLC_CCB Ccb;
- LLC_READ_PARMS Parms;
- } LLC_READ_COMMAND,*PLLC_READ_COMMAND;
- #define LLC_DIR_RCV_ALL_TR_FRAMES 0
- #define LLC_DIR_RCV_ALL_MAC_FRAMES 1
- #define LLC_DIR_RCV_ALL_8022_FRAMES 2
- #define LLC_DIR_RCV_ALL_FRAMES 4
- #define LLC_DIR_RCV_ALL_ETHERNET_TYPES 5
- #define LLC_CONTIGUOUS_MAC 0x80
- #define LLC_CONTIGUOUS_DATA 0x40
- #define LLC_NOT_CONTIGUOUS_DATA 0x00
- #define LLC_RCV_READ_INDIVIDUAL_FRAMES 0
- #define LLC_RCV_CHAIN_FRAMES_ON_LINK 1
- #define LLC_RCV_CHAIN_FRAMES_ON_SAP 2
- typedef struct {
- USHORT usStationId;
- USHORT usUserLength;
- ULONG ulReceiveFlag;
- PLLC_BUFFER pFirstBuffer;
- UCHAR uchOptions;
- UCHAR auchReserved1[3];
- UCHAR uchRcvReadOption;
- } LLC_RECEIVE_PARMS,*PLLC_RECEIVE_PARMS;
- #define LLC_CHAIN_XMIT_COMMANDS_ON_LINK 0
- #define LLC_COMPLETE_SINGLE_XMIT_FRAME 1
- #define LLC_CHAIN_XMIT_COMMANDS_ON_SAP 2
- typedef struct {
- USHORT usStationId;
- UCHAR uchTransmitFs;
- UCHAR uchRemoteSap;
- PLLC_XMIT_BUFFER pXmitQueue1;
- PLLC_XMIT_BUFFER pXmitQueue2;
- USHORT cbBuffer1;
- USHORT cbBuffer2;
- PVOID pBuffer1;
- PVOID pBuffer2;
- UCHAR uchXmitReadOption;
- } LLC_TRANSMIT_PARMS,*PLLC_TRANSMIT_PARMS;
- #define LLC_FIRST_DATA_SEGMENT 0x01
- #define LLC_NEXT_DATA_SEGMENT 0x02
- typedef struct {
- UCHAR eSegmentType;
- UCHAR boolFreeBuffer;
- USHORT cbBuffer;
- PVOID pBuffer;
- } LLC_TRANSMIT_DESCRIPTOR,*PLLC_TRANSMIT_DESCRIPTOR;
- enum _LLC_FRAME_TYPES {
- LLC_DIRECT_TRANSMIT = 0x0000,LLC_DIRECT_MAC = 0x0002,LLC_I_FRAME = 0x0004,LLC_UI_FRAME = 0x0006,LLC_XID_COMMAND_POLL = 0x0008,
- LLC_XID_COMMAND_NOT_POLL = 0x000A,LLC_XID_RESPONSE_FINAL = 0x000C,LLC_XID_RESPONSE_NOT_FINAL = 0x000E,LLC_TEST_RESPONSE_FINAL = 0x0010,
- LLC_TEST_RESPONSE_NOT_FINAL = 0x0012,LLC_DIRECT_8022 = 0x0014,LLC_TEST_COMMAND_POLL = 0x0016,LLC_DIRECT_ETHERNET_TYPE = 0x0018,
- LLC_LAST_FRAME_TYPE = 0x001a,LLC_FIRST_ETHERNET_TYPE = 0x05DD
- };
- typedef struct {
- LLC_CCB Ccb;
- USHORT usStationId;
- USHORT usFrameType;
- UCHAR uchRemoteSap;
- UCHAR uchXmitReadOption;
- UCHAR Reserved2[2];
- ULONG cXmitBufferCount;
- LLC_TRANSMIT_DESCRIPTOR aXmitBuffer[1];
- } LLC_TRANSMIT2_COMMAND,*PLLC_TRANSMIT2_COMMAND;
- #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)];}
- union _LLC_PARMS {
- LLC_BUFFER_FREE_PARMS BufferFree;
- LLC_BUFFER_GET_PARMS BufferGet;
- LLC_DLC_CONNECT_PARMS DlcConnectStation;
- LLC_DLC_MODIFY_PARMS DlcModify;
- LLC_DLC_OPEN_SAP_PARMS DlcOpenSap;
- LLC_DLC_OPEN_STATION_PARMS DlcOpenStation;
- LLC_DLC_REALLOCATE_PARMS DlcReallocate;
- LLC_DLC_SET_THRESHOLD_PARMS DlcSetThreshold;
- LLC_DLC_STATISTICS_PARMS DlcStatistics;
- LLC_DIR_INITIALIZE_PARMS DirInitialize;
- LLC_DIR_OPEN_ADAPTER_PARMS DirOpenAdapter;
- LLC_DIR_OPEN_DIRECT_PARMS DirOpenDirect;
- LLC_DIR_READ_LOG_PARMS DirReadLog;
- LLC_DIR_SET_EFLAG_PARMS DirSetEventFlag;
- LLC_DIR_STATUS_PARMS DirStatus;
- LLC_READ_PARMS Read;
- LLC_RECEIVE_PARMS Receive;
- LLC_TRANSMIT_PARMS Transmit;
- LLC_TRANSMIT2_COMMAND Transmit2;
- LLC_TRACE_INITIALIZE_PARMS TraceInitialize;
- };
- typedef enum _LLC_STATUS {
- LLC_STATUS_SUCCESS = 0x00,LLC_STATUS_INVALID_COMMAND = 0x01,LLC_STATUS_DUPLICATE_COMMAND = 0x02,LLC_STATUS_ADAPTER_OPEN = 0x03,
- LLC_STATUS_ADAPTER_CLOSED = 0x04,LLC_STATUS_PARAMETER_MISSING = 0x05,LLC_STATUS_INVALID_OPTION = 0x06,LLC_STATUS_COMMAND_CANCELLED_FAILURE = 0x07,
- LLC_STATUS_ACCESS_DENIED = 0x08,LLC_STATUS_ADAPTER_NOT_INITIALIZED = 0x09,LLC_STATUS_CANCELLED_BY_USER = 0x0A,
- LLC_STATUS_COMMAND_CANCELLED_CLOSED = 0x0B,LLC_STATUS_SUCCESS_NOT_OPEN = 0x0C,LLC_STATUS_TIMER_ERROR = 0x11,LLC_STATUS_NO_MEMORY = 0x12,
- LLC_STATUS_INVALID_LOG_ID = 0x13,LLC_STATUS_LOST_LOG_DATA = 0x15,LLC_STATUS_BUFFER_SIZE_EXCEEDED = 0x16,LLC_STATUS_INVALID_BUFFER_LENGTH = 0x18,
- LLC_STATUS_INADEQUATE_BUFFERS = 0x19,LLC_STATUS_USER_LENGTH_TOO_LARGE = 0x1A,LLC_STATUS_INVALID_PARAMETER_TABLE = 0x1B,
- LLC_STATUS_INVALID_POINTER_IN_CCB = 0x1C,LLC_STATUS_INVALID_ADAPTER = 0x1D,LLC_STATUS_LOST_DATA_NO_BUFFERS = 0x20,
- LLC_STATUS_LOST_DATA_INADEQUATE_SPACE = 0x21,LLC_STATUS_TRANSMIT_ERROR_FS = 0x22,LLC_STATUS_TRANSMIT_ERROR = 0x23,
- LLC_STATUS_UNAUTHORIZED_MAC = 0x24,LLC_STATUS_MAX_COMMANDS_EXCEEDED = 0x25,LLC_STATUS_LINK_NOT_TRANSMITTING = 0x27,
- LLC_STATUS_INVALID_FRAME_LENGTH = 0x28,LLC_STATUS_INADEQUATE_RECEIVE = 0x30,LLC_STATUS_INVALID_NODE_ADDRESS = 0x32,
- LLC_STATUS_INVALID_RCV_BUFFER_LENGTH = 0x33,LLC_STATUS_INVALID_XMIT_BUFFER_LENGTH = 0x34,LLC_STATUS_INVALID_STATION_ID = 0x40,
- LLC_STATUS_LINK_PROTOCOL_ERROR = 0x41,LLC_STATUS_PARMETERS_EXCEEDED_MAX = 0x42,LLC_STATUS_INVALID_SAP_VALUE = 0x43,
- LLC_STATUS_INVALID_ROUTING_INFO = 0x44,LLC_STATUS_RESOURCES_NOT_AVAILABLE = 0x46,LLC_STATUS_LINK_STATIONS_OPEN = 0x47,
- LLC_STATUS_INCOMPATIBLE_COMMANDS = 0x4A,LLC_STATUS_OUTSTANDING_COMMANDS = 0x4C,LLC_STATUS_CONNECT_FAILED = 0x4D,
- LLC_STATUS_INVALID_REMOTE_ADDRESS = 0x4F,LLC_STATUS_CCB_POINTER_FIELD = 0x50,LLC_STATUS_INVALID_APPLICATION_ID = 0x52,
- LLC_STATUS_NO_SYSTEM_PROCESS = 0x56,LLC_STATUS_INADEQUATE_LINKS = 0x57,LLC_STATUS_INVALID_PARAMETER_1 = 0x58,
- LLC_STATUS_DIRECT_STATIONS_NOT_ASSIGNED = 0x5C,LLC_STATUS_DEVICE_DRIVER_NOT_INSTALLED = 0x5d,LLC_STATUS_ADAPTER_NOT_INSTALLED = 0x5e,
- LLC_STATUS_CHAINED_DIFFERENT_ADAPTERS = 0x5f,LLC_STATUS_INIT_COMMAND_STARTED = 0x60,LLC_STATUS_TOO_MANY_USERS = 0x61,
- LLC_STATUS_CANCELLED_BY_SYSTEM_ACTION = 0x62,LLC_STATUS_DIR_STATIONS_NOT_AVAILABLE = 0x63,LLC_STATUS_NO_GDT_SELECTORS = 0x65,
- LLC_STATUS_MEMORY_LOCK_FAILED = 0x69,LLC_STATUS_INVALID_BUFFER_ADDRESS = 0x80,LLC_STATUS_BUFFER_ALREADY_RELEASED = 0x81,
- LLC_STATUS_BIND_ERROR = 0xA0,LLC_STATUS_INVALID_VERSION = 0xA1,LLC_STATUS_NT_ERROR_STATUS = 0xA2,LLC_STATUS_PENDING = 0xFF
- } LLC_STATUS;
- #define LLC_STATUS_MAX_ERROR 0xFF
- typedef enum {
- ACSLAN_STATUS_COMMAND_ACCEPTED = 0,ACSLAN_STATUS_INVALID_CCB_POINTER = 1,ACSLAN_STATUS_CCB_IN_ERROR = 2,ACSLAN_STATUS_CHAINED_CCB_IN_ERROR = 3,
- ACSLAN_STATUS_SYSTEM_ERROR = 4,ACSLAN_STATUS_SYSTEM_STATUS = 5,ACSLAN_STATUS_INVALID_COMMAND = 6
- } ACSLAN_STATUS;
- ACSLAN_STATUS WINAPI AcsLan(PLLC_CCB pCcb,PLLC_CCB *ppBadCcb);
- LLC_STATUS WINAPI GetAdapterNameFromNumber(UINT AdapterNumber,LPTSTR pNdisName);
- LLC_STATUS WINAPI GetAdapterNumberFromName(LPTSTR pNdisName,UINT *AdapterNumber);
- #ifdef __cplusplus
- }
- #endif
- #endif
|