2017-08-23 4 views

Répondre

1

En théorie, il s'agit de la valeur positive maximale d'un int sur le système cible. Le paramètre length est finalement utilisé pour initialiser le membre length de la structure de transfert (voir libusb.h, code relatif et abrégé collé ci-dessous).

En réalité, j'imagine que le nombre exact dépend du périphérique et/ou de l'application. J'ai vu des discussions qui prétendent avoir des problèmes avec des tailles de paquets plus grandes (par exemple: 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; 
};