public int NI_USB3_ReadData_M( UInt32[] data, UInt32 count, UInt32 address, USB_BUS_MODE bus_mode, UInt32 timeout_ms, ref UInt32 read_data, ref UInt32 valid_data ) { IntPtr read_data_ptr = new IntPtr(1); IntPtr valid_data_ptr = new IntPtr(1); mut.WaitOne(); int retcode = NI_USB3_ReadData( data, count, address, bus_mode, timeout_ms, Handle, ref read_data_ptr, ref valid_data_ptr ); read_data = (UInt32)read_data_ptr.ToInt32(); valid_data = (UInt32)valid_data_ptr.ToInt32(); mut.ReleaseMutex(); return(retcode); }
public int NI_USB3_WriteData_M( UInt32[] data, UInt32 count, UInt32 address, USB_BUS_MODE bus_mode, UInt32 timeout_ms, ref UInt32 written_data) { //IntPtr unmanagedPointer = Marshal.AllocHGlobal((Int32) count); IntPtr written_data_ptr = new IntPtr(written_data); mut.WaitOne(); int retcode = NI_USB3_WriteData( data, count, address, bus_mode, timeout_ms, Handle, ref written_data_ptr); written_data = (UInt32)written_data_ptr.ToInt32(); mut.ReleaseMutex(); return(retcode); }
unsafe private static extern int NI_USB3_WriteData( UInt32[] data, UInt32 count, UInt32 address, USB_BUS_MODE bus_mode, UInt32 timeout_ms, IntPtr handle, ref IntPtr written_data);
unsafe private static extern int NI_USB3_ReadData( UInt32[] data, UInt32 count, UInt32 address, USB_BUS_MODE bus_mode, UInt32 timeout_ms, IntPtr handle, ref IntPtr read_data, ref IntPtr valid_data );