# SCSI START/STOP and readiness polling

This build adds both sides of the START STOP UNIT workflow:

- `StopDriveUnit()` sends `1B 00 00 00 00 00` after a successful dump to request normal spin-down without ejecting.
- `TestUnitReady()` sends TEST UNIT READY (`00 00 00 00 00 00`) as the host-visible readiness poll.
- `StartDriveUnit()` sends `1B 00 00 00 01 00` to request spin-up/start without ejecting/loading.
- `EnsureDriveReady()` polls TEST UNIT READY and sends START UNIT once if the drive is not ready.

Normal dump flow now calls `EnsureDriveReady()` before authentication/dumping and after tray-close/media-change points. This protects the next run after a prior STOP UNIT spin-down.

Manual commands:

```powershell
unlockdrive.exe E /ready   # poll and start if needed
unlockdrive.exe E /start   # send START UNIT, then poll ready
unlockdrive.exe E /stop    # send STOP UNIT / spin-down
```

Notes:

- Normal host software does not expose a reliable literal spindle-speed bit for every optical drive.
- TEST UNIT READY is used as the practical readiness/spin-up proxy.
- If readiness polling times out, the tool warns and continues only where the old code would have continued after a fixed delay.
