SysFn46/ru: Difference between revisions
Jump to navigation
Jump to search
(Created page with ''''Функция 46 - зарезервировать/освободить группу портов ввода/вывода''' ---- К зарезервированным по...') |
mNo edit summary |
||
Line 16: | Line 16: | ||
'''Возвращаемое значение:''' | '''Возвращаемое значение:''' | ||
* eax = 0 - успешно | |||
* eax = 1 - ошибка | |||
'''Замечания:''' | '''Замечания:''' |
Revision as of 13:31, 6 April 2010
Функция 46 - зарезервировать/освободить группу портов ввода/вывода
К зарезервированным портам можно обращаться напрямую из приложения командами in/out (рекомендуемый способ) и вызовом функции 43 (нерекомендуемый способ).
Внимание:
- Эта функция устарела и может быть удалена в следующих версиях ядра.
- При необходимости прямого (бездрайверного) ввода/вывода в порты и в память внешних устройств рекомендуется использовать функцию 62
Параметры:
- eax = 46 - номер функции
- ebx = 0 - зарезервировать, 1 - освободить
- ecx = номер начала диапазона портов
- edx = номер конца диапазона портов (включительно)
Возвращаемое значение:
- eax = 0 - успешно
- eax = 1 - ошибка
Замечания:
- В случае резервирования портов ошибкой считается невыполнение одного из следующих условий:
- начальный адрес должен быть не больше конечного;
- указанный диапазон должен содержать корректные адреса портов (в диапазоне от 0 до 0xFFFF);
- допускается не более 255 резервируемых адресов;
- указанный диапазон не должен пересекаться с одним из ранее зарезервированных.
- В случае освобождения портов ошибкой считается попытка освобождения диапазона, который ранее не был целиком зарезервирован этой же функцией (с такими же значениями ecx, edx).
- При обнаружении ошибки (в обоих случаях) никаких действий не производится.
- При загрузке система резервирует за собой порты 0..0x2d, 0x30..0x4d, 0x50..0xdf, 0xe5..0xff (включительно).
- При завершении потока автоматически освобождаются все зарезервированные им порты.
|