Domanda

Io sto cercando di parlare di un dispositivo USB utilizzando libusb, ma non mi sento di intervento sulla prima tappa della gara.Mi sa esattamente che cosa gli endpoint ho bisogno di parlare, ecc.... ma non riesco nemmeno ad andare fino in fondo.Ho, in sostanza:

usb_device *dev = ...; // opened from get_busses()
usb_set_configuration(dev, dev->config[0].bConfigurationValue); // bConfigVal = 1

Ora, io guardo le informazioni sul dispositivo in modalità di debug e so che la configurazione attuale è 0 (non inizializzato / appena dopo il riavvio), e c'è esattamente 1 configurazione valida, che ha una configurazione numero di 1.Ma quando ho impostato la configurazione a 1, ottengo un valore di ritorno di -22, che è passato attraverso il stringifier) si traduce in "api di windows di errore:parametro non valido.

Non sono stato in grado di trovare altre persone con un problema simile, e sembra una cosa semplice da fare, non posso nemmeno pretendere l'interfaccia, o impostare l'alt-interface, o qualcosa di simile, perché è necessario impostare la configurazione di prima.Che cosa mi manca?(se è importante:questo è in WinXP)

È stato utile?

Soluzione

Guardando libusb-win32\src\driver\set_configuration.c, sembra che ci siano un sacco di ragioni diverse per la restituzione STATUS_INVALID_PARAMETER.

Utilizzare libusb_set_debug (dalla tua applicazione in modalità utente) per impostare dettagliato livello di debug, quindi eseguire Sysinternals DebugView per vedere il driver di messaggi di errore.Speriamo che si poteva vedere una pallida idea del perché il vostro set_configuration chiamata ha esito negativo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top