|
Страници по тази тема: 1 | 2 | 3 | (покажи всички)
Тема
|
Приоритети в NT
|
|
Автор |
MиГ (insane) |
Публикувано | 06.11.01 17:35 |
|
Правя tool за HDD и е необходимо за определен период от време достъп до диска да има само моята програма. За целта пробвах да дам realtime приоритет на процеса, но при изпълнение на ReadFile ОС дава парчета от CPU време и на други процеси, които съответно могат да си ръчкат HDD. Пробвах освен realtime приоритет на процеса да дам и time critical приоритет и на нишката, в която тече обработката, но пак без успех. Пробвах и да пращам кода FSCTL_LOCK_VOLUME с DeviceIoControl, но пак нищо, другите програми си работят свободно.
Та това е, общо взето, предложения приемам всякакви
Si Vis Pacem, Para Bellum
| |
Тема
|
Re: Приоритети в NT
[re: MиГ]
|
|
Автор |
SDR () |
Публикувано | 07.11.01 13:32 |
|
ama kato rabotqt jitkat li harda? shtoto maj ne bi trqbwalo da mogat ako si loknal unita. Towa obaje moje bi se prenebregwa za paging fajla... te towa weche maj ne mojesh da go zabranish ama se ochakwa i che nqma da ti trqbwa
| |
Тема
|
Re: Приоритети в NT
[re: SDR]
|
|
Автор | MиГ (Нерегистриран) |
Публикувано | 07.11.01 15:54 |
|
Да, вече споменах, че си работят нормално. По принцип не трябва да се допуска дори стартирането им, тъй като то само по себе си е "джиткане на харда".
| |
Тема
|
Re: Приоритети в NT
[re: MиГ]
|
|
Автор | _ (Нерегистриран) |
Публикувано | 07.11.01 19:56 |
|
откога разправям аз, че REALTIME_PRIORITY клас не означава чак толкова много, ама... :)
праволинейният начин да предотвратим превключването към други нишки си е да ползваме KeRaiseIrql() и да вдигнем IRQL до DISPATCH_LEVEL или по-високо. разбира се трябва да се внимава какво ще се прави в този период (е.. най-много deadlock да стане де. :)))
не знам какъв е tool-a за HDD-то, но.. ако е примерно нещо за дефрагментация - Марк Русинович имастатийка по върпоса + сорс код (www.sysinternals.com беше нещо - NT Disk Defragmenting или нещо подобно) - може да свърши работа. :)
| |
Тема
|
Re: Приоритети в NT
[re: _]
|
|
Автор | MиГ (Нерегистриран) |
Публикувано | 08.11.01 18:02 |
|
Изтеглих го, но няма нищо полезно :(
А за KeRaiseIrql няма документация, деба
| |
Тема
|
Re: Приоритети в NT
[re: MиГ]
|
|
Автор | _ (Нерегистриран) |
Публикувано | 08.11.01 18:42 |
|
е как да няма документация?
ето от Win2000 DDK (за XP-то още не се е появило):
Kernel-Mode Drivers: Windows 2000 DDK
KeRaiseIrql
VOID
KeRaiseIrql(
IN KIRQL NewIrql,
OUT PKIRQL OldIrql
);
KeRaiseIrql raises the hardware priority to a given IRQL value, thereby masking off interrupts of equivalent or lower IRQL on the current processor.
Parameters
NewIrql
Specifies the new IRQL to which the hardware priority is to be raised.
OldIrql
Pointer to the storage for the original (unraised) IRQL value to be used in a subsequent call to KeLowerIrql.
Include
wdm.h or ntddk.h
Comments
If the new IRQL is less than the current IRQL, a bug check occurs. Otherwise, the current IRQL is set to the specified value.
Callers of this routine can be running at any IRQL. Any caller should restore the original IRQL with KeLowerIrql as soon as possible.
A call to KeLowerIrql is valid if it specifies NewIrql <= CurrentIrql. A call to KeRaiseIrql is valid if the caller specifies NewIrql >= CurrentIrql.
See Also
KeGetCurrentIrql, KeLowerIrql
See Also
KeGetCurrentIrql, KeLowerIrql
но при всички положения (не само за help-a) за да напишеш driver трябва да си изтеглиш DDK-то от microsoft...
| |
Тема
|
Re: Приоритети в NT
[re: _]
|
|
Автор |
SDR () |
Публикувано | 09.11.01 14:43 |
|
btw siguren li si che funkciqta lokwashta volume-to ne wrashta greshka?
| |
Тема
|
Re: Приоритети в NT
[re: SDR]
|
|
Автор | MiG (Нерегистриран) |
Публикувано | 09.11.01 14:49 |
|
По принцип връща TRUE, но локвам \\\\.\\PhisycalDrive0, а пък за локващия код пише, че работи само на \\\\.\\C:
Странна работа, общо взето
| |
Тема
|
Re: Приоритети в NT
[re: MиГ]
|
|
Автор |
Balam (непознат
) |
Публикувано | 11.11.01 20:43 |
|
MiG,
Ne davash podrobnosti za tova kakuv tool pravish za HDD i kakvi sa usloviata za izpulnenie, no bih te posuvetval da ne se muchish s prioriteti. Win32 programa v NT nikoga niama da moze da predotvrati prekusvane i izpulnene na drugi procesi. Teoreticheski i prakticheski e nevuzmozno. Za HDD-to, proveri na tazi stranica dali draiverite v NT ne ti pozvoliavat da pravish tova koeto iskash: http://msdn.microsoft.com/library/en-us/hardware/devio_9cc3.asp?frame=true
Ako tova ne stava, nai-veroiatno shte triabva da napishesh filter driver koito da blokira access do HDD-to kogato tvoita programa raboti. Mozesh da go napravish na dve stepeni - physical drive ili logical drive (file system). I v dvata sluchaia triabva da osigurish bezusloven dostup do paging faila.
| |
Тема
|
Re: Приоритети в NT
[re: Balam]
|
|
Автор | MиГ (Нерегистриран) |
Публикувано | 12.11.01 14:15 |
|
Привет
Програмката ми е предназначена за анализ на състоянието на твърди дискове. Сигурно познаваш структурата на съвременните твърди дискове: в началото им (първите цилиндри) са запазени за самия диск (недостъпни са за нищо друго), там той съхранява дефектните сектори. Направено е щото дисковете са твърде големи като капацитет и със физически твърде малки сектори и е невъзможно някой hdd да работи без чат-пат да дава лоши сектори. Та контролера на диска като открие, че някой сектор дава фира го мести в зоната на първите силиндри. Доколкото съм чел, когато някой диск започне да има твърде много лоши сектори е добре да се хвърля и да се купува нов.
Та идеята е чрез измерване на времето на последователно изчетени сектори да се определя дали сред тях има дефектни - времето за изчитане на комбинацията "добър-лош-добър" е по-голямо от времето за изчитане на комб. "добър-добър-добър", тъй като при четене на лош сектор главите трябва да се преместят в началото и после пак да се върнат на старата позиция.
Програмата е направена в осн. линии, но за сега е безполезна, тъй като тя няма абсолютна власт в/у устройството. Ако успея да я направя както трябва, обещавам да я пусна заедо със сорсовете :)
| |
|
Страници по тази тема: 1 | 2 | 3 | (покажи всички)
|
|
|