allez, voici une entête de commande nulle qui ne fait rien mais devrait passer sur, je pense toute clé :
CBW : 0x55 0x53 0x42 0x43 - 0x10 0x11 0x12 0x13 - 0x00 0x00 0x00 0x00 - 0x80 0x00 0x10 0xff
petite explication :
- valeur indicant que c'est un CBW : 0x43425355 (little endian)
- flag au choix, j'ai choisi : 0x13121110 (little endian)
- bytes transférés entre l'émission du CBW et la réception du CSW : 0x00000000 -> aucun transfert entre émission et réception.
- définition du sens IN : 0x80
- LUN : 0x00 ... car ... un seul LUN, je ne sais pas ce que c'est ???
- taille du block commande qui suit : 0x01 (on va passer une commande bidon de 1 byte)
- block commande bidon : 0xff (c'est la commande effectivement passée au device - 1 byte ici).
J'obtient ainsi en retour (lecture du EP IN) :
CSW : 0x55 0x53 0x42 0x53 - 0x10 0x11 0x12 0x13 - 0x00 0x00 0x00 0x00 - 0x01
soit :
- valeur indicant que c'est un CSW : 0x53425355 (little endian)
- mon flag passé par le CBW : 0x13121110 (little endian)
- la différence entre les donnée transférées (entre CBW et CSW) prévues et les effectives : 0x00000000 (car je n'avais pas prévu de transfert entre le CBW et le CSW).
- le status : 0x01 (ce qui signifie que mon block commande bidon n'a pas réussi ... normal puisqu'il est bidon).
Voila voila, si certains trouvent des erreurs dans mes interprétations, n'hésitez pas à me mettre au courant, merci !