Что означает код HRESULT 0x80070005 (E_ACCESSDENIED)?

 
Также может означать:
КонстантаТипОС
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)Ошибка WindowsWindows
Предыдущий Следующий
SL_E_SFS_INVALID_TOKEN_DESCRIPTOR E_HANDLE

E_ACCESSDENIED

Что означает E_ACCESSDENIED

E_ACCESSDENIED (0x80070005) — Общая ошибка отказа в доступе.

Контекст результата 0x80070005 — подсистема «COM/WinRT» и область «контракт вызываемого interface, аргументы и state объекта». Условие «общая ошибка отказа в доступе» указывает на тему «accessdenied», а не на общий отказ всего компонента.

Что проверить и как подтвердить исправление

Первый шаг — сопоставьте первый отказ с фактическими параметрами операции. Когда при 0x80070005 система сообщает «общая ошибка отказа в доступе», сопоставьте security context процесса или службы с ACL, правами и учётными данными целевого объекта; запуск с повышенными правами используйте только как контроль.

Для воспроизведения 0x80070005 сохраните IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IDs, CLSID, HRESULT. По теме «accessdenied» для 0x80070005 сравните эти данные с исправным запуском до очистки журналов или пересоздания объекта.

Для 0x80070005 применяйте исправление на границе первого отказа: приведите аргументы и жизненный цикл объекта к контракту метода; неизменённый вызов после contract failure повторять не следует. Сообщение «общая ошибка отказа в доступе» при 0x80070005 не следует подавлять общей обработкой исключения.

Считайте исправление подтверждённым только после устойчивого повтора исходного сценария без результата 0x80070005 и без обхода штатных проверок.

Документация для результата 0x80070005: Microsoft Open Specifications: HRESULT values · COM clients and servers · CoGetClassObject.


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