Table 3.2. Storage Control Commands (cmd2=0x11)
| cmd1 | cmd3 | Argument(e.g.) | Response Length | Operation |
|---|---|---|---|---|
| 0x01 | 0x202 | 0x00000000 0x00001400 "DCIM\100CANON\IMG_0100.JPG" <NUL> | L | Get picture |
| 0x05 | 0x201 | "D:\DCIM" <NUL> | 0x5 | Make directory |
| 0x06 | 0x201 | "D:\DCIM" <NUL> | 0x54 | Delete directory |
| 0x09 | 0x201 | "D:\" <NUL> | 0x5c | Disk info request |
| 0x0A | 0x202 | none | L | Flash device identification |
| 0x0B | 0x202 | 0x01 "D:\DCIM"<NUL> <NUL> <NUL> | L | Get directory |
| 0x0D | 0x201 | "D:\DCIM\100CANON" <NUL> "IMG_0002.JPG" <NUL> | 0x54 | Delete file |
| 0x0E | 0x201 | 0x00000021 "D:\DCIM\100CANON" <NUL> "IMG_0002.JPG" <NUL> | 0x54 | Set file attributes |
| 0x0F | 0x201 | 0x00000021 "D:\DCIM\158CANON\AUT_0001.JPG" <NUL> <NUL> | 0x54 | Set file time |
Table 3.3. Camera Control Commands (cmd2=0x12)
| cmd1 | cmd3 | Argument(e.g.) | Response Length | Operation |
|---|---|---|---|---|
| 0x01 | 0x201 | none | 0x9c | Identify camera |
| 0x03 | 0x201 | none | 0x60 | Get time |
| 0x04 | 0x201 | 0x390873f0 0x00000000 | 0x54 | Set time |
| 0x05 | 0x201 | "Donald Duck" <NUL> | 0x54 | Change owner |
| 0x0A | 0x201 | none | 0x58 | Power supply status |
| 0x13 | 0x201 | varies | varies | Remote camera control |
| 0x17 | 0x202 | 0, 0x1400, 1, 0x2d011516 | L | Download Captured Image |
| 0x1A | 0x201 | 44 bytes | 0x80 | Unknown: EOS D30 only |
| 0x1B | 0x201 | 0x00000006 | 0x54 | EOS (D30/D60) Lock Keys |
| 0x1C | 0x201 | none | 0x54 | EOS (D30/D60) Unlock Keys |
| 0x1D | 0x201 | none | 0x58 | Get EOS Body ID |
| 0x1F | 0x201 | none | 0x384 | Get camera photo abilities |
| 0x20 | 0x201 | none | 0x54 | Lock keys, turn off LCD |
A length of L corresponds to a cmd3 of 0x202 and means that the program reads 0x40 from bulk in, checks for a word at position 0x06 for the length, and then reads the rest in 0x1400 buffers as described above.