Difference between revisions of "SysFn30/ru"

From KolibriOS wiki
Jump to navigation Jump to search
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
 
Возвращаемое значение:
 
Возвращаемое значение:
* eax = длина имени активной папки (включая завершающий 0)
+
:* функция не возвращает значения
 
 
 
Замечания:
 
Замечания:
* Если размера буфера недостаточно для копирования всего имени, копируются только первые (edx-1) байт и в конце ставится завершающий 0.
+
:* Функция может быть вызвана только 1 раз за 1 сессию работы ОС.
* По умолчанию, текущая папка для потока - "/rd/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 сессию работы ОС.