URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3893
[ Назад ]

Исходное сообщение
"Получить серийный номер HDD"

Отправлено Olegas , 01-Фев-05 21:19 
Нешел множество исходников с портами и прерываниями.
Есть ли способ НЕ через порты и прерывания. Например через какие-либо системные вызовы.


Содержание

Сообщения в этом обсуждении
"Получить серийный номер HDD"
Отправлено Soldier , 02-Фев-05 12:08 
>Нешел множество исходников с портами и прерываниями.
>Есть ли способ НЕ через порты и прерывания. Например через какие-либо системные
>вызовы.

Для Линукс (без проверок на ошибки):

#include <stdio.h>
#include <fcntl.h>
#include <linux/hdreg.h>

int main()
{
    struct hd_driveid hd;
    int ide;
    ide=open("/dev/hda",O_RDONLY);
    ioctl(ide,HDIO_GET_IDENTITY,&hd);
    printf("Serial number - %s\n",hd.serial_no);
    return 1;
}


"Получить серийный номер HDD"
Отправлено klalafuda , 02-Фев-05 12:39 
>Нешел множество исходников с портами и прерываниями.
>Есть ли способ НЕ через порты и прерывания. Например через какие-либо системные
>вызовы.

NetBSD: man atactl -> read atactl code..

// wbr


"Все гениальное просто"
Отправлено Olegas , 03-Фев-05 10:18 
>
>NetBSD: man atactl -> read atactl code..
>
>// wbr
С поправкой на FreeBSD
atacontrol - команда cap.

Большое спасибо.