Что означает код HRESULT 0x80010010 (RPC_E_INVALID_PARAMETER)?

 
Предыдущий Следующий
RPC_E_INVALID_DATA RPC_E_CANTCALLOUT_AGAIN

RPC_E_INVALID_PARAMETER

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

RPC_E_INVALID_PARAMETER означает, что один из аргументов на границе COM/RPC нельзя принять по контракту marshaling. Это детерминированная ошибка параметра или несовместимых proxy/stub, а не повод повторять тот же вызов без изменения данных.

Что проверить

  • Сверьте IDL signature клиента и сервера, включая nullable pointers, array counts/bounds и direction attributes.
  • Для структур проверьте размер, version field и discriminant; старый клиент не должен передавать layout новой версии как будто он совместим.
  • Если интерфейс содержит несколько сложных аргументов, временно упрощайте их по одному, чтобы найти первый параметр, нарушающий wire contract.
  • Проверьте, что type library/proxy/stub принадлежат одной версии интерфейса и не загружены из разных установок продукта.

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

Исправление подтверждается успешным marshaling тех же бизнес-данных после выравнивания IDL/layout без серверного обхода проверки.

Технические ссылки


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