|
|
怎么样知道硬盘上有哪几个分区或者指定的分区是在哪一个硬盘上 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
希望能得到这样的结果 磁盘 1 的分区 1 : C 磁盘 1 的分区 2 : D 磁盘 1 的分区 3 : E 磁盘 1 的分区 4 : F 磁盘 2 的分区 1 : G 磁盘 2 的分区 2 : I 磁盘 2 的分区 3 : J 磁盘 2 的分区 4 : K --------------------------------------------------------------- 就是这样了,GetVolumeInfo('C').DiskNumber结果就是所在的物理磁盘ID 需要JEDI的Win32支持库才能编译! function GetVolumeInfo(DriverLetter: Char): TDiskExtent; var hVolume: THandle; DiskExtents: PVolumeDiskExtents; dwOutBytes: Cardinal; begin with Result do begin DiskNumber := 0; StartingOffset.QuadPart := 0; ExtentLength.QuadPart := 0; end; hVolume := CreateFile(PChar('\\.\'+DriverLetter+':'), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0); if hVolume < 1 then Exit; DiskExtents := AllocMem(Max_Path); if DeviceIoControl(hVolume, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, nil, 0, DiskExtents, Max_Path, dwOutBytes, nil) then begin if DiskExtents^.NumberOfDiskExtents > 0 then Result := DiskExtents^.Extents[0]; end; FreeMem(DiskExtents); CloseHandle(hVolume); end; http://lysoft.7u7.net
|
|
相关文章:相关软件: |
|