| Предыдущий | Следующий |
| STATUS_FATAL_APP_EXIT | STATUS_WAS_UNLOCKED |
STATUS_PREDEFINED_HANDLE
Дескриптор имеет специальную семантику предопределённого раздела
Дескрипторы вроде HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER являются предопределёнными точками входа, а не обычными дескрипторами, возвращёнными для одного открытого раздела. Windows может кэшировать или перенаправлять их, а операции уровня процесса, такие как RegOverridePredefKey, изменяют, куда разрешается предопределённый дескриптор.
Это различие важно для служб и кода с олицетворением. Microsoft документирует отдельные API для отключения кэширования предопределённых дескрипторов и открытия раздела текущего олицетворённого пользователя, поскольку кэшированный HKEY_CURRENT_USER иначе может относиться к неожиданному контексту безопасности.
Что проверить
- Определите, передал ли вызывающий код предопределённую константу или дескриптор открытого раздела.
- Проверьте использование RegOverridePredefKey в установщиках и тестовых стендах.
- Используйте RegOpenCurrentUser, когда требуется текущий олицетворённый пользователь.
- Не применяйте обычные предположения о времени жизни к предопределённому дескриптору уровня процесса.
Ссылки
- Microsoft Learn: предопределённые разделы
- Microsoft Learn: RegOverridePredefKey
- Microsoft Learn: функции реестра
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.