leechcorepyc 2.19.2__tar.gz → 2.20.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {leechcorepyc-2.19.2/leechcorepyc.egg-info → leechcorepyc-2.20.0}/PKG-INFO +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/includes/leechcore.h +4 -4
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/includes/leechcore_device.h +3 -3
- leechcorepyc-2.20.0/leechcore/Makefile.macos +29 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/device_file.c +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/device_fpga.c +20 -13
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/device_hibr.c +534 -534
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/device_pmem.c +3 -3
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/device_tmd.c +263 -263
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/device_usb3380.c +357 -343
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/device_vmm.c +82 -82
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/device_vmware.c +216 -216
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/leechcore.c +3 -3
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/leechcore.h +4 -4
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/leechcore_device.h +3 -3
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/leechcore_internal.h +73 -73
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/leechrpc.h +191 -189
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/leechrpc_c.c +31 -56
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/leechrpc_h.h +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/leechrpcclient.c +40 -18
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/leechrpcshared.c +151 -151
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/memmap.c +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/ob/ob_bytequeue.c +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/ob/ob_core.c +170 -170
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/ob/ob_map.c +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/ob/ob_set.c +557 -557
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/oscompatibility.c +609 -465
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/oscompatibility.h +284 -264
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/util.c +207 -210
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/util.h +106 -95
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/version.h +3 -3
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_device_rawtcp/leechcore_device_rawtcp.c +293 -293
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_device_rawtcp/oscompatibility.c +24 -24
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_device_rawtcp/oscompatibility.h +45 -45
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_device_rawtcp/version.h +24 -24
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_ft601_driver_linux/Makefile +18 -18
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcorepyc.c +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0/leechcorepyc.egg-info}/PKG-INFO +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcorepyc.egg-info/SOURCES.txt +1 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcorepyc.h +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcorepyc_barrequest.c +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/general.h +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/oscompatibility.c +294 -294
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/oscompatibility.h +219 -219
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/setup.py +1 -1
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/MANIFEST.in +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/Makefile +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/README +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/files/dummy +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/includes/libpdbcrust.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/includes/vmmdll.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/includes/vmmyara.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/Makefile +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/leechcore.rc +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/leechrpc.idl +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore/ob/ob.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_device_qemu/Makefile +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_device_qemu/leechcore_device_qemu.c +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_device_rawtcp/Makefile +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_device_rawtcp/plugin.rc +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_device_rawtcp/resource.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_ft601_driver_linux/fpga_libusb.c +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_ft601_driver_linux/fpga_libusb.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_ft601_driver_linux/leechcore_ft601_driver_linux.c +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcore_ft601_driver_linux/leechcore_ft601_driver_linux.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcorepyc/__init__.py +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcorepyc.egg-info/dependency_links.txt +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/leechcorepyc.egg-info/top_level.txt +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/Makefile +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/lznt1.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/Array.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/Bitstream.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/CircularBuffer.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/HuffmanDecoder.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/HuffmanEncoder.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/LZNT1Dictionary.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/LZNT1Dictionary_SA.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/XpressDictionary.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/config.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/internal.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp/sorting.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/mscomp.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/xpress.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/include/xpress_huff.h +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/src/lznt1_compress.cpp +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/src/lznt1_decompress.cpp +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/src/mscomp.cpp +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/src/xpress_compress.cpp +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/src/xpress_decompress.cpp +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/src/xpress_huff_compress.cpp +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/ms-compress/src/xpress_huff_decompress.cpp +0 -0
- {leechcorepyc-2.19.2 → leechcorepyc-2.20.0}/setup.cfg +0 -0
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
// - README: https://github.com/ufrisk/LeechCore
|
|
12
12
|
// - GUIDE: https://github.com/ufrisk/LeechCore/wiki
|
|
13
13
|
//
|
|
14
|
-
// (c) Ulf Frisk, 2020-
|
|
14
|
+
// (c) Ulf Frisk, 2020-2025
|
|
15
15
|
// Author: Ulf Frisk, pcileech@frizk.net
|
|
16
16
|
//
|
|
17
|
-
// Header Version: 2.
|
|
17
|
+
// Header Version: 2.20.0
|
|
18
18
|
//
|
|
19
19
|
|
|
20
20
|
#ifndef __LEECHCORE_H__
|
|
@@ -34,7 +34,7 @@ extern "C" {
|
|
|
34
34
|
typedef unsigned __int64 QWORD, *PQWORD;
|
|
35
35
|
|
|
36
36
|
#endif /* _WIN32 */
|
|
37
|
-
#
|
|
37
|
+
#if defined(LINUX) || defined(MACOS)
|
|
38
38
|
|
|
39
39
|
#include <inttypes.h>
|
|
40
40
|
#include <stdlib.h>
|
|
@@ -75,7 +75,7 @@ typedef const uint16_t *LPCWSTR;
|
|
|
75
75
|
#define _Printf_format_string_
|
|
76
76
|
#define _Success_(x)
|
|
77
77
|
|
|
78
|
-
#endif /* LINUX */
|
|
78
|
+
#endif /* LINUX || MACOS */
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// device may be created/opened - if only one instance may be open at the same
|
|
16
16
|
// time this should be handled by the plugin module itself.
|
|
17
17
|
//
|
|
18
|
-
// (c) Ulf Frisk, 2020-
|
|
18
|
+
// (c) Ulf Frisk, 2020-2025
|
|
19
19
|
// Author: Ulf Frisk, pcileech@frizk.net
|
|
20
20
|
//
|
|
21
21
|
// Header Version: 2.5
|
|
@@ -29,7 +29,7 @@ extern "C" {
|
|
|
29
29
|
#include <stdio.h>
|
|
30
30
|
#include "leechcore.h"
|
|
31
31
|
|
|
32
|
-
#
|
|
32
|
+
#if defined(LINUX) || defined(MACOS)
|
|
33
33
|
#include <string.h>
|
|
34
34
|
#include <pthread.h>
|
|
35
35
|
#ifndef _LINUX_DEF_CRITICAL_SECTION
|
|
@@ -39,7 +39,7 @@ typedef struct tdCRITICAL_SECTION {
|
|
|
39
39
|
pthread_mutexattr_t mta;
|
|
40
40
|
} CRITICAL_SECTION, *LPCRITICAL_SECTION;
|
|
41
41
|
#endif /* _LINUX_DEF_CRITICAL_SECTION */
|
|
42
|
-
#endif /* LINUX */
|
|
42
|
+
#endif /* LINUX || MACOS */
|
|
43
43
|
|
|
44
44
|
#define LC_CONTEXT_VERSION 0xc0e10004
|
|
45
45
|
#define LC_DEVICE_PARAMETER_MAX_ENTRIES 0x10
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
CC=clang
|
|
2
|
+
CFLAGS += -I. -D MACOS -D _GNU_SOURCE -fPIC -fvisibility=hidden -pthread
|
|
3
|
+
CFLAGS += -fPIC -fstack-protector-strong -D_FORTIFY_SOURCE=2 -O1
|
|
4
|
+
CFLAGS += -Wall -Wno-multichar -Wno-unused-result -Wno-unused-variable -Wno-unused-value
|
|
5
|
+
CFLAGS += -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast
|
|
6
|
+
CFLAGS += -mmacosx-version-min=11.0
|
|
7
|
+
# DEBUG FLAGS BELOW
|
|
8
|
+
#CFLAGS += -O0
|
|
9
|
+
#CFLAGS += -fsanitize=address
|
|
10
|
+
# DEBUG FLAGS ABOVE
|
|
11
|
+
LDFLAGS += -g -dynamiclib -mmacosx-version-min=11.0
|
|
12
|
+
DEPS = leechcore.h
|
|
13
|
+
OBJ = oscompatibility.o leechcore.o util.o memmap.o device_file.o device_fpga.o device_hibr.o device_pmem.o device_tmd.o device_usb3380.o device_vmm.o device_vmware.o leechrpcclient.o ob/ob_core.o ob/ob_map.o ob/ob_set.o ob/ob_bytequeue.o
|
|
14
|
+
|
|
15
|
+
%.o: %.c $(DEPS)
|
|
16
|
+
$(CC) -c -o $@ $< $(CFLAGS)
|
|
17
|
+
|
|
18
|
+
leechcore: $(OBJ)
|
|
19
|
+
$(CC) $(CFLAGS) $(LDFLAGS) -o leechcore.dylib $^
|
|
20
|
+
mv leechcore.dylib ../files/
|
|
21
|
+
rm -f *.o || true
|
|
22
|
+
rm -f */*.o || true
|
|
23
|
+
rm -f *.dylib || true
|
|
24
|
+
true
|
|
25
|
+
|
|
26
|
+
clean:
|
|
27
|
+
rm -f *.o || true
|
|
28
|
+
rm -f */*.o || true
|
|
29
|
+
rm -f *.dylib || true
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// - FT2232H/FT245 protocol - access FPGA via FT2232H USB2 instead of FT601 USB3.
|
|
8
8
|
// - Other devices with plugin driver - ZDMA etc.
|
|
9
9
|
//
|
|
10
|
-
// (c) Ulf Frisk, 2017-
|
|
10
|
+
// (c) Ulf Frisk, 2017-2025
|
|
11
11
|
// Author: Ulf Frisk, pcileech@frizk.net
|
|
12
12
|
//
|
|
13
13
|
#include "leechcore.h"
|
|
@@ -33,11 +33,19 @@
|
|
|
33
33
|
|
|
34
34
|
#ifdef _WIN32
|
|
35
35
|
#define DEVICE_FPGA_FT601_LIBRARY "FTD3XX.dll"
|
|
36
|
+
#define DEVICE_FPGA_FT2XX_LIBRARY "FTD2XX.dll"
|
|
36
37
|
#define DEVICE_FPGA_DRIVER_LIBRARY "leechcore_driver.dll"
|
|
37
|
-
#
|
|
38
|
+
#endif /* _WIN32 */
|
|
39
|
+
#ifdef LINUX
|
|
38
40
|
#define DEVICE_FPGA_FT601_LIBRARY "leechcore_ft601_driver_linux.so"
|
|
41
|
+
#define DEVICE_FPGA_FT2XX_LIBRARY "libftd2xx.so"
|
|
39
42
|
#define DEVICE_FPGA_DRIVER_LIBRARY "leechcore_driver.so"
|
|
40
|
-
#endif /*
|
|
43
|
+
#endif /* LINUX */
|
|
44
|
+
#ifdef MACOS
|
|
45
|
+
#define DEVICE_FPGA_FT601_LIBRARY "leechcore_ft601_driver_macos.dylib"
|
|
46
|
+
#define DEVICE_FPGA_FT2XX_LIBRARY "libftd2xx.dylib"
|
|
47
|
+
#define DEVICE_FPGA_DRIVER_LIBRARY "leechcore_driver.dylib"
|
|
48
|
+
#endif /* MACOS */
|
|
41
49
|
|
|
42
50
|
#define ENDIAN_SWAP_DWORD(x) (x = (x << 24) | ((x >> 8) & 0xff00) | ((x << 8) & 0xff0000) | (x >> 24))
|
|
43
51
|
|
|
@@ -673,7 +681,7 @@ ULONG WINAPI DeviceFPGA_UDP_FT60x_FT_WritePipe(HANDLE ftHandle, UCHAR ucPipeID,
|
|
|
673
681
|
ULONG WINAPI DeviceFPGA_UDP_FT60x_FT_ReadPipe(HANDLE ftHandle, UCHAR ucPipeID, PUCHAR pucBuffer, ULONG ulBufferLength, PULONG pulBytesTransferred, PVOID pOverlapped)
|
|
674
682
|
{
|
|
675
683
|
int status;
|
|
676
|
-
DWORD cbTx, cSleep = 0, cbRead, cbReadTotal = 0
|
|
684
|
+
DWORD cbTx, cSleep = 0, cbRead, cbReadTotal = 0;
|
|
677
685
|
BYTE pbTx[] = { 0x01, 0x00, 0x01, 0x00, 0x80, 0x02, 0x23, 0x77 }; // cmd msg: inactivity timer enable - 1ms
|
|
678
686
|
FPGA_HANDLESOCKET hs;
|
|
679
687
|
hs.h = ftHandle;
|
|
@@ -700,7 +708,6 @@ ULONG WINAPI DeviceFPGA_UDP_FT60x_FT_ReadPipe(HANDLE ftHandle, UCHAR ucPipeID, P
|
|
|
700
708
|
return 1;
|
|
701
709
|
}
|
|
702
710
|
cSleep = 0;
|
|
703
|
-
cPass++;
|
|
704
711
|
cbRead = min(ulBufferLength, (DWORD)status);
|
|
705
712
|
cbReadTotal += cbRead;
|
|
706
713
|
ulBufferLength -= cbRead;
|
|
@@ -778,9 +785,9 @@ static BOOL g_fDeviceFpgaMultiHandleLock[0x10] = { 0 };
|
|
|
778
785
|
|
|
779
786
|
BOOL DeviceFPGA_Initialize_LinuxMultiHandle_LockCheck(_In_ QWORD qwDeviceIndex)
|
|
780
787
|
{
|
|
781
|
-
#
|
|
788
|
+
#if defined(LINUX) || defined(MACOS)
|
|
782
789
|
if(g_fDeviceFpgaMultiHandleLock[min(0x10 - 1, qwDeviceIndex)]) { return TRUE; }
|
|
783
|
-
#endif /* LINUX */
|
|
790
|
+
#endif /* LINUX || MACOS */
|
|
784
791
|
return FALSE;
|
|
785
792
|
}
|
|
786
793
|
|
|
@@ -863,8 +870,8 @@ LPSTR DeviceFPGA_InitializeFT601(_In_ PDEVICE_CONTEXT_FPGA ctx, _In_ BOOL fFT601
|
|
|
863
870
|
pfnFT_SetSuspendTimeout = (ULONG(WINAPI*)(HANDLE, ULONG))GetProcAddress(ctx->dev.hModule, "FT_SetSuspendTimeout");
|
|
864
871
|
if(!ctx->dev.pfnFT_Create || !ctx->dev.pfnFT_ReadPipe || !ctx->dev.pfnFT_WritePipe) {
|
|
865
872
|
szErrorReason = ctx->dev.pfnFT_ReadPipe ?
|
|
866
|
-
"Unable to retrieve required functions from device driver dll/so." :
|
|
867
|
-
"Unable to retrieve required functions from
|
|
873
|
+
"Unable to retrieve required functions from device driver dll/so/dylib." :
|
|
874
|
+
"Unable to retrieve required functions from "DEVICE_FPGA_FT601_LIBRARY;
|
|
868
875
|
goto fail;
|
|
869
876
|
}
|
|
870
877
|
// Open FTDI
|
|
@@ -1032,11 +1039,11 @@ LPSTR DeviceFPGA_InitializeFT2232(_In_ PDEVICE_CONTEXT_FPGA ctx)
|
|
|
1032
1039
|
ctx->dev.hModule = LoadLibraryA("FTD2XX.dll");
|
|
1033
1040
|
if(!ctx->dev.hModule) {
|
|
1034
1041
|
Util_GetPathLib(szModuleFTDI);
|
|
1035
|
-
strcat_s(szModuleFTDI, sizeof(szModuleFTDI) - 1,
|
|
1042
|
+
strcat_s(szModuleFTDI, sizeof(szModuleFTDI) - 1, DEVICE_FPGA_FT2XX_LIBRARY);
|
|
1036
1043
|
ctx->dev.hModule = LoadLibraryA(szModuleFTDI);
|
|
1037
1044
|
}
|
|
1038
1045
|
if(!ctx->dev.hModule) {
|
|
1039
|
-
szErrorReason = "Unable to load
|
|
1046
|
+
szErrorReason = "Unable to load "DEVICE_FPGA_FT2XX_LIBRARY;
|
|
1040
1047
|
goto fail;
|
|
1041
1048
|
}
|
|
1042
1049
|
// Assign FT601 compatibility functions to device object:
|
|
@@ -1060,7 +1067,7 @@ LPSTR DeviceFPGA_InitializeFT2232(_In_ PDEVICE_CONTEXT_FPGA ctx)
|
|
|
1060
1067
|
hFT2232H->pfnFT_Close = (ULONG(WINAPI*)(HANDLE))
|
|
1061
1068
|
GetProcAddress(ctx->dev.hModule, "FT_Close");
|
|
1062
1069
|
if(!hFT2232H->pfnFT_GetStatus || !hFT2232H->pfnFT_Read || !hFT2232H->pfnFT_Write || !hFT2232H->pfnFT_Close) {
|
|
1063
|
-
szErrorReason = "Unable to retrieve required functions from
|
|
1070
|
+
szErrorReason = "Unable to retrieve required functions from "DEVICE_FPGA_FT2XX_LIBRARY;
|
|
1064
1071
|
goto fail;
|
|
1065
1072
|
}
|
|
1066
1073
|
// Retrieve required function-local function pointers from FTDI library:
|
|
@@ -1077,7 +1084,7 @@ LPSTR DeviceFPGA_InitializeFT2232(_In_ PDEVICE_CONTEXT_FPGA ctx)
|
|
|
1077
1084
|
pfnFT_SetFlowControl = (ULONG(WINAPI*)(HANDLE, USHORT, UCHAR, UCHAR))
|
|
1078
1085
|
GetProcAddress(ctx->dev.hModule, "FT_SetFlowControl");
|
|
1079
1086
|
if(!pfnFT_Open || !pfnFT_ResetDevice || !pfnFT_SetBitMode || !pfnFT_SetLatencyTimer || !pfnFT_SetUSBParameters || !pfnFT_SetFlowControl) {
|
|
1080
|
-
szErrorReason = "Unable to retrieve required functions from
|
|
1087
|
+
szErrorReason = "Unable to retrieve required functions from "DEVICE_FPGA_FT2XX_LIBRARY;
|
|
1081
1088
|
goto fail;
|
|
1082
1089
|
}
|
|
1083
1090
|
// Open FTDI
|