Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];

Вниз

Временный запрет доступа всех процессов к HDD   Найти похожие ветки 

 
AndreyRus   (2006-01-12 22:39) [0]

Здравствуйте!
Как временно ограничить доступ всех процессов на системный раздел жесткого диска?


 
AndreyRus   (2006-01-13 02:08) [1]

Под ограничением доступа имеется ввиду запрет записи и чтения секторов HDD.


 
Arazel ©   (2006-01-13 05:27) [2]

AndreyRus   (13.01.06 02:08) [1]

В любом BootSector(e) есть в конце два байта(Сигнатура)
замени их и раздел не будед виден! И ещё можно изменить
в BootSector(e) количество секторов! Тогда уж точно не получится
не записать/ прочитать!
А также на запись это ф-ций ATA такими ф-цими обычно пользуется
BIOS!


 
Rouse_ ©   (2006-01-13 10:00) [3]

Для всех? И что после этого будет?


 
Игорь Шевченко ©   (2006-01-13 10:22) [4]


> Для всех? И что после этого будет?


Очевидно будет режим readonly


 
Deka ©   (2006-01-13 11:45) [5]

Readonly не будет, а будет наверное полный ступор системы... У меня как-то на диске сбойные секторы были и при обращении к нему вся система висла и висела до тех пор, пока винт не выходил из "дайна" своих внутренних попыток что-нить прочесть из заданной области. Потом система растормаживалась и все работало до следующего обращения к такому хитрому сектору. А тут еще и раздел системный.
А вообще для чего сей изврат?


 
umbra ©   (2006-01-13 11:48) [6]

результатом такого действия может быть только глухой завис. и зачем это надо?


 
Rouse_ ©   (2006-01-13 11:59) [7]

Скорее BSOD :)


 
umbra ©   (2006-01-13 12:06) [8]

ну да. все равно хрен редьки не слаще :)


 
vrem   (2006-01-13 14:49) [9]

Системный раздел может быть в оперативной памяти. Вопрос в определённой операции с отдельным устройством, с "системным" автор погорячился, имхо, попробовав раз изменил бы мнение.


 
Arazel ©   (2006-01-13 15:56) [10]

AndreyRus   (12.01.06 22:39)  
И ещё один совет: Обратись к автору программы DiskMon
думаю он тебе подскажет что делать :)


 
AndreyRus   (2006-01-13 20:40) [11]

Речь идет именно о системном разделе, т.к. в противном случае это можно сделать так:

