SysFn76/ru

From KolibriOS wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Функция 76 - сетевые опции и статистика.

Параметры:

  • eax = 76 - номер функции
  • верхняя часть ebx = номер протокола
  • bh = номер устройства
  • bl = номер подфункции

Константы для регистров:

eax - SF_NETWORK_PROTOCOL (76)

Протокол 0 - Ethernet, Подфункция 0 - Read MAC.

Параметры:

  • eax = 76 - function number
  • high half of ebx = 0 (Ethernet)
  • bh = device number
  • bl = 0 (Read MAC)

Возвращаемое значение:

  • eax = -1 on error, otherwise lower bits of MAC
  • bx = upper bits of MAC

Протокол 1 - IPv4, Подфункция 0, Read # Packets sent

Параметры:

  • eax = 76 - function number
  • high half of ebx = 1 (IPv4)
  • bh = device number
  • bl = 0 (Read # packets sent)

Возвращаемое значение:

  • eax = number of packets sent (-1 при ошибке)

Протокол 1 - IPv4, Подфункция 1, Read # Packets rcvd

Параметры:

  • eax = 76 - function number
  • high half of ebx = 1 (IPv4)
  • bh = device number
  • bl = 1 (Read # packets received)

Возвращаемое значение:

  • eax = number of packets received (-1 при ошибке)

Протокол 1 - IPv4, Подфункция 2, Read IP address

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 1 (IPv4)
  • bh = номер устройства
  • bl = 2 (Read IP address)

Возвращаемое значение:

  • eax = IP address (-1 при ошибке)

Протокол 1 - IPv4, Подфункция 3, Set IP address

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 1 (IPv4)
  • bh = номер устройства
  • bl = 3 (Set IP address)
  • ecx = IP address

Возвращаемое значение:

  • eax = -1 при ошибке

Протокол 1 - IPv4, Подфункция 4, Read DNS address

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 1 (IPv4)
  • bh = номер устройства
  • bl = 4 (Read DNS server IP address)

Возвращаемое значение:

  • eax = DNS server IP address (-1 при ошибке)

Протокол 1 - IPv4, Подфункция 5, Set DNS address

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 1 (IPv4)
  • bh = номер устройства
  • bl = 5 (Set DNS address)
  • ecx = DNS server IP address

Возвращаемое значение:

  • eax = -1 при ошибке

Протокол 1 - IPv4, Подфункция 6, Read subnet mask

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 1 (IPv4)
  • bh = номер устройства
  • bl = 6 (Read subnet mask)

Возвращаемое значение:

  • eax = subnet mask (-1 при ошибке)

Протокол 1 - IPv4, Подфункция 7, Set subnet mask

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 1 (IPv4)
  • bh = номер устройства
  • bl = 7 (Set subnet mask)
  • ecx = subnet mask

Возвращаемое значение:

  • eax = -1 при ошибке

Протокол 1 - IPv4, Подфункция 8, Read gateway

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 1 (IPv4)
  • bh = номер устройства
  • bl = 8 (Read gateway IP address)

Возвращаемое значение:

  • eax = gateway IP address (-1 при ошибке)

Протокол 1 - IPv4, Подфункция 9, Set gateway

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 1 (IPv4)
  • bh = номер устройства
  • bl = 9 (Set getway address)
  • ecx = gateway IP address

Возвращаемое значение:

  • eax = -1 при ошибке

Протокол 2 - ICMP, Подфункция 0, Read # Packets sent

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 2 (ICMP)
  • bh = номер устройства
  • bl = 0 (Read # packets sent)

Возвращаемое значение:

  • eax = number of packets sent (-1 при ошибке)

Протокол 2 - ICMP, Подфункция 1, Read # Packets rcvd

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 2 (ICMP)
  • bh = номер устройства
  • bl = 1 (Read # packets received)

Возвращаемое значение:

  • eax = number of packets received (-1 при ошибке)

Протокол 3 - UDP, Подфункция 0, Read # Packets sent

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 3 (UDP)
  • bh = номер устройства
  • bl = 0 (Read # packets sent)

Возвращаемое значение:

  • eax = number of packets sent (-1 при ошибке)

Протокол 3 - UDP, Подфункция 1, Read # Packets rcvd

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 3 (UDP)
  • bh = номер устройства
  • bl = 1 (Read # packets received)

Возвращаемое значение:

  • eax = number of packets received (-1 при ошибке)

Протокол 4 - TCP, Подфункция 0, Read # Packets sent

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 4 (TCP)
  • bh = номер устройства
  • bl = 0 (Read # packets sent)

Возвращаемое значение:

  • eax = number of packets sent (-1 при ошибке)

Протокол 4 - TCP, Подфункция 1, Read # Packets rcvd

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 4 (TCP)
  • bh = номер устройства
  • bl = 1 (Read # packets received)

Возвращаемое значение:

  • eax = number of packets received (-1 при ошибке)

Протокол 5 - ARP, Подфункция 0, Read # Packets sent

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 5 (ARP)
  • bh = номер устройства
  • bl = 0 (Read # packets sent)

Возвращаемое значение:

  • eax = number of packets sent (-1 при ошибке)

Протокол 5 - ARP, Подфункция 1, Read # Packets rcvd

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 5 (ARP)
  • bh = номер устройства
  • bl = 1 (Read # packets received)

Возвращаемое значение:

  • eax = number of packets received (-1 при ошибке)

Протокол 5 - ARP, Подфункция 2, Read # ARP entries

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 5 (ARP)
  • bh = номер устройства
  • bl = 2 (Read # current entries in the ARP table)

Возвращаемое значение:

  • eax = number of entries (-1 при ошибке)

Протокол 5 - ARP, Подфункция 3, Read ARP entry

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 5 (ARP)
  • bh = номер устройства
  • bl = 3 (Read ARP entry)
  • ecx = ARP entry number (0 based)
  • edi = ptr to buffer where ARP entry will be written

Возвращаемое значение:

  • eax = -1 при ошибке

Замечания:

  • ARP_entry struct is defined in ARP.inc in kernel and currently
   looks like this:

struct ARP_entry

       IP              dd ?
       MAC             dp ?
       Status          dw ?
       TTL             dw ?

ends

Протокол 5 - ARP, Подфункция 4, Add ARP entry

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 5 (ARP)
  • bh = номер устройства
  • bl = 4 (Add ARP entry)
  • esi = ptr to buffer holding ARP entry

Возвращаемое значение:

  • eax = -1 при ошибке

Замечания:

  • See previous function for details on ARP entry.

Протокол 5 - ARP, Подфункция 5, Remove ARP entry

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 5 (ARP)
  • bh = номер устройства
  • bl = 5 (Remove ARP entry)
  • ecx = ARP entry number (0 based), use -1 to clear whole ARP table.

Возвращаемое значение:

  • eax = -1 при ошибке

Протокол 5 - ARP, Подфункция 6, Send ARP announce

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 5 (ARP)
  • bh = номер устройства
  • bl = 6 (Send ARP announce)

Возвращаемое значение:

  • eax = -1 при ошибке

Протокол 5 - ARP, Подфункция 7, Read # conflicts

Параметры:

  • eax = 76 - номер функции
  • high half of ebx = 5 (ARP)
  • bh = номер устройства
  • bl = 7 (Read # IP address conflicts that have occured)

Возвращаемое значение:

  • eax = # IP address conflicts (-1 при ошибке)