SysFn18/ru: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
m (обновление: "@panel" -> "@taskbar")
 
(18 intermediate revisions by 4 users not shown)
Line 10: Line 10:
* ecx = номер слота процесса/потока
* ecx = номер слота процесса/потока
Возвращаемое значение:
Возвращаемое значение:
* функция не возвращает значения  
* функция не возвращает значения
 
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_UNFOCUS_WINDOW (1)


=== Подфункция 2 - завершить процесс/поток по слоту. ===
=== Подфункция 2 - завершить процесс/поток по слоту. ===
Line 23: Line 27:
* Нельзя завершить поток операционной системы OS/IDLE (номер слота 1), можно завершить любой обычный поток/процесс.
* Нельзя завершить поток операционной системы OS/IDLE (номер слота 1), можно завершить любой обычный поток/процесс.
* Смотри также подфункцию 18 - завершение процесса/потока с заданным идентификатором.
* Смотри также подфункцию 18 - завершение процесса/потока с заданным идентификатором.
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_TERMINATE_THREAD (2)


=== Подфункция 3 - сделать активным окно заданного потока. ===
=== Подфункция 3 - сделать активным окно заданного потока. ===
Line 35: Line 43:
* При указании корректного, но несуществующего слота активизируется какое-то окно.
* При указании корректного, но несуществующего слота активизируется какое-то окно.
* Узнать, какое окно является активным, можно вызовом подфункции 7.
* Узнать, какое окно является активным, можно вызовом подфункции 7.
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_FOCUS_WINDOW (3)


=== Подфункция 4 - получить счётчик пустых тактов в секунду. ===
=== Подфункция 4 - получить счётчик пустых тактов в секунду. ===
Line 45: Line 57:
Возвращаемое значение:
Возвращаемое значение:
* eax = значение счётчика пустых тактов в секунду
* eax = значение счётчика пустых тактов в секунду
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_GET_IDLE_COUNT (4)


=== Подфункция 5 - получить тактовую частоту. ===
=== Подфункция 5 - получить тактовую частоту. ===
Line 53: Line 69:
Возвращаемое значение:
Возвращаемое значение:
* eax = тактовая частота (по модулю 2^32 тактов = 4ГГц)
* eax = тактовая частота (по модулю 2^32 тактов = 4ГГц)
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_GET_CPU_REQUENCY (5)


=== Подфункция 6 - сохранить рамдиск в файл на жёстком диске. ===
=== Подфункция 6 - сохранить рамдиск в файл на жёстком диске. ===
Line 65: Line 85:
Замечания:
Замечания:
* Все папки в указанном пути должны существовать, иначе вернётся значение 5, "файл не найден".
* Все папки в указанном пути должны существовать, иначе вернётся значение 5, "файл не найден".
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_RD_TO_HDD (6)


=== Подфункция 7 - получить номер активного окна. ===
=== Подфункция 7 - получить номер активного окна. ===
Line 77: Line 101:
::сообщения обо всём вводе с клавиатуры.
::сообщения обо всём вводе с клавиатуры.
:* Сделать окно активным можно вызовом подфункции 3.
:* Сделать окно активным можно вызовом подфункции 3.
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_GET_ACTIVE_WINDOW (7)


=== Подфункция 8 - отключить/разрешить звук спикера. ===
=== Подфункция 8 - отключить/разрешить звук спикера. ===
Line 83: Line 111:
При включённом - направляются на встроенный спикер.
При включённом - направляются на встроенный спикер.


=== Подподфункция 1 - получить состояние. ===
==== Подподфункция 1 - получить состояние. ====
Параметры:
Параметры:
:* eax = 18 - номер функции
:* eax = 18 - номер функции
Line 91: Line 119:
:* eax = 0 - звук спикера разрешён; 1 - запрещён
:* eax = 0 - звук спикера разрешён; 1 - запрещён


=== Подподфункция 2 - переключить состояние. ===
==== Подподфункция 2 - переключить состояние. ====
Переключает состояния разрешения/запрещения.
Переключает состояния разрешения/запрещения.
Параметры:
Параметры:
Line 100: Line 128:
:* функция не возвращает значения
:* функция не возвращает значения


=== Функция 18, подфункция 9 - завершение работы системы с параметром.  ===
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_SPEAKER (8)
::ecx - SSSF_GET_STATE (1), SSSF_TOGGLE (2)
 
=== Подфункция 9 - завершение работы системы с параметром.  ===


Параметры:
Параметры:
Line 115: Line 148:
:* Не следует полагаться на возвращаемое значение при неверном
:* Не следует полагаться на возвращаемое значение при неверном
::вызове, оно может измениться в последующих версиях ядра.
::вызове, оно может измениться в последующих версиях ядра.
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_SHUTDOWN (9)


=== Подфункция 10 - свернуть окно приложения. ===
=== Подфункция 10 - свернуть окно приложения. ===
Line 133: Line 170:
::минимизации (которая для окон со скином определяется автоматически
::минимизации (которая для окон со скином определяется автоматически
::функцией 0, для окон без скина её можно определить функцией 8),
::функцией 0, для окон без скина её можно определить функцией 8),
::восстановление - приложением @panel.
::восстановление - приложением @taskbar.
 
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_MINIMIZE_WINDOW (10)


