Помогите переписать функцию из FTCSPI.dll для микросхемы FT2232HL
Оригинал на С++ таков
typedef struct FTH_Low_High_Pins{
BOOL bPin1LowHighState;
BOOL bPin2LowHighState;
BOOL bPin3LowHighState;
BOOL bPin4LowHighState;
BOOL bPin5LowHighState;
BOOL bPin6LowHighState;
BOOL bPin7LowHighState;
BOOL bPin8LowHighState;
}FTH_LOW_HIGH_PINS, *PFTH_LOW_HIGH_PINS;
FTCSPI_API
FTC_STATUS WINAPI SPI_GetHiSpeedDeviceGPIOs(FTC_HANDLE ftHandle, PFTH_LOW_HIGH_PINS pHighPinsInputData);
Я переписал на C#
[DllImport("FTCSPI.dll", EntryPoint = "SPI_GetHiSpeedDeviceGPIOs")]
unsafe public static extern ftc_status SPI_GetHiSpeedDeviceGPIOs(UInt32 pftHandle, [In, Out] ref FTH_Low_High_Pins pHighPinsInputData);
[StructLayout(LayoutKind.Sequential)]
public struct FTH_Low_High_Pins{
bool bPin1LowHighState;
bool bPin2LowHighState;
bool bPin3LowHighState;
bool bPin4LowHighState;
bool bPin5LowHighState;
bool bPin6LowHighState;
bool bPin7LowHighState;
bool bPin8LowHighState;
};
но как-то она некорректно работает. Похоже некорректно представил указатель на структуру pFTH_Low_High_Pins.
В теле программы код таков
FTCSPI.FTH_Low_High_Pins pFTH_Low_High_Pins = new FTCSPI.FTH_Low_High_Pins();
ft = FTCSPI.SPI_GetHiSpeedDeviceGPIOs(pftHandle, ref pFTH_Low_High_Pins);
Заранее благодарен