• 大小: 6.09MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-14
  • 语言: 其他
  • 标签: 数据恢复  源码  

资源简介

数据恢复 源码 数据恢复 源码 数据恢复 源码 数据恢复 源码 数据恢复 源码

资源截图

代码片段和文件信息

#include “commen.h“
#include “healthInfo.h“
#include “theDataRecoveryHead.h“


//////////////////////////////////////////////////////////////////////////
//获取逻辑驱动器信息 
 BOOL GetLogicalDriveInfo(LOGICALDRIVEINFO *logicalDriveInfochar logicalDriveNumberint phyDriveNumber)
{
HANDLE hDrive;
char path[128];
STORAGE_DEVICE_NUMBER number;   //use this to get disk numbers
DWORD readed;                   // discard results

sprintf_s(path“\\\\.\\%c:“logicalDriveNumber);
hDrive=CreateFile(pathGENERIC_READ | GENERIC_WRITEFILE_SHARE_READ | FILE_SHARE_WRITE NULLOPEN_EXISTING0NULL);
if (hDrive == INVALID_HANDLE_VALUE) // cannot open the drive
{
CloseHandle(hDrive);
return FALSE;
}
if (DeviceIoControl(hDriveIOCTL_STORAGE_GET_DEVICE_NUMBERNULL0&numbersizeof(number)&readedNULL))
{
//如果不同一个磁盘,则返回FALSE
if ((number.DeviceNumber!=phyDriveNumber) || phyDriveNumber<0)
{
CloseHandle(hDrive);
return FALSE;
}
}
//OK有这个物理驱动器,而且属于同一个磁盘开始获取逻辑驱动器信息
logicalDriveInfo->szDrive=logicalDriveNumber;
//获取驱动器类型
sprintf_s(path“%c:\\“logicalDriveNumber);
logicalDriveInfo->uDriveType=GetDriveType(path);
//使用GetVolumeInformation获取
if(!GetVolumeInformation(
path
logicalDriveInfo->szDriveName
sizeof(logicalDriveInfo->szDriveName)
&logicalDriveInfo->dwSerialNumber
&logicalDriveInfo->dwMaximumComponentLength
&logicalDriveInfo->dwFileSystemFlags
logicalDriveInfo->dwFileSystem
sizeof(logicalDriveInfo->dwFileSystem)
))
{
CloseHandle(hDrive);
return FALSE;
}
//使用GetDiskFreeSpace获取信息
if (!GetDiskFreeSpace(
path
&logicalDriveInfo->dwSectorsPerCluster
&logicalDriveInfo->dwBytesPerSector
&logicalDriveInfo->dwNumberOfFreeCluters
&logicalDriveInfo->dwTotalNumberOfClusters
))
{
CloseHandle(hDrive);
return FALSE;
}
CloseHandle(hDrive);
return TRUE;
}




//////////////////////////////////////////////////////////////////////////
//读取物理驱动器信息,简短的
 //使用DeviceIoControl获取硬件信息步骤:根据控制码(第二个参数),填充好输入
 //参数,然后再定义输出参数,从输出参数里取信息,这些参数一般是结构体的。
