if (CopyRoutine) //由于在上面并没有处理SET REPORT,所以这里为假 { pInformation->Ctrl_Info.Usb_wOffset = wOffset; pInformation->Ctrl_Info.CopyData = CopyRoutine; /* sb in the original the cast to word was directly */ /* now the cast is made step by step */ (*CopyRoutine)(0); Result = USB_SUCCESS; } else //那么就会调用下面的pProperty->Class_Data_Setup函数了, { Result = (*pProperty->Class_Data_Setup)(pInformation->USBbRequest); if (Result == USB_NOT_READY) { pInformation->ControlState = PAUSE; return; } }