KasperskyOS Community Edition 1.1
Отзыв дескрипторов

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

Отзыв дескрипторов не удаляет их, но через отозванные дескрипторы невозможно обращаться к ресурсам. Любая функция, которая принимает дескриптор, завершается с ошибкой 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);