SysFn30/ru: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
mNo edit summary
Line 1: Line 1:
''' Функция 30 - работа с активной папкой '''
'''Функция 30''' - работа с активной папкой


----
----
Line 11: Line 11:
Возвращаемое значение:
Возвращаемое значение:
:* функция не возвращает значения
:* функция не возвращает значения
'''Константы для регистров:'''
::eax - SF_CURRENT_FOLDER (30)
::ebx - SSF_SET_CF (1)


=== Подфункция 2 - получить активную папку для потока. ===
=== Подфункция 2 - получить активную папку для потока. ===
Line 28: Line 32:
:* При создании процесса/потока текущая папка наследуется от
:* При создании процесса/потока текущая папка наследуется от
::родителя.
::родителя.
'''Константы для регистров:'''
::eax - SF_CURRENT_FOLDER (30)
::ebx - SSF_GET_CF (2)


=== Подфункция 3 - установить доп. системную директорию для ядра. ===
=== Подфункция 3 - установить доп. системную директорию для ядра. ===
Line 46: Line 54:
Замечания:
Замечания:
:* Функция может быть вызвана только 1 раз за 1 сессию работы ОС.
:* Функция может быть вызвана только 1 раз за 1 сессию работы ОС.
'''Константы для регистров:'''
::eax - SF_CURRENT_FOLDER (30)
::ebx - SSF_ADD_SYS_FOLDER (3)


{{System_functions}}
{{System_functions}}
[[Category: SysCalls]]
[[Category: SysCalls]]

Revision as of 17:52, 17 January 2016

Функция 30 - работа с активной папкой


Подфункция 1 - установить текущую папку для потока.

Параметры:

  • eax = 30 - номер функции
  • ebx = 1 - номер подфункции
  • ecx = указатель на ASCIIZ-строку с путём к новой текущей папке

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

  • функция не возвращает значения

Константы для регистров:

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 = указатель на блок данных:
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 сессию работы ОС.

Константы для регистров:

eax - SF_CURRENT_FOLDER (30)
ebx - SSF_ADD_SYS_FOLDER (3)