xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 1004KB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2023-08-28
  • 語言: C/C++
  • 標簽: c++??硬盤信息??harddisk??

資源簡介

本項目采用vs2010開發(fā),目的是獲取本地硬盤的個數(shù),硬盤容量,硬盤上的分區(qū), 以及分區(qū)的大小和名稱

資源截圖

代碼片段和文件信息

//?MY_Get_Disk_Info.cpp?:?定義控制臺應(yīng)用程序的入口點。
/************************************************************************/
/*???本項目用來獲取本機上本地硬盤個數(shù),以及容量(名稱可以枚舉設(shè)備樹獲得),
?每一塊硬盤上的分區(qū),以及分區(qū)名稱及容量。
?當(dāng)時將硬盤和分區(qū)對應(yīng)時著實花了一些時間。
---by?za
/************************************************************************/


#include?“stdafx.h“
#include?


BOOL IsPartitionOfDisk(int nDiskNum char* strDrive)
{
char cstrDrive[20] =?{0};
HANDLE hPartition =?NULL;
STORAGE_DEVICE_NUMBER storage_device_number;
DWORD dwBytesReturned =?0;
BOOL blErr =?FALSE;
BOOL blPartitionOfDisk =?FALSE;
char strDriveTemp[3] =?{0};
strncpy(strDriveTemp strDrive 2);
sprintf(cstrDrive “\\\\.\\%s“ strDriveTemp);

hPartition = ::CreateFile(
cstrDrive
GENERIC_READ?|?GENERIC_WRITE
FILE_SHARE_READ?|?FILE_SHARE_WRITE
NULLOPEN_EXISTING
FILE_ATTRIBUTE_NORMAL
NULL
);

if?(INVALID_HANDLE_VALUE == hPartition)
{
//打印dbglog日志?打開卷失敗
goto?__exit;
}

blErr = ::DeviceIoControl(
hPartition
IOCTL_STORAGE_GET_DEVICE_NUMBER
NULL
0
&storage_device_number
sizeof(storage_device_number)
&dwBytesReturned
(LPOVERLAPPED)NULL
);

if?(FALSE == blErr || storage_device_number.PartitionNumber?==?-1)
{
//打印dbglog?獲取devicenumer失敗
goto?__exit;
}
if?(nDiskNum == storage_device_number.DeviceNumber)
{
blPartitionOfDisk = TRUE;
}
__exit:
return?blPartitionOfDisk;
}


DWORD GetPartitionSize(char* DirectoryName)
{
ULARGE_INTEGER ulFreeBytesAvailable =?{0};
ULARGE_INTEGER ulTotalNumberOfBytes =?{0};
ULARGE_INTEGER ulTotalNumberOfFreeBytes =?{0};
BOOL blErr =?FALSE;
DWORD dwPartitionSize =?0;

blErr = GetDiskFreeSpaceEx(DirectoryName &ulFreeBytesAvailable &ulTotalNumberOfBytes &ulTotalNumberOfFreeBytes);

if?(FALSE == blErr)
{
//打印dbglog日志?獲取分區(qū)大小失敗
goto?__exit;
}

dwPartitionSize = ulTotalNumberOfBytes.QuadPart/(1024*1024*1024);
__exit:
return dwPartitionSize;
}

void GetPartitionsInfoOfDisk(int nDiskNum char* strDrives)
{
char strDriveTem[4] =?{0};
DWORD dwPartitionSize[10] =?{0};
int nPartitionCount =?0;
BOOL blErr =?FALSE;

strcpy(strDriveTem strDrives);
while?(NULL != *strDrives)
{
blErr = IsPartitionOfDisk(nDiskNum strDriveTem);
if?(TRUE == blErr)
{
dwPartitionSize[nPartitionCount] = GetPartitionSize(strDriveTem);
printf(“PartitionName:%s PartitionSize:?%d\n“ strDriveTem dwPartitionSize[nPartitionCount]);
nPartitionCount++;
}
strDrives += 4;
strcpy(strDriveTem strDrives);
}
return;
}

BOOL GetAllLogicalPartitions(char* strDrives int nSize)
{
BOOL blErr =?FALSE;
if?(0?==?::GetLogicalDriveStrings(?nSize?strDrives)?)
{
//打印dbglog日志?獲得邏輯驅(qū)動

評論

共有 條評論