【 tulaoshi.com - 编程语言 】
                             
                            希望能得到这样的结果     
  磁盘  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;