Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-36661
romeo
2003-11-30 17:38
2003.12.12
Печать на принтер и превью в Win98 - какие-то странные глюки.


7-36853
Максим
2003-10-08 08:45
2003.12.12
Помогите !!!!!


1-36612
qwerty2
2003-12-01 14:05
2003.12.12
Указатели


1-36731
JohnJohn
2003-11-27 18:40
2003.12.12
Можно ли хранить chr(0) в длинных строках D5 ?


8-36774
Sergeys
2003-08-16 13:39
2003.12.12
С микшировать два битмапа