| Предыдущий | Следующий |
| 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, и предполагаемое время жизни дескриптора.
- До очистки учётных данных владения убедитесь, что закрытие действительно завершилось успешно.
Ссылки
- Microsoft: SetHandleInformation
- Microsoft: CloseHandle
- System Informer PHNT: нативный API Object Manager
Нужно найти другой код? Найти другой код состояния или ошибки.