I ran into the same error (21) as well. I figured out by unchecking "Start iTunes when device is connected" will relieve that error code. I then followed the steps in this: [ame="http://www.youtube.com/user/EverythingApplePro?feature=sub_widget_1#p/u/12/COtFG0WsLcs"]video[/ame] I downloaded the software, followed all steps.
Here's what I'm running:
Windows 7 Ultimate x64.
iTunes 10.2.2.14
Sn0wbreeze (2.7.1) (40.3mb) in Windows XP (service pack 3) Compatibility Mode (and also selected "Run as Administrator")
iPhone3,3_4.2.8_8E401_Restore.IPSW (652mb)
Windows Firewall is OFF as in completely OFF
No antivirus apps are running or installed.
The above files I downloaded via the links provided in the above mentioned video. I created my cooked sn0wbreeze_iPhone 4-4.2.8.ipsw file. I then plugged in device, iTunes fired up stating it detected device in recovery mode and needs to be restored.
I then clicked on "OK" to accept message, I then held down SHIFT key and clicked on RESTORE, I then selected my sn0wbreeze_iPhone 4-4.2.8.ipsw cooked file. iTunes then started the "Preparing for restore" process, within about 2 minutes I received error code 1600.
I then disconnect the iPhone and connected it into the back of my computer (originally had it plugged into front USB) thinking that perhaps this was the issue. I then put the iPhone back into DFU mode, iTunes launched (like before) and I then repeated the same steps, holding down SHIFT and clicking RESTORE, selected my cooked file, iTunes then stated "Preparing for restore" and it failed with error code 1601.
At this point in time I just restored back to normal, all is good, device is functioning but not jailbroken. If someone can perhaps shed some light as to what I could be doing wrong, please let me know as I would like to try this again, later tonight.