For Visual C++ applications, these values are pre-declared in the header file (FTCSPI.H), which is included in the driver release. For other languages, these definitions will have to be converted to use equivalent types and may have to be defined in an include file or within the body of the code.
DWORD Unsigned long (4 bytes)
LPDWORD Long pointer to a DWORD value
BOOL Boolean value (4 bytes)
LPSTR Long pointer to a NULL terminated string
FTC_HANDLE DWORD
FTC_STATUS (DWORD)
FTC_SUCCESS = 0
FTC_INVALID_HANDLE = 1
FTC_DEVICE_NOT_FOUND = 2
FTC_DEVICE_NOT_OPENED = 3
FTC_IO_ERROR = 4
FTC_INSUFFICIENT_RESOURCES = 5
FTC_FAILED_TO_COMPLETE_COMMAND = 20
FTC_FAILED_TO_SYNCHRONIZE_DEVICE_MPSSE = 21
FTC_INVALID_DEVICE_NAME_INDEX = 22
FTC_NULL_DEVICE_NAME_BUFFER_POINTER = 23
FTC_DEVICE_NAME_BUFFER_TOO_SMALL = 24
FTC_INVALID_DEVICE_NAME = 25
FTC_INVALID_LOCATION_ID = 26
FTC_DEVICE_IN_USE = 27
FTC_TOO_MANY_DEVICES = 28
FTC_INVALID_CLOCK_DIVISOR = 29
FTC_NULL_INPUT_BUFFER_POINTER = 30
FTC_NULL_CHIP_SELECT_BUFFER_POINTER = 31
FTC_NULL_INPUT_OUTPUT_BUFFER_POINTER = 32
FTC_NULL_OUTPUT_PINS_BUFFER_POINTER = 33
FTC_NULL_INITIAL_CONDITION_BUFFER_POINTER = 34
FTC_NULL_WRITE_CONTROL_BUFFER_POINTER = 35
FTC_NULL_WRITE_DATA_BUFFER_POINTER = 36
FTC_NULL_WAIT_DATA_WRITE_BUFFER_POINTER = 37
FTC_NULL_READ_DATA_BUFFER_POINTER = 38
FTC_NULL_READ_CMDS_DATA_BUFFER_POINTER = 39
FTC_INVALID_NUMBER_CONTROL_BITS = 40
FTC_INVALID_NUMBER_CONTROL_BYTES = 41
FTC_NUMBER_CONTROL_BYTES_TOO_SMALL = 42
FTC_INVALID_NUMBER_WRITE_DATA_BITS = 43
FTC_INVALID_NUMBER_WRITE_DATA_BYTES = 44
FTC_NUMBER_WRITE_DATA_BYTES_TOO_SMALL = 45
FTC_INVALID_NUMBER_READ_DATA_BITS = 46
FTC_INVALID_INIT_CLOCK_PIN_STATE = 47
FTC_INVALID_FT2232C_CHIP_SELECT_PIN = 48
FTC_INVALID_FT2232C_DATA_WRITE_COMPLETE_PIN = 49
FTC_DATA_WRITE_COMPLETE_TIMEOUT = 50
FTC_INVALID_CONFIGURATION_HIGHER_GPIO_PIN = 51
FTC_COMMAND_SEQUENCE_BUFFER_FULL = 52
FTC_NO_COMMAND_SEQUENCE = 53
FTC_NULL_DLL_VERSION_BUFFER_POINTER = 54
FTC_DLL_VERSION_BUFFER_TOO_SMALL = 55
FTC_NULL_LANGUAGE_CODE_BUFFER_POINTER = 56
FTC_NULL_ERROR_MESSAGE_BUFFER_POINTER = 57
FTC_ERROR_MESSAGE_BUFFER_TOO_SMALL = 58
FTC_INVALID_LANGUAGE_CODE = 59
FTC_INVALID_STATUS_CODE = 60
FTC_INIT_CONDITION
typedef struct FTC_Init_Condition {
BOOL bClockPinState
BOOL bDataOutPinState
BOOL bChipSelectPinState
DWORD dwChipSelectPin
} FTC_INIT_CONDITION *PFTC_INIT_CONDITION
FTC_CHIP_SELECT_PINS
typedef struct Ft_Chip_Select_Pins{
BOOL bADBUS3ChipSelectPinState
BOOL bADBUS4GPIOL1PinState
BOOL bADBUS5GPIOL2PinState
BOOL bADBUS6GPIOL3PinState
BOOL bADBUS7GPIOL4PinState
}FTC_CHIP_SELECT_PINS, *PFTC_CHIP_SELECT_PINS;
FTC_INPUT_OUTPUT_PINS
typedef struct FTC_Higher_Output_Pins {
BOOL bPin1State
BOOL bPin1ActiveState
BOOL bPin2State
BOOL bPin2ActiveState
BOOL bPin3State
BOOL bPin3ActiveState
BOOL bPin4State
BOOL bPin4ActiveState
} FTC_HIGHER_OUTPUT_PINS *PFTC_HIGHER_OUTPUT_PINS
WRITE CONTROL BYTE BUFFER
#define MAX_WRITE_CONTROL_BYTES_BUFFER_SIZE 256 // 256 bytes
typedef BYTE WriteControlByteBuffer[MAX_WRITE_CONTROL_BYTES_BUFFER_SIZE];
typedef WriteControlByteBuffer *PWriteControlByteBuffer;
WRITE DATA BYTE BUFFER
#define MAX_WRITE_DATA_BYTES_BUFFER_SIZE 65536 // 64K bytes
typedef BYTE WriteDataByteBuffer[MAX_WRITE_DATA_BYTES_BUFFER_SIZE];
typedef WriteDataByteBuffer *PWriteDataByteBuffer;
FTC_WAIT_DATA_WRITE
typedef struct FTC_Wait_Data_Write {
BOOL bWaitDataWriteComplete
DWORD dwWaitDataWritePin
BOOL bDataWriteCompleteState
DWORD dwDataWriteTimeoutmSecs
} FTC_WAIT_DATA_WRITE *PFTC_WAIT_DATA_WRITE
READ DATA BYTE BUFFER
#define MAX_READ_DATA_BYTES_BUFFER_SIZE 65536 // 64K bytes
typedef BYTE ReadDataByteBuffer[MAX_READ_DATA_BYTES_BUFFER_SIZE];
typedef ReadDataByteBuffer *PReadDataByteBuffer;