| Предыдущий | Следующий |
| S_ADS_ERRORSOCCURRED | S_ADS_NOMORE_COLUMNS |
S_ADS_NOMORE_ROWS
S_ADS_NOMORE_ROWS — нормальный маркер конца перечисления строк IDirectorySearch. Он возвращается, когда в текущем дескрипторе поиска больше нет строк результатов; сам по себе код не означает, что запрос завершился ошибкой или каталог был недоступен.
Считайте его условием завершения цикла, а не ошибкой поиска
- Связывайте
ADS_SEARCH_HANDLEс одним вызовомExecuteSearchи продвигайте его черезGetFirstRow/GetNextRow. - Считайте строки отдельно от конечного HRESULT, чтобы в журнале различались пустой набор результатов и ошибка перечисления.
- После перечисления закройте дескриптор поиска; не повторяйте бесконечно тот же вызов строки после достижения этого состояния.
Документация IDirectorySearch явно использует этот статус как условие конца итерации строк. Сравните его с S_ADS_ERRORSOCCURRED, который может означать проблемы с частичными результатами. Если код приложения превращает каждое значение, отличное от S_OK, в исключение, он ошибочно классифицирует нормально завершённый поиск. Полезные данные диагностики — фильтр, запрошенные атрибуты, область поиска и окончательное число строк, а не общее сообщение о сбое службы каталогов.
Поиск через IDirectorySearch · Общие состояния ADSI
Нужно найти другой код? Найти другой код состояния или ошибки.
