1.) No. Se una funzione è in grado di fornire dati, restituisce immediatamente. Se non è così, attende il valore di timeout specificato e poi si arrende (restituisce).
2.) Non conosco i valori massimi e, in realtà, non sono così importanti: questi valori specificano i tempi massimi di attesa per le operazioni di lettura o scrittura tra il driver Winusb e l'hardware del dispositivo. Il valore minimo (lettura + scrittura) è di 0 ms, il che non ha senso. Non ha senso aspettare più di qualche secondo per una risposta dal dispositivo. Mantenete semplicemente i valori predefiniti. Perché qualcuno dovrebbe dare al conducente, ad esempio, 10 minuti per ricevere una risposta dall'hardware USB?
3.) L'hardware CAN utilizza 32 buffer FIFO per i frame CAN. La scrittura sull'hardware non viene bufferizzata direttamente dal driver del dispositivo. La lettura viene gestita come una lista, quindi nessun messaggio andrà perso finché ci sarà sufficiente memoria per memorizzarlo e non si chiuderà la connessione.
Praticamente, non devi preoccuparti di questo. Niente si perde.
