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

Вниз

Interrupt 21h Function 440Dh Minor Code 4Ah   Найти похожие ветки 

 
Николашка   (2003-10-03 11:44) [0]

вопрос такой - кто-нибудь работал с ентой гадостью ???
мне нужно залочить на какое-то время партицию, пробую подставлять код из хелпа - Error на строке вызова 21h прерывания ... неприятно !!!
В общем ежелить кто знает как вызвать лок логического диска (и ан_лок .. !!! :)), токмо так чтоб всё работало - буду очь признателен ... !!! :)))


 
Е-Моё имя   (2003-10-03 12:03) [1]

а ты попробуй не использовать отладчик
ты наверно лочишь диск, а отладчик потом не может работать
вот и ошибка


 
Николашка   (2003-10-04 13:17) [2]

я об ентом с самого начала подумал, поентому лочу диск Е, у меня там кроме дистрибутивов больше ничего нет (служб никаких) !!!
так что в момент запуска программы - этот диск никем другим не используется... :)))
Всё равно - спасиба за совет, появятся более существенные - непременно уделю им внимание ... !!! :)))))


 
Е-Моё имя   (2003-10-04 15:00) [3]

вот рабочий код
проверь так ли у тебя

function LockVolume(Level: Byte; Lock: TLockType): Boolean;
var R: T32Regs;
cb: DWord;
W: Longint;
V: Byte;
begin
W := Level;
W := W shl 8;
if Lock = lPhysical then
begin
V := FPhysicalVolume;
R.EAX := $440D;
R.EBX := W or V;
R.ECX := $084B;
if Level = 1 then R.EDX := 1 else R.EDX := 0;
DeviceIOControl(FHandle, VWIN32_DIOC_DOS_IOCTL,
@R, SizeOf(R), @R, SizeOf(R), cb, NIL);
Result := (R.Flags and 1)=0;
end else
begin
R.EAX := $440D;
R.EBX := W or (FVolume and $FF);
R.ECX := $084A;
R.EDX := 0;
DeviceIOControl(FHandle, VWIN32_DIOC_DOS_IOCTL,
@R, SizeOf(R), @R, SizeOf(R), cb, NIL);
Result := (R.Flags and 1)=0;
end;
end;

procedure UnLockVolume(Lock: TLockType);
var R: T32Regs;
cb: DWord;
V: Byte;
begin
if Lock = lPhysical then
begin
V := FPhysicalVolume;
R.EAX := $440D;
R.EBX := V;
R.ECX := $086B;
DeviceIOControl(FHandle, VWIN32_DIOC_DOS_IOCTL,
@R, SizeOf(R), @R, SizeOf(R), cb, NIL);
end else
begin
R.EAX := $440D;
R.EBX := FVolume and $FF;
R.ECX := $086A;
DeviceIOControl(FHandle, VWIN32_DIOC_DOS_IOCTL,
@R, SizeOf(R), @R, SizeOf(R), cb, NIL);
end;
end;


 
Николашка   (2003-10-05 15:42) [4]

По идее - всё класно, вот токмо ненаходятся типы TLockType и T32Regs, а в связи с ентим - 28 ероров... :)))
отсюдва вопрос - как подключить вышеуказанные типы ??? :))


 
Е-Моё имя   (2003-10-05 20:49) [5]

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



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

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

Наверх




Память: 0.45 MB
Время: 0.007 c
9-36494
s-k
2003-05-26 15:43
2003.12.12
Квест


1-36601
Дремучий
2003-11-29 00:04
2003.12.12
Редактор свойства типа TImageList


1-36614
MPS
2003-12-03 07:45
2003.12.12
Функция возвращ. X


14-36822
РВА
2003-11-19 14:54
2003.12.12
Регистрация библиотеки типов


1-36645
Gorn
2003-11-30 20:58
2003.12.12
Дистрибютив программы и Rave





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский