Что означает код NTSTATUS 0xC0000235 (STATUS_HANDLE_NOT_CLOSABLE)?

 
Предыдущий Следующий
STATUS_ACCOUNT_LOCKED_OUT STATUS_CONNECTION_REFUSED

STATUS_HANDLE_NOT_CLOSABLE

Дескриптор объекта намеренно защищён от закрытия

Дескрипторы Windows могут иметь свойство защиты от закрытия. Публичный API SetHandleInformation предоставляет HANDLE_FLAG_PROTECT_FROM_CLOSE; нативное представление Object Manager предоставляет соответствующий флаг ProtectFromClose дескриптора. Попытка закрыть такой дескриптор отклоняется вместо безусловного уничтожения ссылки.

Определите, кто установил флаг и является ли защита частью проектируемого времени жизни компонента. Общий цикл очистки, закрывающий каждый числовой дескриптор, может законно получить этот статус. Если дескриптор необходимо закрыть, сначала снимите защиту через API-владелец или путь информации Object Manager. Не подавляйте статус, считая ресурс освобождённым.

Что проверить

  • Перед очисткой запросите или отслеживайте флаг защиты дескриптора.
  • Определите компонент, включивший protect-from-close, и предполагаемое время жизни дескриптора.
  • До очистки учётных данных владения убедитесь, что закрытие действительно завершилось успешно.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.