| Предыдущий | Следующий |
| NTE_NOT_SUPPORTED | NTE_BUFFERS_OVERLAP |
NTE_NO_MORE_ITEMS
В NTE_NO_MORE_ITEMS особенно важна область действия: перечисления поставщика. Перечисление достигло нормального конца, поэтому следующей записи поставщика, ключа, алгоритма или свойства в текущем состоянии нет. Сохраняйте шестнадцатеричное значение 0x8009002A вместе с API, который его вернул, поскольку высокоуровневое ПО может преобразовать его в сообщение, теряющее это различие.
Что именно устанавливает этот код
Для этого результата API перечисления поставщиков и ключей обычно используют состояние продолжения и после последнего элемента возвращают статус конца последовательности. Учитывайте позицию вызова: тот же результат может быть нормальным завершением цикла после успешных элементов либо свидетельствовать, что в выбранной области изначально нет видимых записей.
Процедура локализации
Выполните то же перечисление под требуемой идентичностью у поставщика с одним известным тестовым ключом. Убедитесь, что цикл один раз возвращает элемент, один раз достигает конечного статуса и освобождает состояние. Это выявляет циклы повторного старта и устаревшие continuation-данные.
Типичные ошибочные действия
Этот статус может быть нормальным условием завершения цикла, а не ошибкой, и не должен превращаться в шторм повторов. Не повторяйте конечный вызов без сброса состояния перечисления: это может создать busy loop без новой информации.
Как доказать работоспособность нужного пути
Вызывающая сторона должна отличать ожидаемый конечный статус от неожиданно пустого результата и освобождать ресурсы перечисления в обоих случаях.
Технические ссылки
Для NTE_NO_MORE_ITEMS, эти источники определяют HRESULT и соответствующий интерфейс, протокол или формат данных перечисления поставщика.
Нужно найти другой код? Найти другой код состояния или ошибки.
