Запрошенный уровень привилегированности (RPL) может предотвратить случайное использование указателей, разрушающих более привилегированный код из кода с меньшим уровнем привилегированности.
Распространенным примером может служить файловая системная процедура FREAD (идентификатор_файла, n_байтов, указатель_буфера). Эта гипотетическая процедура считывает данные из дискового файла в буфер, затирая любое ранее записаное содержимое этого буфера. Она обслуживает запросы программ, работающих на прикладном уровне, но сама должна работать на привилегированном уровне, чтобы всегда иметь возможность обслуживать ввод/вывод операционной системы. Если прикладная программа передаст этой процедуре неверный указатель буфера, который указывает на важные участки кода или данных в привилегированном адресном пространстве, процедура может выполнить действия, ведущие к разрушению системы.
Избежать подобной проблемы позволяет использование RPL. RPL позволяет назначить селектору переопределенную привилегированность. Такая переопределенная привилегированность представляет собой уровень привилегированности кодового сегмента, сгенерировавшего данный селектор сегмента. В вышеприведенном примере RPL должен представлять собой CPL прикладной программы, вызвавшей процедуру системного уровня. Процессор i486 автоматически проверяет любой загруженный в сегментный регистр селектор, определяя, допускает ли его RPL выполнить запрошенный доступ.
Для того, чтобы воспользоваться преимуществами, даваемыми такой проверкой процессором RPL, вызываемая процедура должна только проверять, чтобы все передаваемые ей селекторы сегмента имели RPL с тем же или меньшим уровнем привилегированности, что и CPL исходного источника запроса. Если селектор используется для доступа к сегменту, к которому источник запроса не может обратиться напрямую, т.е. RPL которого имеет меньшую привилегированность, чем DPL запрошенного сегмента, то при загрузке селектора в сегментный регистр генерируется исключение общей защиты.
ARPL (Настроить запрошенный уровень привилегированности) настраивает поле RPL селектора сегмента в большее из значений (меньший уровень привилегированности), выбирая из его исходного значения и значения поля RPL для селектора сегмента, записанного в регистр общего назначения. Поля RPL находятся в двух младших битах селектора сегмента и регистра. Последний обычно представляет собой копию регистра CS вызывающей процедуры в стеке. Если при такой настройке RPL селектора изменяется, то происходит установка флага ZF; в противном случае флаг ZF очищается.