ReadBufferSize cause error windows8

Zaslavsky Evelina <[email protected]> Tue, 20 Oct 2015 11:12:01 +0300
Newsgroups gmane.comp.lib.libusb.devel.windows
Message-ID <CAG_OCP3Q1PLM2sv2rZsDoTe+Hj3PCDyJBptE103m6MzLU7poLw@mail.gmail.com>
Hi All,  I'm really sorry for disturbing you. I have a problem with my
LibUsbDotNet project and asking for your help.

In windows 7 the project works correctly, but when I migrate the project to
windows 8 i get the follow error:
No data to read IOTimeOut.
(I checked the devise side, cmdWrite reseaved correctly and device send the
answer)

This is the function:
   private void cmdRead_Click(object sender, EventArgs e)
        {
            cmdRead.Enabled = false;
            byte[] readBuffer = new byte[1024];
            int uiTransmitted;
            ErrorCode eReturn;

                if ((eReturn = mEpReader.Read(readBuffer, 1000, out
uiTransmitted)) == ErrorCode.None)
                {
                    tsStatus.Text = uiTransmitted + " bytes read.";
                    showBytes(readBuffer, uiTransmitted);
                }
                else
                    tsStatus.Text = "No data to read! " + eReturn;
}
            cmdRead.Enabled = true;
        }

After this readBuffer contains the readed correct answer from device, but
 eReturn = IOTimeOut

When I debugged it i sow that
the follow function returns false:

 Kernel32.DeviceIoControl(endPointBase.Device.Handle,
                                            cltCode,
                                            req,
                                            LibUsbRequest.Size,
                                            buffer,
                                            bufferLength,
                                            out lengthTransferred,
                                            pOverlapped);

This error happens if the  readBuffe.size more then 64.

 mEpReader.ReadBufferSize = 1024; - doesn't help

This code will run perfect:

  private void cmdRead_Click(object sender, EventArgs e)
        {
            cmdRead.Enabled = false;
            byte[] readBuffer = new byte[64];;
            int uiTransmitted;
            ErrorCode eReturn;

                if ((eReturn = mEpReader.Read(readBuffer, 1000, out
uiTransmitted)) == ErrorCode.None)
                {
                    tsStatus.Text = uiTransmitted + " bytes read.";
                    showBytes(readBuffer, uiTransmitted);
                }
                else
                    tsStatus.Text = "No data to read! " + eReturn;
}
            cmdRead.Enabled = true;
        }

I already reinstalled the LibUSB0 drivers.

Thank you for your attention.

Have a nice day.

------------------------------------------------------------------------------

_______________________________________________
Libusb-win32-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel