| Предыдущий | Следующий |
| ERROR_WMI_INVALID_MOF | ERROR_WMI_ALREADY_DISABLED |
ERROR_WMI_INVALID_REGINFO
Буфер регистрации не описывает допустимый контракт поставщика
Регистрация WMI ядра представляет собой двоичные данные, а не удобный параметр реестра. Поставщик возвращает структуру WMIREGINFO, за которой следуют записи WMIREGGUID и, при необходимости, данные статических имён экземпляров. Недопустимые поля размера, числа, смещения, строки или записи GUID могут привести к отклонению регистрации WMI до отправки любого клиентского запроса.
Смещения в этой структуре отсчитываются от начала буфера регистрации, а буфер должен включать каждый объявленный блок данных, блок событий и обязательные сведения об экземплярах. Сбой может возникать только на конкретном устройстве или сборке, когда необязательный блок изменяет вычисленную структуру.
Что проверить в поставщике
- Вычислите полный размер буфера с проверками переполнения до записи смещений или строк переменной длины.
- Проверьте
GuidCount, каждую записьWMIREGGUIDи каждое статическое имя экземпляра относительно итогового выделенного буфера. - Проверьте как первоначальную регистрацию, так и путь обновления, добавляющий, удаляющий или изменяющий блок.
Ссылки
- Windows WDK: структура и смещения IRP_MN_REGINFO_EX
- Windows WDK: семантика флагов регистрации
- Windows WDK: требования к обратным вызовам поставщика
Нужно найти другой код? Найти другой код состояния или ошибки.
