Что означает код HRESULT 0x80010100 (RPC_E_SYS_CALL_FAILED)?

 
Предыдущий Следующий
RPC_E_SERVER_DIED_DNE RPC_E_OUT_OF_RESOURCES

RPC_E_SYS_CALL_FAILED

RPC_E_SYS_CALL_FAILED: смысл кода и диагностика

RPC_E_SYS_CALL_FAILED — HRESULT, относящийся к области COM/RPC. Системный вызов Windows, необходимый среде COM/RPC, завершился ошибкой.

В случае этот результат этот HRESULT возвращён инфраструктурой COM. Применительно к этому результату полезная причина определяется границей процесса/апартамента, интерфейсом, методом и тем, какая сторона не смогла маршалировать данные.

Особенность результат

Финальный COM HRESULT скрывает ошибку системного вызова внутри RPC runtime, поэтому нужен первый status в журналах клиента и сервера. Проверьте исчерпание ресурсов, security context, доступность RPC endpoint, разрядность процесса и точную версию deployment.

Разбор условия ошибки

В случае этот результат важно сохранить исходный контекст вызова: имя функции, параметры, состояние объекта и первый низкоуровневый статус. Применительно к нему без этого одинаковый HRESULT может ошибочно связываться с разными причинами.

  • При разборе он после разрыва соединения или отключения объекта создайте новый COM-прокси, а не повторяйте вызов через старый.
  • При разборе он запишите CLSID/IID, номер метода, границу процесса или апартамента и сторону, на которой получен HRESULT.
  • При разборе он проверьте регистрацию интерфейса и proxy/stub, разрядность компонентов и совместимость type library.
  • При разборе он сверьте типы, размеры и время жизни всех входных/выходных параметров, особенно указателей и пользовательских структур.

Диагностический минимум

  • Включите журналирование RPC/COM только на время воспроизведения и зафиксируйте идентификатор интерфейса.
  • Проверьте тот же метод in-proc или с минимальными параметрами, чтобы локализовать маршалинг.
  • Соберите дампы клиента и сервера вокруг первого сбоя и сохраните correlation между вызовами.

Критерий успешного исправления

В случае он считайте причину он устранённой только после проверки на тех же данных и под той же учётной записью, где возник сбой, а затем выполните контрольный тест с заведомо неверным входом.

Ссылки по этому результату


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