|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 18, 2003 14:04:38 Требуется написать программу под XP читающую/записывающую сектора на жестком диске. Ввиду того, что я уехал на каникулы и не взял с собой MSDN, теперь не могу определить размер диска. Может кто подскажет как это сделать? А то когда его открываешь как файл, функции GetFileSize и SetFilePointer(to end) возвращают 0ffffffffh, так как винт > 4 гигов. |
|
|
Дата: Июл 18, 2003 16:12:47
BOOL GetDiskFreeSpaceEx(
LPCTSTR lpDirectoryName, // pointer to directory name on disk of interest
PULARGE_INTEGER lpFreeBytesAvailableToCaller, // pointer to variable to receive free bytes on disk available to the caller
PULARGE_INTEGER lpTotalNumberOfBytes, // pointer to variable to receive number of bytes on disk
PULARGE_INTEGER lpTotalNumberOfFreeBytes // pointer to variable to receive free bytes on disk
);
lpDirectoryName Pointer to a null-terminated string that specifies a directory on the disk of interest. This string can be a UNC name. If lpDirectoryName is NULL, the GetDiskFreeSpaceEx function obtains information about the disk that contains the currect directory. Note that lpDirectoryName does not have to specify the root directory on a disk. The function accepts any directory on the disk. |
|
|
Дата: Июл 20, 2003 19:50:49 Black_mirror Ввиду того, что я уехал на каникулы и не взял с собой MSDN ... MSDN есть и на сайте msdn.microsoft.com :) |
|
|
Дата: Июл 24, 2003 08:07:10 Всем спасибо. Решение: SetFilePointerEx. |
|
|
Дата: Авг 4, 2003 14:44:29 Рано я обрадовался: SetFilePointerEx(..,FILE_END) для дисков не работает. Пришлось считать MBR, посмотреть где заканчиваются разделы, а дальше последовательным чтением считать сколько за ними секторов. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.034 |