Главная страница
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.47 MB
Время: 0.017 c
3-36524
MaximCHR
2003-11-21 15:33
2003.12.12
Открытие .db


1-36682
Walrus
2003-12-02 21:59
2003.12.12
Шаблоны или что-то в этом духе


1-36687
_юзер_
2003-12-02 17:58
2003.12.12
MDI


3-36576
AV
2003-11-20 13:51
2003.12.12
Размер .NTX созданных под Delphi, отличается от CLIPPERовских.


3-36519
Nick-From
2003-11-19 19:55
2003.12.12
Обработка исключения - Нет прав на выполнение действия