SysFn76/ru: Difference between revisions
No edit summary |
|||
(12 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
:* bl = номер подфункции | :* bl = номер подфункции | ||
=== Протокол 0 - Ethernet, Подфункция 0 - | '''Константы для регистров:''' | ||
::eax - SF_NETWORK_PROTOCOL (76) | |||
=== Протокол 0 - Ethernet, Подфункция 0 - Read MAC. === | |||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - function number | :* eax = 76 - function number | ||
Line 17: | Line 20: | ||
:* bx = upper bits of MAC | :* bx = upper bits of MAC | ||
=== | === Протокол 1 - IPv4, Подфункция 0, Read # Packets sent === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - function number | :* eax = 76 - function number | ||
Line 26: | Line 29: | ||
:* eax = number of packets sent (-1 при ошибке) | :* eax = number of packets sent (-1 при ошибке) | ||
=== | === Протокол 1 - IPv4, Подфункция 1, Read # Packets rcvd === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - function number | :* eax = 76 - function number | ||
Line 44: | Line 47: | ||
:* eax = IP address (-1 при ошибке) | :* eax = IP address (-1 при ошибке) | ||
=== Протокол 1 - IPv4, Подфункция 3, Set IP address | === Протокол 1 - IPv4, Подфункция 3, Set IP address === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 73: | Line 76: | ||
:* eax = -1 при ошибке | :* eax = -1 при ошибке | ||
== Протокол 1 - IPv4, Подфункция 6, Read subnet mask === | === Протокол 1 - IPv4, Подфункция 6, Read subnet mask === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 92: | Line 95: | ||
:* eax = -1 при ошибке | :* eax = -1 при ошибке | ||
=== Протокол 1 - IPv4, Подфункция 8, Read gateway === | |||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 101: | Line 104: | ||
:* eax = gateway IP address (-1 при ошибке) | :* eax = gateway IP address (-1 при ошибке) | ||
=== Протокол 1 - IPv4, Подфункция 9, Set gateway === | |||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 110: | Line 113: | ||
''Возвращаемое значение:'' | ''Возвращаемое значение:'' | ||
:* eax = -1 при ошибке | :* eax = -1 при ошибке | ||
= Протокол 2 - ICMP, Подфункция 0, Read # Packets sent = | === Протокол 2 - ICMP, Подфункция 0, Read # Packets sent === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 120: | Line 123: | ||
:* eax = number of packets sent (-1 при ошибке) | :* eax = number of packets sent (-1 при ошибке) | ||
= Протокол 2 - ICMP, Подфункция 1, Read # Packets rcvd = | === Протокол 2 - ICMP, Подфункция 1, Read # Packets rcvd === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 129: | Line 132: | ||
:* eax = number of packets received (-1 при ошибке) | :* eax = number of packets received (-1 при ошибке) | ||
= Протокол 3 - UDP, Подфункция 0, Read # Packets sent == | === Протокол 3 - UDP, Подфункция 0, Read # Packets sent === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 138: | Line 141: | ||
:* eax = number of packets sent (-1 при ошибке) | :* eax = number of packets sent (-1 при ошибке) | ||
= Протокол 3 - UDP, Подфункция 1, Read # Packets rcvd == | === Протокол 3 - UDP, Подфункция 1, Read # Packets rcvd === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 147: | Line 150: | ||
:* eax = number of packets received (-1 при ошибке) | :* eax = number of packets received (-1 при ошибке) | ||
= Протокол 4 - TCP, Подфункция 0, Read # Packets sent == | === Протокол 4 - TCP, Подфункция 0, Read # Packets sent === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 156: | Line 159: | ||
:* eax = number of packets sent (-1 при ошибке) | :* eax = number of packets sent (-1 при ошибке) | ||
= Протокол 4 - TCP, Подфункция 1, Read # Packets rcvd == | === Протокол 4 - TCP, Подфункция 1, Read # Packets rcvd === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 165: | Line 168: | ||
:* eax = number of packets received (-1 при ошибке) | :* eax = number of packets received (-1 при ошибке) | ||
= Протокол 5 - ARP, Подфункция 0, Read # Packets sent == | === Протокол 5 - ARP, Подфункция 0, Read # Packets sent === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 174: | Line 177: | ||
:* eax = number of packets sent (-1 при ошибке) | :* eax = number of packets sent (-1 при ошибке) | ||
= Протокол 5 - ARP, Подфункция 1, Read # Packets rcvd == | === Протокол 5 - ARP, Подфункция 1, Read # Packets rcvd === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 183: | Line 186: | ||
:* eax = number of packets received (-1 при ошибке) | :* eax = number of packets received (-1 при ошибке) | ||
== Протокол 5 - ARP, Подфункция 2, Read # ARP entries == | === Протокол 5 - ARP, Подфункция 2, Read # ARP entries === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 192: | Line 195: | ||
:* eax = number of entries (-1 при ошибке) | :* eax = number of entries (-1 при ошибке) | ||
=== Протокол 5 - ARP, Подфункция 3, Read ARP entry === | |||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 212: | Line 215: | ||
ends | ends | ||
=== Протокол 5 - ARP, Подфункция 4, Add ARP entry === | |||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 223: | Line 226: | ||
''Замечания:'' | ''Замечания:'' | ||
:* See previous function for details on ARP entry. | :* See previous function for details on ARP entry. | ||
=== Протокол 5 - ARP, Подфункция 5, Remove ARP entry === | === Протокол 5 - ARP, Подфункция 5, Remove ARP entry === | ||
''Параметры:'' | ''Параметры:'' | ||
Line 234: | Line 237: | ||
:* eax = -1 при ошибке | :* eax = -1 при ошибке | ||
=== Протокол 5 - ARP, Подфункция 6, Send ARP announce == | === Протокол 5 - ARP, Подфункция 6, Send ARP announce === | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 76 - номер функции | :* eax = 76 - номер функции | ||
Line 242: | Line 245: | ||
''Возвращаемое значение:'' | ''Возвращаемое значение:'' | ||
:* eax = -1 при ошибке | :* eax = -1 при ошибке | ||
=== Протокол 5 - ARP, Подфункция 7, Read # conflicts === | === Протокол 5 - ARP, Подфункция 7, Read # conflicts === | ||
''Параметры:'' | ''Параметры:'' | ||
Line 251: | Line 254: | ||
''Возвращаемое значение:'' | ''Возвращаемое значение:'' | ||
:* eax = # IP address conflicts (-1 при ошибке) | :* eax = # IP address conflicts (-1 при ошибке) | ||
Latest revision as of 11:08, 13 May 2021
Функция 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 при ошибке)