Отзыв дескрипторов

02 августа 2023

ID libkos_handles_revoke

Программа может отзывать потомков дескриптора, которым она владеет. Отзыв дескрипторов осуществляется согласно дереву наследования дескрипторов.

Отзыв дескрипторов не удаляет их, но через отозванные дескрипторы невозможно обращаться к ресурсам. Любая функция, которая принимает дескриптор, завершается с ошибкой rcHandleRevoked, если эта функция вызывается с отозванным дескриптором.

Отзыв выполняется функциями KnHandleRevoke() и KnHandleRevokeSubtree(), которые объявлены в заголовочном файле coresrv/handle/handle_api.h. Функция KnHandleRevokeSubtree() использует объект контекста передачи ресурса, который создается при передаче дескрипторов.

handle_api.h (фрагмент)

/**

* Функция удаляет дескриптор handle и отзывает всех его потомков.

* В случае успеха функция возвращает rcOk, иначе возвращает код ошибки.

*/

Retcode KnHandleRevoke(Handle handle);

/**

* Функция отзывает дескрипторы, которые образуют поддерево

* наследования дескриптора handle. Корневым узлом поддерева

* наследования является дескриптор, который порожден передачей

* дескриптора handle в ассоциации с объектом контекста

* передачи ресурса badge.

* В случае успеха функция возвращает rcOk, иначе возвращает код ошибки.

*/

Retcode KnHandleRevokeSubtree(Handle handle, Handle badge);

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!