Что означает код ошибки Windows 6 (ERROR_INVALID_HANDLE)?

 
Также может означать:
КонстантаТипОС
KERN_RESOURCE_SHORTAGEКод возврата ядра macOSmacOS
ippStsDivByZeroСтатус Intel IPPЛюбая
ENXIOerrnoЛюбая
INVALID_PROCESS_DETACH_ATTEMPTКод BSODWindows
Предыдущий Следующий
ERROR_ACCESS_DENIED ERROR_ARENA_TRASHED

ERROR_INVALID_HANDLE

Дескриптор нельзя использовать с запрошенным API

ERROR_INVALID_HANDLE означает, что API получил значение дескриптора, которое в текущем процессе не относится к допустимому совместимому объекту ядра. Типичные причины: двойное закрытие, неинициализированные поля, ошибки владения и использование псевдодескриптора там, где требуется настоящий дескриптор.

Шаги отладки

  • Отследите, где дескриптор был создан, передан, дублирован и закрыт.
  • Инициализируйте переменные дескрипторов документированным недопустимым значением и сбрасывайте их после закрытия.
  • Убедитесь, что тип дескриптора соответствует вызываемому API.
  • Проверьте гонки, в которых один поток закрывает объект, пока другой продолжает его использовать.

Профилактика

Назначьте каждому дескриптору явного владельца и по возможности используйте в C++ обёртки, привязанные к области видимости. Повтор с тем же дескриптором бессмыслен; после исправления жизненного цикла создайте базовый объект заново.

Ссылки


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