SysFn18/ru: Difference between revisions
Jump to navigation
Jump to search
Punk Joker (talk | contribs) |
No edit summary |
||
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 99: | Line 127: | ||
Возвращаемое значение: | Возвращаемое значение: | ||
:* функция не возвращает значения | :* функция не возвращает значения | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_SPEAKER (8) | |||
::ecx - SSSF_GET_STATE (1), SSSF_TOGGLE (2) | |||
=== Подфункция 9 - завершение работы системы с параметром. === | === Подфункция 9 - завершение работы системы с параметром. === | ||
Line 115: | Line 148: | ||
:* Не следует полагаться на возвращаемое значение при неверном | :* Не следует полагаться на возвращаемое значение при неверном | ||
::вызове, оно может измениться в последующих версиях ядра. | ::вызове, оно может измениться в последующих версиях ядра. | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_SHUTDOWN (9) | |||
=== Подфункция 10 - свернуть окно приложения. === | === Подфункция 10 - свернуть окно приложения. === | ||
Line 134: | Line 171: | ||
::функцией 0, для окон без скина её можно определить функцией 8), | ::функцией 0, для окон без скина её можно определить функцией 8), | ||
::восстановление - приложением @panel. | ::восстановление - приложением @panel. | ||
'''Константы для регистров:''' | |||
::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 214: | Line 259: | ||
db 0 | db 0 | ||
dd 1675 | dd 1675 | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_KERNEL_VERSION (13) | |||
=== Подфункция 14 - ожидать начала обратного хода луча развёртки монитора. === | === Подфункция 14 - ожидать начала обратного хода луча развёртки монитора. === | ||
Line 225: | Line 274: | ||
::высокопроизводительных графических приложений; используется для | ::высокопроизводительных графических приложений; используется для | ||
::плавного вывода графики. | ::плавного вывода графики. | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_WAIT_RETRACE (14) | |||
=== Подфункция 15 - поместить курсор мыши в центр экрана. === | === Подфункция 15 - поместить курсор мыши в центр экрана. === | ||
Line 233: | Line 286: | ||
Возвращаемое значение: | Возвращаемое значение: | ||
:* eax = 0 как признак успеха | :* eax = 0 как признак успеха | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_CURSOR_CENTER (15) | |||
=== Подфункция 16 - Получить размер свободной оперативной памяти. === | === Подфункция 16 - Получить размер свободной оперативной памяти. === | ||
Line 240: | Line 297: | ||
Возвращаемое значение: | Возвращаемое значение: | ||
:* eax = размер свободной памяти в килобайтах | :* eax = размер свободной памяти в килобайтах | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_GET_FREE_RAM (16) | |||
=== Подфункция 17 - получить размер имеющейся оперативной памяти. === | === Подфункция 17 - получить размер имеющейся оперативной памяти. === | ||
Line 248: | Line 309: | ||
Возвращаемое значение: | Возвращаемое значение: | ||
:* eax = общий размер имеющейся памяти в килобайтах | :* eax = общий размер имеющейся памяти в килобайтах | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_GET_TOTAL_RAM (17) | |||
=== Подфункция 18 - завершить процесс/поток по идентификатору. === | === Подфункция 18 - завершить процесс/поток по идентификатору. === | ||
Line 263: | Line 328: | ||
:* Смотри также подфункцию 2 - завершение | :* Смотри также подфункцию 2 - завершение | ||
::процесса/потока по заданному слоту. | ::процесса/потока по заданному слоту. | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_TERMINATE_THREAD_ID (18) | |||
=== Подфункция 19 - получить/установить настройки мыши. === | === Подфункция 19 - получить/установить настройки мыши. === | ||
Line 328: | Line 397: | ||
Возвращаемое значение: | Возвращаемое значение: | ||
:* функция не возвращает значения | :* функция не возвращает значения | ||
==== Подподфункция 6 - получить задержку двойного щелчка. ==== | |||
Параметры: | |||
:* eax = 18 - номер функции | |||
:* ebx = 19 - номер подфункции | |||
:* ecx = 6 - номер подподфункции | |||
Возвращаемое значение: | |||
:* eax = текущая задержка двойного щелчка (100 = секунда) | |||
==== Подподфункция 7 - установить задержку двойного щелчка. ==== | |||
Параметры: | |||
:* eax = 18 - номер функции | |||
:* ebx = 19 - номер подфункции | |||
:* ecx = 7 - номер подподфункции | |||
:* dl = новое значение задержки двойного щелчка (100 = секунда) | |||
Возвращаемое значение: | |||
:* функция не возвращает значения | |||
Замечания: | Замечания: | ||
:* Рекомендуемая скорость мыши (в подподфункции 1) от 1 до 9. | :* Рекомендуемая скорость мыши (в подподфункции 1) от 1 до 9. | ||
Line 343: | Line 432: | ||
::и проверить, что устанавливаемое положение не выходит за пределы | ::и проверить, что устанавливаемое положение не выходит за пределы | ||
::экрана. | ::экрана. | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_MOUSE_SETTINGS (19) | |||
::ecx - SSSF_GET_SPEED (0), SSSF_SET_SPEED (1), SSSF_GET_SPEEDUP (2), | |||
:::SSSF_SET_SPEEDUP (3), SSSF_SET_POS (4), SSSF_SET_BUTTON (5), | |||
:::SSSF_GET_DOUBLE_CLICK_DELAY (6), SSSF_SET_DOUBLE_CLICK_DELAY (7) | |||
=== Подфункция 20 - получить информацию об оперативной памяти. === | === Подфункция 20 - получить информацию об оперативной памяти. === | ||
Line 366: | Line 462: | ||
::* +32: dword: размер наибольшего выделенного блока в куче ядра | ::* +32: dword: размер наибольшего выделенного блока в куче ядра | ||
:::::::: (зарезервировано) | :::::::: (зарезервировано) | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_GET_RAM_INFO (20) | |||
=== Подфункция 21 - получить номер слота процесса/потока по идентификатору. === | === Подфункция 21 - получить номер слота процесса/потока по идентификатору. === | ||
Line 376: | Line 476: | ||
:* eax = 0 - ошибка (неверный идентификатор) | :* eax = 0 - ошибка (неверный идентификатор) | ||
:* иначе eax = номер слота | :* иначе eax = номер слота | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_GET_THREAD_SLOT (21) | |||
=== Подфункция 22 - операции с окном другого процесса/потока. === | === Подфункция 22 - операции с окном другого процесса/потока. === | ||
Параметры: | Параметры: | ||
:* eax = 18 - номер функции | :* eax = 18 - номер функции | ||
Line 394: | Line 499: | ||
:* Восстановление окна с одновременной активизацией осуществляется | :* Восстановление окна с одновременной активизацией осуществляется | ||
::подфункции 3 (принимающей номер слота). | ::подфункции 3 (принимающей номер слота). | ||
'''Константы для регистров:''' | |||
::eax - SF_SYSTEM (18) | |||
::ebx - SSF_FOREIGN_WINDOW (22) | |||
::ecx - SSSF_MINIMIZE (0), SSSF_MINIMIZE_ID (1), SSSF_RESTORE (2), | |||
:::SSSF_RESTORE_ID (3) | |||
=== Подфункция 23 - миним |