BOOL GetPhysicalDriveInfoShort (PHYDRIVEINFOSHORT *pThePhyDriveInfoint iDrive)
{
HANDLE hPhysicalDriveIOCTL = 0;
BOOL OK=FALSE;

TCHAR driveName [32];

_stprintf_s(driveName_T(“\\\\.\\PhysicalDrive%d“)iDrive);

// 打开设备,获得物理磁盘句柄
hPhysicalDriveIOCTL = CreateFile (driveName 0FILE_SHARE_READ | FILE_SHARE_WRITE NULLOPEN_EXISTING 0 NULL);

if (hPhysicalDriveIOCTL != INVALID_HANDLE_VALUE)
{
STORAGE_PROPERTY_QUERY query;
DWORD cbBytesReturned = 0;
char buffer [10000];

memset ((void *) & query 0 sizeof (query));
query.PropertyId = StorageDeviceProperty;
query.QueryType = PropertyStandardQuery;

memset (buffer 0 sizeof (buffer));

if ( DeviceIoControl (hPhysicalDriveIOCTL IOCTL_STORAGE_QUERY_PROPERTY& querysizeof (query)& buffersizeof (buffer)& cbBytesReturned NULL) )
{    
STORAGE_DEVICE_DEscriptOR * descrip = (

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-01-08 15:42  dataRecovery\
     目录           0  2018-01-08 15:32  dataRecovery\Src\
     目录           0  2018-01-08 15:32  dataRecovery\Src\Debug\
     文件       96256  2014-06-09 15:53  dataRecovery\Src\Debug\Robam Data Recovery.exe
     文件      920576  2014-06-09 15:53  dataRecovery\Src\Debug\Robam Data Recovery.pdb
     目录           0  2018-01-08 15:32  dataRecovery\Src\Release\
     文件       60928  2012-05-22 17:06  dataRecovery\Src\Release\Robam Data Recovery.exe
     文件      437248  2012-05-22 17:06  dataRecovery\Src\Release\Robam Data Recovery.pdb
     目录           0  2018-01-08 15:32  dataRecovery\Src\TheGood\
     目录           0  2018-01-08 15:32  dataRecovery\Src\TheGood\Debug\
     文件       23944  2014-06-09 15:53  dataRecovery\Src\TheGood\Debug\BuildLog.htm
     文件         937  2014-05-15 08:45  dataRecovery\Src\TheGood\Debug\Robam Data Recovery.exe.embed.manifest
     文件        1004  2014-05-15 08:45  dataRecovery\Src\TheGood\Debug\Robam Data Recovery.exe.embed.manifest.res
     文件         873  2014-06-09 15:53  dataRecovery\Src\TheGood\Debug\Robam Data Recovery.exe.intermediate.manifest
     文件         663  2012-03-02 14:19  dataRecovery\Src\TheGood\Debug\TheGood.exe.embed.manifest
     文件         728  2012-03-02 14:19  dataRecovery\Src\TheGood\Debug\TheGood.exe.embed.manifest.res
     文件         621  2012-03-05 23:11  dataRecovery\Src\TheGood\Debug\TheGood.exe.intermediate.manifest
     文件       10460  2014-05-19 15:20  dataRecovery\Src\TheGood\Debug\TheGood.res
     文件      159061  2014-05-19 15:20  dataRecovery\Src\TheGood\Debug\commen.obj
     文件      170351  2014-06-09 15:53  dataRecovery\Src\TheGood\Debug\main.obj
     文件          65  2014-06-09 15:53  dataRecovery\Src\TheGood\Debug\mt.dep
     文件      592896  2014-06-09 15:53  dataRecovery\Src\TheGood\Debug\vc90.idb
     文件      462848  2014-06-09 15:53  dataRecovery\Src\TheGood\Debug\vc90.pdb
     目录           0  2018-01-08 15:32  dataRecovery\Src\TheGood\PIC\
     文件         824  2012-03-16 12:05  dataRecovery\Src\TheGood\PIC\301.bmp
     文件        3444  2012-03-16 12:01  dataRecovery\Src\TheGood\PIC\301.png
     文件         824  2012-03-16 12:05  dataRecovery\Src\TheGood\PIC\302.bmp
     文件        3390  2012-03-16 12:01  dataRecovery\Src\TheGood\PIC\302.png
     文件         824  2012-03-16 12:05  dataRecovery\Src\TheGood\PIC\617.bmp
     文件        3571  2012-04-08 14:10  dataRecovery\Src\TheGood\PIC\617.png
     文件        1150  2012-04-08 14:17  dataRecovery\Src\TheGood\PIC\favicon.ico
............此处省略24个文件信息

评论

共有 条评论