Что означает код NTSTATUS 0xC003000A (RPC_NT_ENUM_VALUE_OUT_OF_RANGE)?

 
Предыдущий Следующий
RPC_NT_NULL_REF_POINTER RPC_NT_BYTE_COUNT_TOO_SMALL

RPC_NT_ENUM_VALUE_OUT_OF_RANGE

Значение перечисления RPC выходит за маршализуемый диапазон

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

Это следует исследовать как проблему версии интерфейса или проверки входных данных. Новый клиент может отправлять значение перечисления, неизвестное старому серверу, либо непроверенные внешние данные могут быть скопированы в параметр перечисления IDL.

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

  • Сравните IDL, использованные для сборки клиента и сервера; расхождение перечислений между версиями является частой причиной.
  • Записывайте числовое значение до маршалинга, а не только символьное значение в коде приложения.
  • Проверьте поведение совместимости при расширении определений перечислений в публичных интерфейсах RPC.

Ссылки


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