SysFn30/ru: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
Pathoswithin (talk | contribs) No edit summary |
||
Line 8: | Line 8: | ||
:* eax = 30 - номер функции | :* eax = 30 - номер функции | ||
:* ebx = 1 - номер подфункции | :* ebx = 1 - номер подфункции | ||
:* ecx = указатель на | :* ecx = указатель на строку с путём к новой текущей папке, правила формирования строки указаны в описании функции 70. | ||
Возвращаемое значение: | Возвращаемое значение: | ||
:* функция не возвращает значения | :* функция не возвращает значения | ||
Line 43: | Line 43: | ||
:* ebx = 3 - номер подфункции | :* ebx = 3 - номер подфункции | ||
:* ecx = указатель на блок данных: | :* ecx = указатель на блок данных: | ||
::: | ::для кодировки cp866: | ||
::: | key rb 64 | ||
Пример: | path rb 64 | ||
::для кодировки UTF-16LE: | |||
key rb 64 | |||
dw 2 | |||
path rw 31 | |||
::Пример: | |||
align 64 | |||
key db 'kolibrios',0 ; ключ должен быть в нижнем регистре | |||
align 64 | |||
path db 'HD0/1',0 | |||
Возвращаемое значение: | Возвращаемое значение: | ||
:* функция не возвращает значения | :* функция не возвращает значения | ||
Замечания: | Замечания: | ||
:* Функция может быть вызвана только 1 раз за 1 сессию работы ОС. | :* Функция может быть вызвана только 1 раз за 1 сессию работы ОС. | ||
:* Кодировка не влияет на символьный ключ. | |||
'''Константы для регистров:''' | '''Константы для регистров:''' | ||
::eax - SF_CURRENT_FOLDER (30) | ::eax - SF_CURRENT_FOLDER (30) | ||
::ebx - SSF_ADD_SYS_FOLDER (3) | ::ebx - SSF_ADD_SYS_FOLDER (3) | ||
=== Подфункция 4 - получить активную папку в кодировке UTF-16LE. === | |||
Параметры: | |||
:* eax = 30 - номер функции | |||
:* ebx = 4 - номер подфункции | |||
:* ecx = указатель на буфер | |||
:* edx = размер буфера | |||
Возвращаемое значение: | |||
:* eax = длина имени текущей папки (включая завершающий 0) | |||
Замечания: | |||
:* Если размера буфера недостаточно для копирования всего имени, | |||
::копируются только первые (edx-2) байт и в конце ставится | |||
::завершающий 0. | |||
:* По умолчанию, текущая папка для потока - "/rd/1". | |||
:* При создании процесса/потока текущая папка наследуется от | |||
::родителя. | |||
{{System_functions}} | {{System_functions}} | ||
[[Category: SysCalls]] | [[Category: SysCalls]] |
Revision as of 03:22, 4 September 2016
Функция 30 - работа с активной папкой
Подфункция 1 - установить текущую папку для потока.
Параметры:
- eax = 30 - номер функции
- ebx = 1 - номер подфункции
- ecx = указатель на строку с путём к новой текущей папке, правила формирования строки указаны в описании функции 70.
Возвращаемое значение:
- функция не возвращает значения
Константы для регистров:
- eax - SF_CURRENT_FOLDER (30)
- ebx - SSF_SET_CF (1)
Подфункция 2 - получить активную папку для потока.
Параметры:
- eax = 30 - номер функции
- ebx = 2 - номер подфункции
- ecx = указатель на буфер
- edx = размер буфера
Возвращаемое значение:
- eax = длина имени текущей папки (включая завершающий 0)
Замечания:
- Если размера буфера недостаточно для копирования всего имени,
- копируются только первые (edx-1) байт и в конце ставится
- завершающий 0.
- По умолчанию, текущая папка для потока - "/rd/1".
- При создании процесса/потока текущая папка наследуется от
- родителя.
Константы для регистров:
- eax - SF_CURRENT_FOLDER (30)
- ebx - SSF_GET_CF (2)
Подфункция 3 - установить доп. системную директорию для ядра.
Параметры:
- eax = 30 - номер функции
- ebx = 3 - номер подфункции
- ecx = указатель на блок данных:
- для кодировки cp866:
key rb 64 path rb 64
- для кодировки UTF-16LE:
key rb 64 dw 2 path rw 31
- Пример:
align 64 key db 'kolibrios',0 ; ключ должен быть в нижнем регистре align 64 path db 'HD0/1',0
Возвращаемое значение:
- функция не возвращает значения
Замечания:
- Функция может быть вызвана только 1 раз за 1 сессию работы ОС.
- Кодировка не влияет на символьный ключ.
Константы для регистров:
- eax - SF_CURRENT_FOLDER (30)
- ebx - SSF_ADD_SYS_FOLDER (3)
Подфункция 4 - получить активную папку в кодировке UTF-16LE.
Параметры:
- eax = 30 - номер функции
- ebx = 4 - номер подфункции
- ecx = указатель на буфер
- edx = размер буфера
Возвращаемое значение:
- eax = длина имени текущей папки (включая завершающий 0)
Замечания:
- Если размера буфера недостаточно для копирования всего имени,
- копируются только первые (edx-2) байт и в конце ставится
- завершающий 0.
- По умолчанию, текущая папка для потока - "/rd/1".
- При создании процесса/потока текущая папка наследуется от
- родителя.
|