
01.10.2009, 11:02
|
|
Постоянный
Регистрация: 27.10.2008
Сообщений: 380
Провел на форуме: 1249808
Репутация:
149
|
|
вобщем нашел такой код
Код:
PSerialNumberParams = ^TSerialNumberParams;
TSerialNumberParams = record
wInfoLevel:word;
dwDiskSerialNumber:longint;
caLabel:array[0..10] of char;
baFileSystem:array[0..7] of char;
end;
function GetDriveSerialNumber(wDrive: word): LongInt;
var
snp: TSerialNumberParams;
begin
snp.dwDiskSerialNumber := 0;
if ReadDriveSNParam(wDrive, @snp)
then Result := snp.dwDiskSerialNumber
else Result := -1;
end;
function ReadDriveSNParam(wDrive: word; psnp: PSerialNumberParams): boolean; assembler;
asm
push ds
mov bx, wDrive
mov al, 00h
mov ah, 69h
lds dx, psnp //<=вот тут ошибка Operand size mismatch
int 21h
jnc @no_error {CF SET if error}
xor ax,ax {set false}
jmp @exit
@no_error:
mov ax, 1 {set true}
@exit:
pop ds
end;
помогите плиз
|
|
|