| Предыдущий | Следующий |
| QUERY_E_INVALID_OUTPUT_COLUMN | QUERY_E_DIR_ON_REMOVABLE_DRIVE |
QUERY_E_INVALID_DIRECTORY
Практический смысл
Практический смысл QUERY_E_INVALID_DIRECTORY (0X8004160A): имя каталога или область поиска недопустимы. В трассировке отделяйте маркер «invalid directory» от последующих wrapper/UI ошибок: они могут появиться уже после первичной границы и не объясняют исходное состояние.
Свидетельства
До повторной попытки запишите query scope, restriction/sort/output columns, catalog state и locale/code page. Для условия «имя каталога или область поиска недопустимы» эти данные важнее общего текста сообщения, потому что позволяют связать результат с конкретным владельцем операции.
- точную сериализованную строку/список свойств, реально переданный парсеру.
- позицию токена, quote/delimiter state, locale и code page.
- canonical property name/type и schema/catalog generation.
| Наблюдение | Что оно означает |
|---|---|
| Первый вызов возвращает QUERY_E_INVALID_DIRECTORY | Граница «имя каталога или область поиска недопустимы» относится к текущему объекту и generation; сохраните это состояние до cleanup. |
| После одного целевого изменения код исчезает | Связь с условием «имя каталога или область поиска недопустимы» подтверждается только если остальные входы и owning context не изменились. |
| Первым становится другой HRESULT | Считайте его новой первичной границей; маркер «invalid directory» больше не должен подменять причину следующего отказа. |
Проверка одной переменной
Контрольный запуск должен воспроизводить «имя каталога или область поиска недопустимы» на тех же исходных данных. Затем исправьте только поле, структуру, token или registration value, которое отклонил компонент. Если операция проходит прежнюю стадию, гипотеза локализована; если нет — вернитесь к первому HRESULT и сохранённым полям.
- Зафиксируйте первый
QUERY_E_INVALID_DIRECTORYи объект, которому принадлежит маркер «invalid directory». - Сохраните входные данные и lifecycle-state до изменения условия «имя каталога или область поиска недопустимы».
- Измените только состояние, связанное с «имя каталога или область поиска недопустимы», и выполните тот же вызов ещё раз.
Как подтвердить исправление
Не пересоздавайте catalog до проверки restriction/sort/output scope, действительно вернувшего этот код. Исправление считается реальным, когда прежняя граница «имя каталога или область поиска недопустимы» пройдена на сопоставимом входе, а не просто скрыта более общим сообщением.
Документация
- Microsoft: Indexing Service query-execution values.
- Microsoft: Windows Search WHERE clause.
- Microsoft: OLE DB provider for Indexing Service.
- Microsoft: ISearchQueryHelper.
Нужно найти другой код? Найти другой код состояния или ошибки.