#include <WINDOWS.H>
#include <TCHAR.H>
#include <IOSTREAM.H>
#define DD_TM_DETECTDISKSUCCESS 0
#define DD_TM_LACKPARAMETERERROR 1
#define DD_TM_GETHANDLEFAILERROR 2
#define DD_TM_GETDISKINFOFAILERROR 3
int _tmain(int argc,TCHAR **argv)
{
if (argc<2)
{
return DD_TM_LACKPARAMETERERROR ;
}
HANDLE hDevice = NULL ;
LPSTR lpDevicePath = NULL ;
BOOL bResult = FALSE;
STORAGE_DEVICE_NUMBER sdn;
DWORD dwReturned = 0 ;
lpDevicePath = (LPSTR)malloc(sizeof(TCHAR)*261);
wsprintf(lpDevicePath,TEXT("\\\\.\\PhysicalDrive%d"),argv[1][0]-TEXT('0'));
cout<<lpDevicePath<<endl;
hDevice = CreateFile(lpDevicePath,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED ,
hDevice);
if (hDevice==NULL)
{
cout<<"Getting Handle failed!"<<endl;