枚举当前系统中硬盘的方法(1)

枚举的结果是 "\\.\PhysicalDriveX"这样的形式。

需要注意的是:程序必须在 Administrator 权限下运行。即运行时,要求 "Run as Administrator"。同样在VS2008中编译时,由于权限不够,可能无法看到运行结果。本程序使用的是最传统的方法,使用CreateFile尝试不同的 PhysicalDirve+Number如果能够打开就是存在的。

#include "stdafx.h"
#include   <windows.h>   
#include   <stdio.h>   
#include   <conio.h> 

int _tmain(int argc, _TCHAR* argv[])
{
	int    i;
	TCHAR  Device[0x20];
	HANDLE hDevice;

	for (i=0;i<10;i++)

	{
		wsprintf(Device,TEXT("\\\\.\\PhysicalDrive%d"), i);
		
		hDevice = CreateFile(Device, 
						GENERIC_READ,
						FILE_SHARE_READ, 
						NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL);

		if (hDevice!=INVALID_HANDLE_VALUE) {printf("%ws \n",Device); }
		CloseHandle( hDevice );   
	}



	_getch(); 
	return 0;
}

 

phylist1

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注