如何在9X系统上判断分区属于哪块物理硬盘? 2000/XP 可以搞定。 |
尚未結案
|
Vicen
高階會員 發表:13 回覆:145 積分:151 註冊:2005-03-14 發送簡訊給我 |
用下面的函数可以在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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |