INT32U usbdvendor_callback(void) { int i; unsigned int Command_Value; if (GetCMDValueEx(29)!='G' || GetCMDValueEx(30)!='P') { CommandFail(0x27); return 0; } Command_Value = (GetCMDValueEx(15) << 8 | GetCMDValueEx(16) ); Sense_Code =0x1a; switch (Command_Value ) { case 0xF000: return 0; case 0xF001: //get lun GetDriveStatus(); return 0; case 0xF010: //Read IC info GetICVersion(); return 0; case 0xFFF0: case 0xF0F0: SetVenderID(); ConfirmPass = 1; return 0; case 0xFFEE: if (i == GetCMDValueEx(25)) ConfirmPass = 1; //backdoor -_-||| return 0; } if (ConfirmPass == 0) CommandFail(0x1A); switch (Command_Value ) { case 0xF0FF: usb_time_set(); CSW_Residue=0; break; default: CommandFail(0x1A); break; } return 0; }
void VendorCmd_CallBack() { CommandFail(0x1A); //unsupport command }