VC编程如何区分磁盘类型Q:编程如何区分是本地磁盘还是USB移动硬盘? 原地址:http://community.csdn.net/Expert/topic/4181/4181478.xml?temp=.3875696 Q:怎样识别硬盘是IDE的还是SCSI? 原地址:http://community.csdn.net/Expert/topic/4592/4592358.xml?temp=.8671839 Q:编程如何区分普通硬盘和USB硬盘? 原地址: Q:如何用编程获取CD-ROM的驱动器盘符 A: 以下是我今天刚在中回答的。 1、问:如何得到系统上已安装硬盘数量及每个硬盘的信息。 ??? 当前系统已安装硬盘在注册表中以下位置可以得到。 ??? 0,1,2,……对应的值表明第0/1/2块硬盘的硬件信息在注册表哪个位置存放(相对于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum) 如:我的系统上 ??? HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum下面 ??? Vendor ID在0/1的值中多少可以看出来一些,不过{zh0}还是去其指向的注册表位置中找。 2、如何枚举一块硬盘上的驱动器盘符。 ?? 答: ?????? 然后你可以用CreateFile,将卷名传入,打开这些卷,再用调用DeviceIoControl,使用IOCTL_DISK_GET_PARTITION_INFO_EX获得这个卷的分区信息。你需要获得所有卷的分区信息。 ?????? 接着,由1问中可以知道硬盘的序号,接着你用CreateFile打开#(#为磁盘序号,0, 1之类的),调用DeviceIoControl, 使用IOCTL_DISK_GET_DRIVE_LAYOUT_EX获得这个磁盘上所有分区的分区信息,跟前面得到的卷的分区信息比较可以得出这个磁盘有哪些卷。 ?????? {zh1},枚举系统中固定磁盘的盘符,用GetVolumeNameForVolumeMountPoint可以获得盘符对应的卷名,最终确定指定磁盘上分区的盘符。 ?? 当然也可以不用FindFirstVolume/FindNextVolume,直接用GetLogicalDrives取得所有固定磁盘驱动器的盘符,然后用CreateFile打开,再DeviceIoControl获得驱动器分区信息。再和物理磁盘的所有分区信息进行比较来确定物理磁盘上有哪些盘符 Q:如何在程序中获取系统中安装得硬盘个数! A: Comments |