Функция 46 - зарезервировать/освободить группу портов ввода/вывода.
К зарезервированным портам можно обращаться напрямую из приложения
командами in/out (рекомендуемый способ) и вызовом функции 43
(нерекомендуемый способ).
Параметры:
eax = 46 - номер функции
ebx = 0 - зарезервировать, 1 - освободить
ecx = номер начала диапазона портов
edx = номер конца диапазона портов (включительно)
Возвращаемое значение:
eax = 0 - успешно
eax = 1 - ошибка
Замечания:
В случае резервирования портов ошибкой считается выполнение
одного из условий:
начальный адрес больше конечного;
указанный диапазон содержит некорректный номер порта
(корректные - от 0 до 0xFFFF);
превышено ограничение на общее число зарезервированных областей
- допускается максимум 255;
указанный диапазон пересекается с одним из
ранее зарезервированных
В случае освобождения портов ошибкой считается попытка
освобождения диапазона, который ранее не был целиком
зарезервирован этой же функцией (с такими же значениями ecx,edx).
При обнаружении ошибки (в обоих случаях) никаких действий
не производится.
При загрузке система резервирует за собой порты
0..0x2d, 0x30..0x4d, 0x50..0xdf, 0xe5..0xff (включительно).
При завершении потока автоматически освобождаются все
зарезервированные им порты.
KOS API | Содержание DockPack
Pterox' DocPack R4.1. Last Edition: 04.05.2010. История выпусков