ты через отдельный EP планируешь передавать или использовать EP0? Если второе, то размер посылки - это часть setup пакета. Так же команду можно впихнуть в value или index поля setup реквеста. Я бы сделал так: если index == 1, значит это первая посылка - начинаем собирать данные, считываем сколько дали и так, пока весь пакет не вычитается. Размер всего пакета передать, к примеру в value - просто за один setup реквест может не получиться все данные передать.
Признак начала посылки может пригодиться, что бы прервать накопление данных, если, к примеру, был какой-то сбой на удалённой стороне (комп ребутнулся и начал работать заново).
А вообще,
www.beyondlogic.org/usbnutshell/usb1.shtml и
microsin.ru/content/view/1107/44 в помощь.