Главная страница
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.016 c
1-36654
Marina_S
2003-11-30 19:32
2003.12.12
один обработкик события для разных компонентов


6-36794
genek84
2003-10-16 09:29
2003.12.12
Как программно найти скрытые папки типа C$ на удаленной машине


1-36634
SDW_syscoder
2003-12-01 09:56
2003.12.12
Работа со строкой


7-36865
smit
2003-10-06 10:48
2003.12.12
Ещё немножко о модемах...


3-36568
Gilk
2003-11-19 19:29
2003.12.12
Копирование TField