1. DeviceIoControl(hDevice, FSCTL_LOCK_VOLUME...
2. Work...
3. DeviceIoControl(hDevice, FSCTL_UNLOCK_VOLUME...


А нужно это для точного измерения скоростных характеристик жесткого диска.


 
Игорь Шевченко ©   (2006-01-13 22:52) [12]


> Речь идет именно о системном разделе, т.к. в противном случае
> это можно сделать так:
>
> 1. DeviceIoControl(hDevice, FSCTL_LOCK_VOLUME...
> 2. Work...
> 3. DeviceIoControl(hDevice, FSCTL_UNLOCK_VOLUME...
>
> А нужно это для точного измерения скоростных характеристик
> жесткого диска.


Если не секрет, а как ты своппинг запретишь ?


 
tesseract ©   (2006-01-13 23:18) [13]


> Если не секрет, а как ты своппинг запретишь ?

да и не помешает рассказать, как hDevice получить.
Теоретически можно так сделать, если успеешь до подзагрузки странички из Swap-файла.


 
AndreyRus   (2006-01-14 04:39) [14]


> Если не секрет, а как ты своппинг запретишь?

В том-то и дело, OS не разрешает эксклюзивную блокировку раздела при наличии на нем открытых файлов.

> да и не помешает рассказать, как hDevice получить.

hDevice:= CreateFile ("\\.\C:"...


 
Deka ©   (2006-01-14 11:03) [15]

Значит если получится избавиться от всех открытых файлов в системном разделе сможешь его блокировать? Что-то мне подсказывает, что свой системный раздел веник так легко не сдаст. Может перефразировать вопрос в "Как гарантировать обращение только моей программы к жесткому диску для измерения скорости/производительности?". IMHO надо писать драйвер устройства. Даже не драйвер, а то что встанет между реальным драйвером и системой. Как-то такой режим у драйверов называется, когда они могут в цепочки выстраиваться и запросы последовательно обрабатывать.


 
tesseract ©   (2006-01-14 12:45) [16]


> Даже не драйвер, а то что встанет между реальным драйвером
> и системой.


Драйвер - фильтр
Но оно тебе надо?
Точную статистику производительности ЖД можно получить только из однозадачной ОС.


> hDevice:= CreateFile ("\\.\C:"...


Это доступ к разделу, а не к жёсткому диску.


 
VirEx ©   (2006-01-14 14:09) [17]

надо видимо CreateFile( PChar("\\.\PhysicalDrive"+s)


 
AndreyRus   (2006-01-15 05:59) [18]


> Точную статистику производительности ЖД можно получить только
> из однозадачной ОС.

Либо сделав ее однозадачной, хотя бы в отношении жесткого диска.


 
Игорь Шевченко ©   (2006-01-16 11:43) [19]

AndreyRus   (15.01.06 05:59) [18]

Обычно тесты производительности диска запускаются из-под ДОСа или его аналогов. В противном случае тестируется производительность системного кэша и прочих там...драйверов файловой системы


 
VirEx ©   (2006-01-16 18:26) [20]

Exclusive Volume Locking Reference

The following functions can be used to manage exclusive volume locking.

Lock Logical Volume Interrupt 21h Function 440Dh Minor Code 4Ah
Lock Physical Volume Interrupt 21h Function 440Dh Minor Code 4Bh
Unlock Logical Volume Interrupt 21h Function 440Dh Minor Code 6Ah
Unlock Physical Volume Interrupt 21h Function 440Dh Minor Code 6Bh
Get Lock Flag State Interrupt 21h Function 440Dh Minor Code 6Ch
Enumerate Open Files Interrupt 21h Function 440Dh Minor Code 6Dh
Find Swap File Interrupt 21h Function 440Dh Minor Code 6Eh
Get Current Lock State Interrupt 21h Function 440Dh Minor Code 70h
Reset Drive Interrupt 21h Function 710Dh


The exclusive-volume locking IOCTL functions are similar to other MS-DOS functions. An application must copy function parameters to registers and issue an Interrupt 21h instruction to carry out the call.

Locks the logical volume.  

mov ax, 440Dh        ; generic IOCTL
mov bh, LockLevel    ; Level of the lock. This parameter must be either 0, 1, 2, or 3.
mov bl, DriveNum     ; Drive to lock. This parameter can be 0 for the default drive, 1 for A, 2 for B, and so on.
mov ch, 08h          ; device category (must be 08h)
mov cl, 4Ah          ; Lock Logical Volume
mov dx, Permissions  ;
{Permissions:
Bit Meaning
0 0 = Write operations are failed (specified when a level 1 lock is obtained).
0 1 = Write operations are allowed (specified when a level 1 lock is obtained).
1 0 = New file mapping are allowed (specified when a level 1 lock is obtained).
1 1 = New file mapping are failed (specified when a level 1 lock is obtained).
2 1 = The volume is locked for formatting (specified when a level 0 lock is obtained for the second time).
}
int 21h

jc error


Unlocks the logical volume or decrements the lock level.

mov ax, 440Dh      ; generic IOCTL
mov bl, DriveNum   ; see below
mov ch, 08h        ; device category (must be 08h)
mov cl, 6Ah        ; Unlock Logical Volume
int 21h

jc error


Locks the physical volume.

mov ax, 440Dh        ; generic IOCTL
mov bh, LockLevel    ; Level of the lock. This parameter must be either 0, 1, 2, or 3.
mov bl, DriveNum     ;
{Drive to lock. This parameter must be one of these values (same device unit numbers as for Interrupt 13h):
00 - 7Fh Floppy disk drive (00 for the first floppy drive, 01 for the second, and so on).
80 - FFh Hard disk drive (80 for the first hard disk drive, 81 for the second, and so on).
}
mov ch, 08h          ; device category (must be 08h)
mov cl, 4Bh          ; Lock Physical Volume
mov dx, Permissions  ;
{
Bit Meaning
0 0 = Write operations are failed (specified when a level 1 lock is obtained).
0 1 = Write operations are allowed (specified when a level 1 lock is obtained).
1 0 = New file mapping are allowed (specified when a level 1 lock is obtained).
1 1 = New file mapping are failed (specified when a level 1 lock is obtained).
2 1 = The volume is locked for formatting (specified when a level 0 lock is obtained for the second time).
}
int 21h

jc error


Unlocks the physical volume or decrements the lock level.

mov ax, 440Dh      ; generic IOCTL
mov bl, DriveNum   ;
{
Drive to unlock. This parameter must be one of these values (same device unit numbers as for Interrupt 13h):



00 - 7Fh Floppy disk drive (00 for the first floppy drive, 01 for the second, and so on).
80 - FFh Hard disk drive (80 for the first hard disk drive, 81 for the second, and so on).
}
mov ch, 08h        ; device category (must be 08h)
mov cl, 6Bh        ; Unlock Physical Volume
int 21h

jc enter


 
Игорь Шевченко ©   (2006-01-16 18:30) [21]

VirEx ©   (16.01.06 18:26) [20]

Мимо.


 
VirEx ©   (2006-01-16 18:33) [22]


>  [21] Игорь Шевченко ©   (16.01.06 18:30)

? хм.. а разве не Locks the logical volume?


 
Игорь Шевченко ©   (2006-01-16 18:34) [23]

VirEx ©   (16.01.06 18:33) [22]

Вроде MS-DOS здесь не причем, разве нет ?


 
VirEx ©   (2006-01-16 18:48) [24]


>  [23] Игорь Шевченко ©   (16.01.06 18:34)

а попробовать не судба?


 
баклан   (2006-01-16 18:50) [25]

Удалено модератором


 
tesseract ©   (2006-01-16 18:58) [26]


> вы меня улыбаете ) все больше на морской бой похоже )"мимо"
> / "попал" =) один интересуется всем и вся, пытается помочь
> чем может (даже не программер вроде) и часто бывает в промахе,
>  второй тут как тут всегда пояснит в чем промах ) эх...
> ну погоди, блин )

Такой он delphimaster :-)

To >>VirEx
В Windows вы даже не можете выяснить сколько драйверы процессора жруть.Нереально. А производительность IDE дисков зависит на 90% от процессора и систем кэширования. Один может показывать больше при работе с NTFS другой с FAT32 третий с RaiserFS.

Вообще производительность HD сейчас больше зависит от версии прошивки.


 
VirEx ©   (2006-01-16 19:04) [27]


>  [26] tesseract ©   (16.01.06 18:58)
> To >>VirEx
> В Windows вы даже не можете выяснить сколько драйверы процессора
> жруть
.Нереально. А производительность IDE дисков зависит
> на 90% от процессора и систем кэширования. Один может показывать
> больше при работе с NTFS другой с FAT32 третий с RaiserFS.
>
>
> Вообще производительность HD сейчас больше зависит от версии
> прошивки.

ты это о чем?)  я об этом говорил?


 
tesseract ©   (2006-01-16 19:20) [28]

