The USB specification defines the following commands as requests that can be performed by using Endpoint 0. In addition to the following, there are also Class requests defined for each USB Class, and Vendor requests defined by the device vendor.
|Get_Status||Device, Endpoint||Device:Self-Powered and Remote Wakeup Read, Endpoint:Halt Read.|
|Clear_Feature||Device, Endpoint||Device:Clears Remote Wakeup status, Endpoint:clears Halt status (DATA PID=0)|
|Set_Feature||Device, Endpoint||Device:Remote Wakeup or Test mode Setting, Endpoint:Halt Setting|
|Get_Descriptor||Device, Config., String, Device_qualifier, Other_speed_Config.||Reads target Descriptor|
|Set_Descriptor||Device, Config., String||Sets target Descriptor (Optional command)|
|Get_Configuration||Device||Reads current Configuration values|
|Set_Configuration||Device||Sets Configuration values|
|Get_Interface||Interface||Reads current Alternative Setting values for target Interface|
|Set_Interface||Interface||Sets Alternative Setting values for target Interface|
|Set_Address||Device||Sets USB address|
|Synch_Frame||Endpoint||Reads frame synchronization data|
No standard request commands were added in USB 2.0. However, the Get_Descriptor command has been expanded with Device_qualifier and Other_speed_configuration for ensuring maximum performance when a chirp handshake fails for a high-Speed capable device, and Set_Feature TEST_MODE has been added to check the features of a USB 2.0 transceiver.