Вызов процедуры может быть реализован несколькими способами:
1) прямой вызов процедуры из не подчиненного сегмента,
2) прямой вызов процедуры из подчиненного сегмента,
3) косвенныйвызовчерезшлюз.
Косвенный вызов через шлюз.
Передача управления через шлюз позволяет организовать обращение к подчиненным сегментам кода. Такие сегменты кода, как правило, соответствуют часто встречающимся функциям и должны быть доступны многим задачам, расположенным во внешних кольцах защиты.
Передача через шлюз основана на использовании специальных дескрипторов типа «шлюз». Структура дескриптора типа «шлюз» отличается от структуры обычного дескриптора сегмента.
Вызываемый код может иметь любой уровень привилегий.
При использовании «шлюзов» учитываются следующие правила:
- значение DPL шлюза должно быть больше или равно значения текущего уровня привилегий CPL,
- значение DPL шлюза должно быть больше или равно значения RPL селектора шлюза,
- значение DPL шлюза должно быть больше или равно значения DPL целевого сегмента кода,
- DPL целевого сегмента кода должно быть меньше или равно значения CPL текущего процесса.