48#define FTD2XX_API __declspec(dllexport)
49#elif defined(FTD2XX_STATIC)
53#pragma comment(lib, "setupapi.lib")
54#pragma comment(lib, "advapi32.lib")
55#pragma comment(lib, "user32.lib")
57#define FTD2XX_API __declspec(dllimport)
97#define FT_SUCCESS(status) ((status) == FT_OK)
102#define FT_OPEN_BY_SERIAL_NUMBER 1
103#define FT_OPEN_BY_DESCRIPTION 2
104#define FT_OPEN_BY_LOCATION 4
106#define FT_OPEN_MASK (FT_OPEN_BY_SERIAL_NUMBER | FT_OPEN_BY_DESCRIPTION | FT_OPEN_BY_LOCATION)
113#define FT_LIST_NUMBER_ONLY 0x80000000
114#define FT_LIST_BY_INDEX 0x40000000
115#define FT_LIST_ALL 0x20000000
117#define FT_LIST_MASK (FT_LIST_NUMBER_ONLY | FT_LIST_BY_INDEX | FT_LIST_ALL)
124#define FT_BAUD_300 300
125#define FT_BAUD_600 600
126#define FT_BAUD_1200 1200
127#define FT_BAUD_2400 2400
128#define FT_BAUD_4800 4800
129#define FT_BAUD_9600 9600
130#define FT_BAUD_14400 14400
131#define FT_BAUD_19200 19200
132#define FT_BAUD_38400 38400
133#define FT_BAUD_57600 57600
134#define FT_BAUD_115200 115200
135#define FT_BAUD_230400 230400
136#define FT_BAUD_460800 460800
137#define FT_BAUD_921600 921600
144#define FT_BITS_8 (UCHAR)8
145#define FT_BITS_7 (UCHAR)7
152#define FT_STOP_BITS_1 (UCHAR)0
153#define FT_STOP_BITS_2 (UCHAR)2
160#define FT_PARITY_NONE (UCHAR)0
161#define FT_PARITY_ODD (UCHAR)1
162#define FT_PARITY_EVEN (UCHAR)2
163#define FT_PARITY_MARK (UCHAR)3
164#define FT_PARITY_SPACE (UCHAR)4
171#define FT_FLOW_NONE 0x0000
172#define FT_FLOW_RTS_CTS 0x0100
173#define FT_FLOW_DTR_DSR 0x0200
174#define FT_FLOW_XON_XOFF 0x0400
190#define FT_EVENT_RXCHAR 1
191#define FT_EVENT_MODEM_STATUS 2
192#define FT_EVENT_LINE_STATUS 4
199#define FT_DEFAULT_RX_TIMEOUT 300
200#define FT_DEFAULT_TX_TIMEOUT 300
231#define FT_BITMODE_RESET 0x00
232#define FT_BITMODE_ASYNC_BITBANG 0x01
233#define FT_BITMODE_MPSSE 0x02
234#define FT_BITMODE_SYNC_BITBANG 0x04
235#define FT_BITMODE_MCU_HOST 0x08
236#define FT_BITMODE_FAST_SERIAL 0x10
237#define FT_BITMODE_CBUS_BITBANG 0x20
238#define FT_BITMODE_SYNC_FIFO 0x40
245#define FT_232R_CBUS_TXDEN 0x00
246#define FT_232R_CBUS_PWRON 0x01
247#define FT_232R_CBUS_RXLED 0x02
248#define FT_232R_CBUS_TXLED 0x03
249#define FT_232R_CBUS_TXRXLED 0x04
250#define FT_232R_CBUS_SLEEP 0x05
251#define FT_232R_CBUS_CLK48 0x06
252#define FT_232R_CBUS_CLK24 0x07
253#define FT_232R_CBUS_CLK12 0x08
254#define FT_232R_CBUS_CLK6 0x09
255#define FT_232R_CBUS_IOMODE 0x0A
256#define FT_232R_CBUS_BITBANG_WR 0x0B
257#define FT_232R_CBUS_BITBANG_RD 0x0C
264#define FT_232H_CBUS_TRISTATE 0x00
265#define FT_232H_CBUS_TXLED 0x01
266#define FT_232H_CBUS_RXLED 0x02
267#define FT_232H_CBUS_TXRXLED 0x03
268#define FT_232H_CBUS_PWREN 0x04
269#define FT_232H_CBUS_SLEEP 0x05
270#define FT_232H_CBUS_DRIVE_0 0x06
271#define FT_232H_CBUS_DRIVE_1 0x07
272#define FT_232H_CBUS_IOMODE 0x08
273#define FT_232H_CBUS_TXDEN 0x09
274#define FT_232H_CBUS_CLK30 0x0A
275#define FT_232H_CBUS_CLK15 0x0B
276#define FT_232H_CBUS_CLK7_5 0x0C
283#define FT_X_SERIES_CBUS_TRISTATE 0x00
284#define FT_X_SERIES_CBUS_TXLED 0x01
285#define FT_X_SERIES_CBUS_RXLED 0x02
286#define FT_X_SERIES_CBUS_TXRXLED 0x03
287#define FT_X_SERIES_CBUS_PWREN 0x04
288#define FT_X_SERIES_CBUS_SLEEP 0x05
289#define FT_X_SERIES_CBUS_DRIVE_0 0x06
290#define FT_X_SERIES_CBUS_DRIVE_1 0x07
291#define FT_X_SERIES_CBUS_IOMODE 0x08
292#define FT_X_SERIES_CBUS_TXDEN 0x09
293#define FT_X_SERIES_CBUS_CLK24 0x0A
294#define FT_X_SERIES_CBUS_CLK12 0x0B
295#define FT_X_SERIES_CBUS_CLK6 0x0C
296#define FT_X_SERIES_CBUS_BCD_CHARGER 0x0D
297#define FT_X_SERIES_CBUS_BCD_CHARGER_N 0x0E
298#define FT_X_SERIES_CBUS_I2C_TXE 0x0F
299#define FT_X_SERIES_CBUS_I2C_RXF 0x10
300#define FT_X_SERIES_CBUS_VBUS_SENSE 0x11
301#define FT_X_SERIES_CBUS_BITBANG_WR 0x12
302#define FT_X_SERIES_CBUS_BITBANG_RD 0x13
303#define FT_X_SERIES_CBUS_TIMESTAMP 0x14
304#define FT_X_SERIES_CBUS_KEEP_AWAKE 0x15
310#define FT_DRIVER_TYPE_D2XX 0
311#define FT_DRIVER_TYPE_VCP 1
324void WINAPI FT_Finalise(
360 DWORD dwBytesToWrite,
366 DWORD dwIoControlCode,
421 ULONG *pModemStatus);
427 UCHAR EventCharEnabled,
429 UCHAR ErrorCharEnabled);
458 DWORD *dwEventDWord);
481 DWORD *dwEventDWord);
673 char *ManufacturerId,
687 char *ManufacturerId,
995 DWORD eepromDataSize,
997 char *ManufacturerId,
1005 DWORD eepromDataSize,
1007 char *ManufacturerId,
1009 char *SerialNumber);
1035 ULONG ulInTransferSize,
1036 ULONG ulOutTransferSize);
1041 ULONG ulDeadmanTimeout);
1103 DWORD dwAttrsAndFlags,
1261 DWORD dwReadBufferSize,
1262 DWORD dwWriteBufferSize);
1333 LPLONG lpdwComPortNumber);
FTD2XX_API FT_STATUS WINAPI FT_SetDeadmanTimeout(FT_HANDLE ftHandle, ULONG ulDeadmanTimeout)
FTD2XX_API FT_STATUS WINAPI FT_EE_WriteConfig(FT_HANDLE ftHandle, UCHAR ucAddress, UCHAR ucValue)
@ FT_EEPROM_NOT_PROGRAMMED
@ FT_DEVICE_LIST_NOT_READY
@ FT_DEVICE_NOT_OPENED_FOR_ERASE
@ FT_INSUFFICIENT_RESOURCES
@ FT_DEVICE_NOT_OPENED_FOR_WRITE
@ FT_FAILED_TO_WRITE_DEVICE
struct ft_eeprom_2232h FT_EEPROM_2232H
FTD2XX_API FT_STATUS FT_GetVIDPID(DWORD *pdwVID, DWORD *pdwPID)
FTD2XX_API BOOL WINAPI FT_W32_SetCommMask(FT_HANDLE ftHandle, ULONG ulEventMask)
struct ft_eeprom_x_series FT_EEPROM_X_SERIES
FTD2XX_API FT_STATUS FT_SetVIDPID(DWORD dwVID, DWORD dwPID)
struct ft_eeprom_232h * PFT_EEPROM_232H
FTD2XX_API FT_HANDLE WINAPI FT_W32_CreateFile(LPCTSTR lpszName, DWORD dwAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreate, DWORD dwAttrsAndFlags, HANDLE hTemplate)
FTD2XX_API FT_STATUS WINAPI FT_SetEventNotification(FT_HANDLE ftHandle, DWORD Mask, PVOID Param)
FTD2XX_API FT_STATUS WINAPI FT_SetChars(FT_HANDLE ftHandle, UCHAR EventChar, UCHAR EventCharEnabled, UCHAR ErrorChar, UCHAR ErrorCharEnabled)
FTD2XX_API BOOL WINAPI FT_W32_CancelIo(FT_HANDLE ftHandle)
struct _FTCOMSTAT * LPFTCOMSTAT
struct ft_eeprom_232h FT_EEPROM_232H
FTD2XX_API FT_STATUS WINAPI FT_GetModemStatus(FT_HANDLE ftHandle, ULONG *pModemStatus)
FTD2XX_API FT_STATUS WINAPI FT_WriteEE(FT_HANDLE ftHandle, DWORD dwWordOffset, WORD wValue)
FTD2XX_API FT_STATUS WINAPI FT_EE_ReadECC(FT_HANDLE ftHandle, UCHAR ucOption, LPWORD lpwValue)
FTD2XX_API FT_STATUS WINAPI FT_GetBitMode(FT_HANDLE ftHandle, PUCHAR pucMode)
FTD2XX_API BOOL WINAPI FT_W32_GetCommState(FT_HANDLE ftHandle, LPFTDCB lpftDcb)
FTD2XX_API FT_STATUS WINAPI FT_GetDeviceInfo(FT_HANDLE ftHandle, FT_DEVICE *lpftDevice, LPDWORD lpdwID, PCHAR SerialNumber, PCHAR Description, LPVOID Dummy)
FTD2XX_API FT_STATUS WINAPI FT_ResetDevice(FT_HANDLE ftHandle)
FTD2XX_API FT_STATUS WINAPI FT_SetWaitMask(FT_HANDLE ftHandle, DWORD Mask)
FTD2XX_API BOOL WINAPI FT_W32_ReadFile(FT_HANDLE ftHandle, LPVOID lpBuffer, DWORD nBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped)
FTD2XX_API FT_STATUS WINAPI FT_EE_Read(FT_HANDLE ftHandle, PFT_PROGRAM_DATA pData)
FTD2XX_API BOOL WINAPI FT_W32_CloseHandle(FT_HANDLE ftHandle)
struct ft_eeprom_header * PFT_EEPROM_HEADER
struct ft_program_data FT_PROGRAM_DATA
FTD2XX_API FT_STATUS WINAPI FT_WaitOnMask(FT_HANDLE ftHandle, DWORD *Mask)
FTD2XX_API FT_STATUS WINAPI FT_EEPROM_Read(FT_HANDLE ftHandle, void *eepromData, DWORD eepromDataSize, char *Manufacturer, char *ManufacturerId, char *Description, char *SerialNumber)
FTD2XX_API BOOL WINAPI FT_W32_PurgeComm(FT_HANDLE ftHandle, DWORD dwMask)
FTD2XX_API FT_STATUS WINAPI FT_GetLibraryVersion(LPDWORD lpdwVersion)
FTD2XX_API FT_STATUS WINAPI FT_IoCtl(FT_HANDLE ftHandle, DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped)
FTD2XX_API FT_STATUS WINAPI FT_GetComPortNumber(FT_HANDLE ftHandle, LPLONG lpdwComPortNumber)
FTD2XX_API FT_STATUS WINAPI FT_SetBitMode(FT_HANDLE ftHandle, UCHAR ucMask, UCHAR ucEnable)
FTD2XX_API FT_STATUS WINAPI FT_VendorCmdSetEx(FT_HANDLE ftHandle, USHORT wValue, UCHAR *Buf, USHORT Len)
FTD2XX_API FT_STATUS WINAPI FT_SetLatencyTimer(FT_HANDLE ftHandle, UCHAR ucLatency)
FTD2XX_API FT_STATUS WINAPI FT_ListDevices(PVOID pArg1, PVOID pArg2, DWORD Flags)
FTD2XX_API FT_STATUS WINAPI FT_Reload(WORD wVid, WORD wPid)
struct ft_eeprom_4232h FT_EEPROM_4232H
FTD2XX_API FT_STATUS WINAPI FT_Open(int deviceNumber, FT_HANDLE *pHandle)
FTD2XX_API FT_STATUS WINAPI FT_Close(FT_HANDLE ftHandle)
struct _FTTIMEOUTS * LPFTTIMEOUTS
FTD2XX_API FT_STATUS WINAPI FT_GetQueueStatus(FT_HANDLE ftHandle, DWORD *dwRxBytes)
FTD2XX_API FT_STATUS WINAPI FT_SetTimeouts(FT_HANDLE ftHandle, ULONG ReadTimeout, ULONG WriteTimeout)
FTD2XX_API FT_STATUS WINAPI FT_CyclePort(FT_HANDLE ftHandle)
FTD2XX_API BOOL WINAPI FT_W32_SetCommState(FT_HANDLE ftHandle, LPFTDCB lpftDcb)
FTD2XX_API BOOL WINAPI FT_W32_WriteFile(FT_HANDLE ftHandle, LPVOID lpBuffer, DWORD nBufferSize, LPDWORD lpBytesWritten, LPOVERLAPPED lpOverlapped)
FTD2XX_API FT_STATUS WINAPI FT_OpenEx(PVOID pArg1, DWORD Flags, FT_HANDLE *pHandle)
struct ft_eeprom_x_series * PFT_EEPROM_X_SERIES
FTD2XX_API FT_STATUS WINAPI FT_SetUSBParameters(FT_HANDLE ftHandle, ULONG ulInTransferSize, ULONG ulOutTransferSize)
FTD2XX_API FT_STATUS WINAPI FT_Purge(FT_HANDLE ftHandle, ULONG Mask)
FTD2XX_API FT_STATUS WINAPI FT_GetEventStatus(FT_HANDLE ftHandle, DWORD *dwEventDWord)
FTD2XX_API FT_STATUS WINAPI FT_EE_ReadEx(FT_HANDLE ftHandle, PFT_PROGRAM_DATA pData, char *Manufacturer, char *ManufacturerId, char *Description, char *SerialNumber)
FTD2XX_API FT_STATUS WINAPI FT_VendorCmdGet(FT_HANDLE ftHandle, UCHAR Request, UCHAR *Buf, USHORT Len)
FTD2XX_API FT_STATUS WINAPI FT_SetBreakOn(FT_HANDLE ftHandle)
FTD2XX_API FT_STATUS WINAPI FT_Write(FT_HANDLE ftHandle, LPVOID lpBuffer, DWORD dwBytesToWrite, LPDWORD lpBytesWritten)
FTD2XX_API FT_STATUS WINAPI FT_SetDataCharacteristics(FT_HANDLE ftHandle, UCHAR WordLength, UCHAR StopBits, UCHAR Parity)
FTD2XX_API FT_STATUS WINAPI FT_GetDeviceInfoDetail(DWORD dwIndex, LPDWORD lpdwFlags, LPDWORD lpdwType, LPDWORD lpdwID, LPDWORD lpdwLocId, LPVOID lpSerialNumber, LPVOID lpDescription, FT_HANDLE *pftHandle)
FTD2XX_API FT_STATUS WINAPI FT_EraseEE(FT_HANDLE ftHandle)
FTD2XX_API FT_STATUS WINAPI FT_CreateDeviceInfoList(LPDWORD lpdwNumDevs)
FTD2XX_API BOOL WINAPI FT_W32_WaitCommEvent(FT_HANDLE ftHandle, PULONG pulEvent, LPOVERLAPPED lpOverlapped)
FTD2XX_API BOOL WINAPI FT_W32_SetCommTimeouts(FT_HANDLE ftHandle, FTTIMEOUTS *pTimeouts)
FTD2XX_API FT_STATUS WINAPI FT_GetStatus(FT_HANDLE ftHandle, DWORD *dwRxBytes, DWORD *dwTxBytes, DWORD *dwEventDWord)
FTD2XX_API FT_STATUS WINAPI FT_SetRts(FT_HANDLE ftHandle)
struct ft_eeprom_4232h * PFT_EEPROM_4232H
FTD2XX_API FT_STATUS WINAPI FT_Rescan(void)
FTD2XX_API FT_STATUS WINAPI FT_ResetPort(FT_HANDLE ftHandle)
struct ft_eeprom_2232h * PFT_EEPROM_2232H
FTD2XX_API FT_STATUS WINAPI FT_EEPROM_Program(FT_HANDLE ftHandle, void *eepromData, DWORD eepromDataSize, char *Manufacturer, char *ManufacturerId, char *Description, char *SerialNumber)
FTD2XX_API BOOL WINAPI FT_W32_ClearCommError(FT_HANDLE ftHandle, LPDWORD lpdwErrors, LPFTCOMSTAT lpftComstat)
FTD2XX_API BOOL WINAPI FT_W32_ClearCommBreak(FT_HANDLE ftHandle)
struct _ft_device_list_info_node FT_DEVICE_LIST_INFO_NODE
struct ft_eeprom_232b * PFT_EEPROM_232B
FTD2XX_API FT_STATUS WINAPI FT_SetDtr(FT_HANDLE ftHandle)
FTD2XX_API FT_STATUS WINAPI FT_EE_UAWrite(FT_HANDLE ftHandle, PUCHAR pucData, DWORD dwDataLen)
struct ft_eeprom_232b FT_EEPROM_232B
FTD2XX_API FT_STATUS WINAPI FT_ComPortIdle(FT_HANDLE ftHandle)
FTD2XX_API FT_STATUS WINAPI FT_EE_Program(FT_HANDLE ftHandle, PFT_PROGRAM_DATA pData)
FTD2XX_API FT_STATUS WINAPI FT_SetBaudRate(FT_HANDLE ftHandle, ULONG BaudRate)
FTD2XX_API FT_STATUS WINAPI FT_VendorCmdGetEx(FT_HANDLE ftHandle, USHORT wValue, UCHAR *Buf, USHORT Len)
FTD2XX_API FT_STATUS WINAPI FT_GetDriverVersion(FT_HANDLE ftHandle, LPDWORD lpdwVersion)
FTD2XX_API BOOL WINAPI FT_W32_GetCommTimeouts(FT_HANDLE ftHandle, FTTIMEOUTS *pTimeouts)
struct _FTTIMEOUTS FTTIMEOUTS
FTD2XX_API BOOL WINAPI FT_W32_SetupComm(FT_HANDLE ftHandle, DWORD dwReadBufferSize, DWORD dwWriteBufferSize)
FTD2XX_API BOOL WINAPI FT_W32_GetCommMask(FT_HANDLE ftHandle, LPDWORD lpdwEventMask)
FTD2XX_API FT_STATUS WINAPI FT_Read(FT_HANDLE ftHandle, LPVOID lpBuffer, DWORD dwBytesToRead, LPDWORD lpBytesReturned)
FTD2XX_API BOOL WINAPI FT_W32_GetOverlappedResult(FT_HANDLE ftHandle, LPOVERLAPPED lpOverlapped, LPDWORD lpdwBytesTransferred, BOOL bWait)
struct ft_program_data * PFT_PROGRAM_DATA
FTD2XX_API FT_STATUS WINAPI FT_GetDeviceInfoList(FT_DEVICE_LIST_INFO_NODE *pDest, LPDWORD lpdwNumDevs)
struct _FTCOMSTAT FTCOMSTAT
FTD2XX_API FT_STATUS WINAPI FT_SetDivisor(FT_HANDLE ftHandle, USHORT Divisor)
struct ft_eeprom_2232 FT_EEPROM_2232
FTD2XX_API FT_STATUS WINAPI FT_SetResetPipeRetryCount(FT_HANDLE ftHandle, DWORD dwCount)
FTD2XX_API DWORD WINAPI FT_W32_GetLastError(FT_HANDLE ftHandle)
FTD2XX_API BOOL WINAPI FT_W32_EscapeCommFunction(FT_HANDLE ftHandle, DWORD dwFunc)
FTD2XX_API FT_STATUS WINAPI FT_EE_ProgramEx(FT_HANDLE ftHandle, PFT_PROGRAM_DATA pData, char *Manufacturer, char *ManufacturerId, char *Description, char *SerialNumber)
FTD2XX_API FT_STATUS WINAPI FT_GetQueueStatusEx(FT_HANDLE ftHandle, DWORD *dwRxBytes)
struct ft_eeprom_2232 * PFT_EEPROM_2232
FTD2XX_API FT_STATUS WINAPI FT_EE_UARead(FT_HANDLE ftHandle, PUCHAR pucData, DWORD dwDataLen, LPDWORD lpdwBytesRead)
void(* PFT_EVENT_HANDLER)(DWORD, DWORD)
FTD2XX_API FT_STATUS WINAPI FT_ReadEE(FT_HANDLE ftHandle, DWORD dwWordOffset, LPWORD lpwValue)
FTD2XX_API FT_STATUS WINAPI FT_ClrRts(FT_HANDLE ftHandle)
FTD2XX_API FT_STATUS WINAPI FT_GetLatencyTimer(FT_HANDLE ftHandle, PUCHAR pucLatency)
FTD2XX_API FT_STATUS WINAPI FT_EE_ReadConfig(FT_HANDLE ftHandle, UCHAR ucAddress, PUCHAR pucValue)
FTD2XX_API FT_STATUS WINAPI FT_StopInTask(FT_HANDLE ftHandle)
struct ft_eeprom_header FT_EEPROM_HEADER
FTD2XX_API FT_STATUS WINAPI FT_ComPortCancelIdle(FT_HANDLE ftHandle)
struct ft_eeprom_232r FT_EEPROM_232R
FTD2XX_API BOOL WINAPI FT_W32_GetCommModemStatus(FT_HANDLE ftHandle, LPDWORD lpdwModemStatus)
struct ft_eeprom_232r * PFT_EEPROM_232R
FTD2XX_API FT_STATUS WINAPI FT_GetDeviceLocId(FT_HANDLE ftHandle, LPDWORD lpdwLocId)
FTD2XX_API FT_STATUS WINAPI FT_SetFlowControl(FT_HANDLE ftHandle, USHORT FlowControl, UCHAR XonChar, UCHAR XoffChar)
FTD2XX_API FT_STATUS WINAPI FT_VendorCmdSet(FT_HANDLE ftHandle, UCHAR Request, UCHAR *Buf, USHORT Len)
FTD2XX_API FT_STATUS WINAPI FT_SetBreakOff(FT_HANDLE ftHandle)
FTD2XX_API FT_STATUS WINAPI FT_RestartInTask(FT_HANDLE ftHandle)
FTD2XX_API FT_STATUS WINAPI FT_ClrDtr(FT_HANDLE ftHandle)
FTD2XX_API BOOL WINAPI FT_W32_SetCommBreak(FT_HANDLE ftHandle)
FTD2XX_API FT_STATUS WINAPI FT_EE_UASize(FT_HANDLE ftHandle, LPDWORD lpdwSize)
DWORD ReadIntervalTimeout
DWORD WriteTotalTimeoutMultiplier
DWORD ReadTotalTimeoutConstant
DWORD ReadTotalTimeoutMultiplier
DWORD WriteTotalTimeoutConstant