| Предыдущий | Следующий |
| ERROR_EVT_INVALID_CHANNEL_PATH | ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND |
ERROR_EVT_INVALID_QUERY
Запрос журнала событий синтаксически или семантически неверен
EvtQuery и EvtSubscribe принимают либо ограниченное выражение XPath, либо структурированный документ QueryList. Windows реализует не весь XPath 1.0: селекторы должны обращаться к узлам событий, доступны только ограниченные оси и функции, а структурированные запросы должны соответствовать схеме запросов журнала событий. Запрос, корректный для универсального XML-инструмента, здесь всё равно может оказаться недопустимым.
Немедленно вызовите EvtGetExtendedStatus в том же потоке, который получил ошибку: функция может указать позицию разбора и причину. Сначала проверьте минимальный селектор, затем добавляйте предикаты по одному. Также проверьте, используется ли при вызове EvtQueryTolerateQueryErrors, поскольку толерантный режим меняет представление ошибок отдельных каналов и подавляет часть расширенной диагностики XPath.
Что исследовать
- Получите EvtGetExtendedStatus до следующего вызова API журнала событий.
- Различайте простой селектор XPath и XML-документ QueryList.
- Сокращайте запрос, пока не будет выделено неподдерживаемое выражение или путь.
Ссылки
- Microsoft: запрос событий Windows
- Microsoft: подмножество XPath журнала событий и поведение результатов
- Microsoft: EvtGetExtendedStatus
- W3C: рекомендация XPath 1.0
Нужно найти другой код? Найти другой код состояния или ошибки.
