| Предыдущий | Следующий |
| ERROR_WMI_INVALID_REGINFO | ERROR_WMI_READ_ONLY |
ERROR_WMI_ALREADY_DISABLED
description[блок данных WMI уже был отключён.]Повторный запрос остановки выявляет нарушение учёта жизненного цикла
WMI использует операции отключения, чтобы сообщить поставщику, что сбор дорогостоящего блока или уведомления блока событий больше не нужен. Этот статус означает, что поставщик уже считает блок отключённым. Его следует диагностировать как нарушение баланса переходов состояния, а не как повод повторно освобождать ресурсы.
В нормальном контракте сбора WMI отправляет запрос отключения, когда последний потребитель перестаёт нуждаться во включённом дорогостоящем блоке. Поставщик должен сделать остановку сбора безопасной и идемпотентной, сохраняя достаточно состояния для обнаружения ошибок протокола в прямом или пользовательском пути запросов.
Как предотвратить повторное завершение
- Храните состояние включения отдельно для каждого блока и устройства поставщика, а не в одном глобальном для процесса логическом значении, общем для несвязанных экземпляров.
- Освобождайте таймеры, подписки на события и буферы только при переходе из включённого в отключённое состояние.
- Трассируйте соответствующую последовательность включения и отключения, чтобы связать устаревший запрос с удалением устройства или повторной регистрацией поставщика.
Ссылки
- Windows WDK: отключение сбора
- Windows WDK: обратные вызовы управления функциями
- Windows WDK: флаги дорогостоящего сбора и событий
Нужно найти другой код? Найти другой код состояния или ошибки.
