Difference between revisions of "SysFn30/ru"
Jump to navigation
Jump to search
Punk Joker (talk | contribs) |
Punk Joker (talk | contribs) |
||
Line 15: | Line 15: | ||
Параметры: | Параметры: | ||
− | * eax = 30 - номер функции | + | :* eax = 30 - номер функции |
− | * ebx = 2 - номер подфункции | + | :* ebx = 2 - номер подфункции |
− | * ecx = указатель на буфер | + | :* ecx = указатель на буфер |
− | * edx = размер буфера | + | :* edx = размер буфера |
+ | Возвращаемое значение: | ||
+ | :* eax = длина имени текущей папки (включая завершающий 0) | ||
+ | Замечания: | ||
+ | :* Если размера буфера недостаточно для копирования всего имени, | ||
+ | ::копируются только первые (edx-1) байт и в конце ставится | ||
+ | ::завершающий 0. | ||
+ | :* По умолчанию, текущая папка для потока - "/rd/1". | ||
+ | :* При создании процесса/потока текущая папка наследуется от | ||
+ | ::родителя. | ||
+ | |||
+ | === Подфункция 3 - установить доп. системную директорию для ядра. === | ||
+ | Параметры: | ||
+ | :* eax = 30 - номер функции | ||
+ | :* ebx = 3 - номер подфункции | ||
+ | :* ecx = указатель на блок данных: | ||
+ | :::::sysdir_name:: rb 64 | ||
+ | :::::sysdir_path:: rb 64 | ||
+ | Пример: | ||
+ | dir_name1::: db 'KolibriOS',0 | ||
+ | ::::::::rb 64-10 | ||
+ | dir_path1::: db 'HD0/1',0 | ||
+ | ::::::::rb 64-6 | ||
Возвращаемое значение: | Возвращаемое значение: | ||
− | * | + | :* функция не возвращает значения |
− | |||
Замечания: | Замечания: | ||
− | * | + | :* Функция может быть вызвана только 1 раз за 1 сессию работы ОС. |
− | |||
− | |||
− | |||
{{System_functions}} | {{System_functions}} | ||
[[Category: SysCalls]] | [[Category: SysCalls]] |
Revision as of 09:28, 16 December 2013
Функция 30 - работа с активной папкой
Подфункция 1 - установить текущую папку для потока.
Параметры:
- eax = 30 - номер функции
- ebx = 1 - номер подфункции
- ecx = указатель на ASCIIZ-строку с путём к новой текущей папке
Возвращаемое значение:
- функция не возвращает значения
Подфункция 2 - получить активную папку для потока.
Параметры:
- eax = 30 - номер функции
- ebx = 2 - номер подфункции
- ecx = указатель на буфер
- edx = размер буфера
Возвращаемое значение:
- eax = длина имени текущей папки (включая завершающий 0)
Замечания:
- Если размера буфера недостаточно для копирования всего имени,
- копируются только первые (edx-1) байт и в конце ставится
- завершающий 0.
- По умолчанию, текущая папка для потока - "/rd/1".
- При создании процесса/потока текущая папка наследуется от
- родителя.
Подфункция 3 - установить доп. системную директорию для ядра.
Параметры:
- eax = 30 - номер функции
- ebx = 3 - номер подфункции
- ecx = указатель на блок данных:
- sysdir_name:: rb 64
- sysdir_path:: rb 64
Пример: dir_name1::: db 'KolibriOS',0
- rb 64-10
dir_path1::: db 'HD0/1',0
- rb 64-6
Возвращаемое значение:
- функция не возвращает значения
Замечания:
- Функция может быть вызвана только 1 раз за 1 сессию работы ОС.
|