Mercurial > games > semicongine
diff fuhtark_test/include/winapi/dlcapi.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fuhtark_test/include/winapi/dlcapi.h Wed Nov 26 21:36:48 2025 +0700 @@ -0,0 +1,678 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER 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