Тоже не по теме Ж-)


 
AndreyRus   (2006-01-16 21:54) [29]

> Производительность IDE дисков зависит на 90% от процессора

При использовании режима Ultra DMA - X  загрузка центрального процессора стремиться к нулю.

На мой взгляд есть три решения:

1. Драйвер-фильтр.
2. Поиск малодокументированной функции MS Windows позволяющей получить результат темы.


 
tesseract ©   (2006-01-16 22:13) [30]


> При использовании режима Ultra DMA - X  загрузка центрального
> процессора стремиться к нулю.

Точно при использование DMA контроллера, он приостанавливает операции ввода-вывода т.е. фактически выключается :-)).
IDE/DMA не являются полноценными контроллерами в отличии от SCSI. Поэтому нагрузка на проц существенно выше.


 
AndreyRus   (2006-01-20 10:45) [31]

Можно попробовать при измерениях использовать "голодание" потоков. Похоже, что имеено этот способ используется в проекте "Волшебный диск" - http://smarthdd.ru/SMARTHDD.exe



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.012 c
2-1143209076
nnm
2006-03-24 17:04
2006.04.09
Декриптование


2-1143056917
49 Cent
2006-03-22 22:48
2006.04.09
Как сортировать по убыванию?


2-1143135831
opoloxai
2006-03-23 20:43
2006.04.09
Как изменить дату создания файла?


15-1142440903
Pazitron_Brain
2006-03-15 19:41
2006.04.09
Помогите подобрать картинку для школьного сайта


15-1142426573
Игорь М
2006-03-15 15:42
2006.04.09
Вопрос по Excel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский