Главная страница
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.021 c
7-36879
and
2003-10-02 22:04
2003.12.12
Слежение за открывающимися и закрывающимися окнами


6-36787
alt7
2003-10-15 13:11
2003.12.12
TTCPClientSocket.OnReceive


1-36668
austin
2003-11-29 22:35
2003.12.12
Автоматизация и Excel


1-36719
Triny
2003-12-02 13:13
2003.12.12
Сохранение


1-36627
pashaz
2003-11-29 08:49
2003.12.12
SMExport