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

 
Предыдущий Следующий
RPC_S_INVALID_TAG RPC_S_NO_ENTRY_NAME

RPC_S_INVALID_BOUND

Согласуемый или изменяемый массив содержит невозможные границы

RPC_S_INVALID_BOUND указывает, что значения согласования или вариативности массива NDR во время выполнения противоречат друг другу. Типичные примеры: передаваемая длина превышает выделенный размер, первый элемент находится за максимальной границей, при вычислении верхней границы произошло арифметическое переполнение либо связанные значения size_is и length_is не совпадают.

Перед вызовом записывайте каждое значение счётчика, используемое выражениями корреляции IDL, включая знаковость и единицы измерения. До выделения памяти или маршалинга проверяйте ошибки «байты вместо элементов» и переполнение умножения. На принимающей стороне сохраняйте строгие проверки заглушек вместо их отключения ради совместимости. Повтор сетевого запроса с теми же счётчиками воспроизведёт ошибку, поскольку структура данных изначально недопустима.

Что следует проверить

  • Убедитесь, что передаваемая длина никогда не превышает число выделенных элементов.
  • Проверяйте отрицательные и переполненные значения до их передачи сгенерированным заглушкам.
  • Сопоставьте 32- и 64-разрядные сборки на предмет различий ширины типов или выражений корреляции.

Ссылки


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