|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Oleg Tkachenko 2:5020/400 01 Apr 2002 22:15:50 To : All Subject : ИД логического диска для Win31[1] --------------------------------------------------------------------------------
Привет всем
Hеобходимо узнать в Windows 31[1] ИД _логического_ диска.
Hа торре нашел пример причем для Делфи. Hепонятно для какой ОС правда.
Hа Win9x работает но на 31[1] возвращает 0 причем функция ошибку не
возвращает.
--------------------------------------------------------------------
{parameter block for getting serial number}
PSerialNumberParams = ^TSerialNumberParams;
TSerialNumberParams = record
wInfoLevel: word;
dwDiskSerialNumber: longint;
caLabel: array[0..10] of char;
baFileSystem: array[0..7] of char;
end;
{get volume serial number for a drive: 0=default, 1=A...}
{returns -1 if unable to read}
function GetDriveSerialNumber(wDrive: word): LongInt;
var
snp: TSerialNumberParams;
begin
snp.dwDiskSerialNumber := 0;
if ReadDriveSNParam(wDrive, @snp)
then Result := snp.dwDiskSerialNumber
else Result := -1;
end;
{Read Drive parameters: 0=default, 1=A...}
{Note: wDrive and psnp are treate as var with assembler directive}
{This interupt does NOT generate a critical error!}
function ReadDriveSNParam(wDrive: word; psnp: PSerialNumberParams): boolean;
assembler;
asm
push ds
mov bx, wDrive
mov al, 00h
mov ah, 69h
lds dx, psnp
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;
--------------------------------------------------------------------
подскажите как это сделать правильно.
олег alik_tv@ukr.net
Если это в факе есть подскажите где его взять.
--- ifmail v.2.15dev5
* Origin: UkrNet (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/6537d88f1c33.html, оценка из 5, голосов 10
|