This is dd for windows. you use it as a 32-bit app (not from a floppy as a 16-bit app)
http://www.chrysocome.net/dd

I put this on a bootable cd (like winpe).

Use an explorer (like Explorer++.exe) where you can open a command window that opens in the
folder you are currently in.

dd --list will give you a list of all drives.
dd --list 2> output.txt will give the output of dd --list in a textfile.

The output looks like this :

------------------------------------------------------------------------------
\\.\Volume{2ef78b13-c52f-11d9-b975-806d6172696f}\
  link to \\?\Device\HarddiskVolume1
  fixed media
  Mounted on \\.\c:

\\.\Volume{2ef78b14-c52f-11d9-b975-806d6172696f}\
  link to \\?\Device\HarddiskVolume2
  fixed media
  Not mounted

\\.\Volume{f7ae1b34-f12e-11d9-b80e-806d6172696f}\
  link to \\?\Device\HarddiskVolume3
  fixed media
  Not mounted

\\.\Volume{2ef78b17-c52f-11d9-b975-806d6172696f}\
  link to \\?\Device\HarddiskVolume4
  fixed media
  Mounted on \\.\g:

\\.\Volume{2a9f2a6b-b06b-11db-b229-005056c00008}\
  link to \\?\Device\HarddiskVolume5
  fixed media
  Mounted on \\.\d:

\\.\Volume{8a49b7be-0331-11da-a84a-806d6172696f}\
  link to \\?\Device\HarddiskVolume6
  fixed media
  Mounted on \\.\h:

\\.\Volume{a8e0f9cf-9b53-11db-b1ee-005056c00008}\
  link to \\?\Device\HarddiskVolume7
  fixed media
  Mounted on \\.\m:

\\.\Volume{a8e0f9d0-9b53-11db-b1ee-005056c00008}\
  link to \\?\Device\HarddiskVolume8
  fixed media
  Mounted on \\.\n:

\\.\Volume{37f1ff90-7b9d-11db-9d86-806d6172696f}\
  link to \\?\Device\CdRom0
  CD-ROM
  Mounted on \\.\o:

\\.\Volume{83f50f63-9f08-11da-828e-806d6172696f}\
  link to \\?\Device\CdRom1
  CD-ROM
  Mounted on \\.\p:

\\.\Volume{2ef78b10-c52f-11d9-b975-806d6172696f}\
  link to \\?\Device\Floppy0
  removeable media
  Mounted on \\.\a:

\\.\Volume{65fc84e6-940e-11db-9dbc-005056c00008}\
  link to \\?\Device\CdRom2
  CD-ROM
  Mounted on \\.\i:

\\.\Volume{065af67c-f2e5-11d9-b811-000c6e035dad}\
  link to \\?\Device\Harddisk2\DP(1)0-0+b
  removeable media
  Mounted on \\.\f:


NT Block Device Objects
\\?\Device\CdRom0
\\?\Device\CdRom1
\\?\Device\CdRom2
\\?\Device\Floppy0
\\?\Device\Harddisk0\Partition0
  link to \\?\Device\Harddisk0\DR0
  Fixed hard disk media. Block size = 512
  size is 163928604672 bytes
\\?\Device\Harddisk0\Partition1
  link to \\?\Device\HarddiskVolume1
  Fixed hard disk media. Block size = 512
  size is 20020299264 bytes
\\?\Device\Harddisk0\Partition2
  link to \\?\Device\HarddiskVolume2
  Fixed hard disk media. Block size = 512
  size is 13612838400 bytes
\\?\Device\Harddisk0\Partition3
  link to \\?\Device\HarddiskVolume3
  Fixed hard disk media. Block size = 512
  size is 6292339200 bytes
\\?\Device\Harddisk0\Partition4
  link to \\?\Device\HarddiskVolume4
\\?\Device\Harddisk0\Partition5
  link to \\?\Device\HarddiskVolume5
\\?\Device\Harddisk0\Partition6
  link to \\?\Device\HarddiskVolume6
\\?\Device\Harddisk1\Partition0
  link to \\?\Device\Harddisk1\DR1
  Fixed hard disk media. Block size = 512
  size is 81964302336 bytes
\\?\Device\Harddisk1\Partition1
  link to \\?\Device\HarddiskVolume7
\\?\Device\Harddisk1\Partition2
  link to \\?\Device\HarddiskVolume8
\\?\Device\Harddisk2\Partition0
  link to \\?\Device\Harddisk2\DR10
  Removable media other than floppy. Block size = 512
  size is 524288000 bytes
\\?\Device\Harddisk2\Partition1
  link to \\?\Device\Harddisk2\DP(1)0-0+b
  Removable media other than floppy. Block size = 512
  size is 524288000 bytes

Virtual input devices
 /dev/zero   (null data)
 /dev/random (pseudo-random data)
 -           (standard input)

Virtual output devices
 -           (standard output)
-------------------------------------------------------------------------------------------

    
When the end of a line is Partition0, we're talking of the whole physical disk.
I always image whole drives, because this always guarantees success.
(\\?\Device\Harddisk2\Partition0)

As dd copies every bit of the hard disk, be prepared to face 4 to 6 hours for making an image of a 160 gb-disk. 

I used to use True Image and Ghost, but dd never failed me once.

So, whenever I want to image an internal drive to an external one (linked via atapi-usb), (which must be of equal size or bigger, and NTFS-formatted in windows 2000, or windows xp), I make sure that I recognize the drives by their size. IDENTIFYING YOUR DRIVES is THE KEY.
One wrong move, and you have overwritten your 149 gb internal slave drive with an image
of a 1 gb usb-stick, rendering your 149 gb drive useless, which I sadly have to admit I did once.The nickname of dd.exe is DATA DESTROYER

The command to image a internal drive (\\?\Device\Harddisk0\Partition0) to an
external one (which might be Harddisk2\ , but be very careful you choose the right drive) :

dd if=\\?\Device\Harddisk0\Partition0 of=n:\drive0\disk.img bs=1M --size --progress
A blocksize (bs) of 4M will speed up the copy process.
You'll see how much is copied.

In the above example, Harddisk2 has the drive letter n:
I use this for easier understanding.

dd if=    (this means "dd.exe input file=")


dd of=    (this means "dd.exe output file=")

When we want to put the image back to the original hard disk, or to a bigger hard disk,
we first fill this drive with zeroes (you'll need to use Hiren's boot cd, because this
has the zero-fill tools of all the hard drive manufacturers), so we can image to a
clean disk, that has no MBR, no partitions.
The command we use is :
dd if=n:\drive0\disk.img of=\\?\Device\Harddisk0\Partition0 bs=1M --size --progress
(or you use a bs of 4M to speed up the copy process)


You can use this same program to make an image of a usb thumb-drive within Windows (without
booting from a boot-cd)
If your thumb-drive is Harddisk2\Partition0, we make the image with :
dd if=\\?\Device\Harddisk2\Partition0 of=c:\usb\usbstick.img bs=1M --size --progress

write the image back to the usb-stick with :
dd if=c:\usb\usbstick.img of=\\?\Device\Harddisk2\Partition0 bs=1M --size --progress















