線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1095
推到 Plurk!
推到 Facebook!

如何在9X系统上判断分区属于哪块物理硬盘? 2000/XP 可以搞定。

尚未結案
Vicen
高階會員


發表:13
回覆:145
積分:151
註冊:2005-03-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-28 11:08:12 IP:221.226.xxx.xxx 未訂閱
用下面的函数可以在NT平台下获知分区属于哪块物理硬盘,但9X系统下怎么做? 有没有9X和NT平台通用的方法~    
function MyGetVolumeInfo(DriverLetter : String): TDiskExtent;
Var
  hVolume : THandle;
  DiskExtents : PVolumeDiskExtents;
  dwOutBytes : Cardinal;
  DrvLetter : Char;
begin
  try
    DrvLetter := PChar(UpperCase(DriverLetter))[0];
    With Result do
    begin
      DiskNumber := 0;
      StartingOffset.QuadPart := 0;
      ExtentLength.QuadPart := 0;
    end;
    hVolume := CreateFile(PChar('\\.\' DrvLetter ':'),
                          GENERIC_READ Or GENERIC_WRITE,
                          FILE_SHARE_READ Or FILE_SHARE_WRITE,
                          Nil,
                          OPEN_EXISTING,
                          0,
                          0);
    if hVolume = INVALID_HANDLE_VALUE 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;
  finally
    FreeMem(DiskExtents);
    CloseHandle(hVolume);
  end;
end;
Vicen
高階會員


發表:13
回覆:145
積分:151
註冊:2005-03-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-30 20:37:53 IP:221.226.xxx.xxx 未訂閱
唉~~~ 没有回答啊~
系統時間:2024-05-08 7:36:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!