=== Подфункция 11 - получить информацию о дисковой подсистеме. ===
=== Подфункция 11 - получить информацию о дисковой подсистеме. ===
Line 194: Line 235:
:* Короткая таблица может быть использована для получения информации
:* Короткая таблица может быть использована для получения информации
::об имеющихся устройствах.
::об имеющихся устройствах.
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_INFO_DISC_SYS (11)


=== Подфункция 13 - получить версию ядра. ===
=== Подфункция 13 - получить версию ядра. ===
Line 203: Line 248:
::информация
::информация
Возвращаемое значение:
Возвращаемое значение:
:* функция не возвращает значения
:* функция не возвращает значения,
::но, если указатель в ecx недопустимый, например,
::регион [ecx, ecx + 9) пересекается с памятью ядра,
::то тогда функция возвращает -1
Замечания:
* В данный момент используется только часть буфера размером
::9 байт. Тем не менее рекомендуется использовать буфер
::размером 16 байт для будущей совместимости, в будущем могут быть
::добавлены некоторые поля.


Структура буфера:
Структура буфера:
Line 214: Line 267:
  db 0
  db 0
  dd 1675
  dd 1675
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_KERNEL_VERSION (13)


=== Подфункция 14 - ожидать начала обратного хода луча развёртки монитора. ===
=== Подфункция 14 - ожидать начала обратного хода луча развёртки монитора. ===
Line 225: Line 282:
::высокопроизводительных графических приложений; используется для
::высокопроизводительных графических приложений; используется для
::плавного вывода графики.
::плавного вывода графики.
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_WAIT_RETRACE (14)


=== Подфункция 15 - поместить курсор мыши в центр экрана. ===
=== Подфункция 15 - поместить курсор мыши в центр экрана. ===
Line 233: Line 294:
Возвращаемое значение:
Возвращаемое значение:
:* eax = 0 как признак успеха
:* eax = 0 как признак успеха
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_CURSOR_CENTER (15)


=== Подфункция 16 - Получить размер свободной оперативной памяти. ===
=== Подфункция 16 - Получить размер свободной оперативной памяти. ===
Line 240: Line 305:
Возвращаемое значение:
Возвращаемое значение:
:* eax = размер свободной памяти в килобайтах
:* eax = размер свободной памяти в килобайтах
'''Константы для регистров:'''
::eax - SF_SYSTEM (18)
::ebx - SSF_GET_FREE_RAM (16)


=== Подфункция 17 - получить размер имеющейся оперативной памяти. ===
=== Подфункция 17 - получить размер имеющейся оперативной памяти. ===


Параметры:
Параметры:
* eax = 18 - номер функции
:* eax = 18 - номер функции
* ebx = 17 - номер подфункции
:* ebx = 17 - номер подфункции
Возвращаемое значение:
:* eax = общий размер имеющейся памяти в килобайтах


Возвращаемое значение:
'''Константы для регистров:'''
* eax = общий размер имеющейся памяти в килобайтах
::eax - SF_SYSTEM (18)
::ebx - SSF_GET_TOTAL_RAM (17)


=== Подфункция 18 - завершить процесс/поток по идентификатору. ===
=== Подфункция 18 - завершить процесс/поток по идентификатору. ===


Параметры:
Параметры:
* eax = 18 - номер функции
:* eax = 18 - номер функции
* ebx = 18 - номер подфункции
:* ebx = 18 - номер подфункции
* ecx = идентификатор процесса/потока (PID/TID)
:* ecx = идентификатор процесса/потока (PID/TID)
 
Возвращаемое значение:
Возвращаемое значение:
* eax = 0 - успешно
:* eax = 0 - успешно
* eax = -1 - ошибка (процесс не найден или является системным)
:* eax = -1 - ошибка (процесс не найден или является системным)
Замечания:
:* Нельзя завершить поток операционной системы OS/IDLE (номер слота
::1), можно завершить любой обычный поток/процесс.
:* Смотри также подфункцию 2 - завершение
::процесса/потока по заданному слоту.


Замечания:
'''Константы для регистров:'''
* Нельзя завершить поток операционной системы OS/IDLE (номер слота 1), можно завершить любой обычный поток/процесс.
::eax - SF_SYSTEM (18)
* Смотри также подфункцию 2 - завершение процесса/потока по заданному слоту.
::ebx - SSF_TERMINATE_THREAD_ID (18)


=== Подфункция 19 - получить/установить настройки мыши. ===
=== Подфункция 19 - получить/установить настройки мыши. ===
Line 270: Line 346:


Параметры:
Параметры:
* eax = 18 - номер функции
:* eax = 18 - номер функции
* ebx = 19 - номер подфункции
:* ebx = 19 - номер подфункции
* ecx = 0 - номер подподфункции
:* ecx = 0 - номер подподфункции
 
Возвращаемое значение:
Возвращаемое значение:
* eax = текущая скорость мыши
:* eax = текущий делитель скорости


==== Подподфункция 1 - установить скорость мыши. ====
==== Подподфункция 1 - установить скорость мыши. ====
Параметры:
Параметры:
* eax = 18 - номер функции
:* eax = 18 - номер функции
* ebx = 19 - номер подфункции
:* ebx = 19 - номер подфункции
* ecx = 1 - номер подподфункции
:* ecx = 1 - номер подподфункции
* edx = новое значение скорости
:* edx = новое значение делителя скорости
Возвращаемое значение:
:* функция не возвращает значения


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