2017-08-23 3 views

Antwort

1

In der Theorie ist es der maximale positive Wert eines int auf dem Zielsystem. Der length-Parameter wird schließlich dazu verwendet, das Längenelement der Transferstruktur zu initialisieren (siehe libusb.h, relativer und abgekürzter Code, der unten eingefügt wird).

In Wirklichkeit stelle ich mir vor, die genaue Anzahl ist geräteabhängig und/oder anwendungsspezifisch. Ich habe Diskussionen gesehen, die behaupten, Probleme mit größeren Paketgrößen zu haben (zum Beispiel: LibUSB driver issues: timeout).

libusb_fill_bulk_transfer:

static inline void libusb_fill_bulk_transfer(
    struct libusb_transfer *transfer, 
    libusb_device_handle *dev_handle, 
    unsigned char endpoint, 
    unsigned char *buffer, 
    int length, libusb_transfer_cb_fn callback, 
    void *user_data, 
    unsigned int timeout) 
{ 
      /* NOTE: Only relevant code is pasted here. For complete code see official libusb.h file included with your distribution. */ 
    transfer->length = length; 
} 

libusb_transfer:

struct libusb_transfer 
{ 
    /* NOTE: Only relevant code is pasted here. For complete code see official libusb.h file included with your distribution. */ 

    /** Length of the data buffer */ 
    int length; 
};