Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Применимо только к KMDF]
Для поддержки блоков данных WMI драйвер на основе платформы:
Регистрирует имена ресурсов в формате управляемых объектов (MOF) любых настроенных поставщиков данных WMI, которые не указаны в Wmicore.mof.
Создает один или несколько объектов экземпляра WMI для представления блоков данных, которые они могут читать или записывать.
При необходимости реализует одну или несколько функций обратного вызова событий для предоставления данных WMI, которые предоставляет драйвер.
Зарегистрируйте каждый объект экземпляра WMI, чтобы сделать его доступным для клиентов WMI.
Чтобы инициализировать поддержку WMI, драйвер KMDF выполняет следующие действия, как правило, в пределах EvtDriverDeviceAdd или EvtDeviceSelfManagedIoInit обратного вызова:
Драйвер, предоставляющий MOF-файл для поддержки настраиваемых поставщиков данных WMI, должен вызывать метод WdfDeviceAssignMofResourceName, чтобы зарегистрировать имя ресурса MOF, прежде чем драйвер создает объекты поставщика WMI, представляющие поставщика данных.
Инициализируйте структуру конфигурации поставщика WMI и при необходимости создайте объект поставщика WMI (WDFWMIPROVIDER).
Инициализируйте структуру конфигурации экземпляра WMI и создайте объект экземпляра WMI (WDFWMIINSTANCE).
Платформа по умолчанию создает поставщика WMI, когда драйвер KMDF создает свой первый экземпляр WMI. Таким образом, если драйверу требуется только один поставщик WMI, не требуется вызывать метод создания поставщика (WdfWmiProviderCreate). Однако драйвер должен заполнить структуру конфигурации поставщика, так как эта структура предоставляет сведения о поставщике, используемом платформой при создании экземпляра.
Если драйвер создает один экземпляр каждого блока данных WMI, который он поддерживает, драйвер вызывает WdfWmiInstanceCreate, передавая как структуру WDF_WMI_PROVIDER_CONFIG, так и структуру WDF_WMI_INSTANCE_CONFIG. Этот одиночный вызов настраивает объект поставщика WMI, предоставляемый одной платформой, и создает объект экземпляра WMI.
Если драйвер создает несколько экземпляров своих блоков данных WMI, драйвер должен вызывать как WdfWmiProviderCreate, так и WdfWmiInstanceCreate
регистрации экземпляров поставщика
Прежде чем клиенты WMI смогут получить доступ к блокам данных WMI драйвера, драйвер должен зарегистрировать экземпляры поставщика в службе WMI системы. Драйвер может использовать любой из следующих методов для регистрации экземпляра поставщика:
Задайте для регистра элемента экземпляра поставщика структуры WDF_WMI_INSTANCE_CONFIG значение TRUE.
Если драйвер задает зарегистрировать для TRUE, платформа автоматически регистрирует экземпляр при первом входе устройства в рабочее состояние (D0).
Вызовите метод WdfWmiInstanceRegister.
Если драйвер вызывает WdfWmiInstanceRegister после вызова WdfWmiInstanceCreate, платформа регистрирует экземпляр после того, как устройство находится в состоянии работы (D0).
Фреймворк автоматически снимает регистрацию каждого экземпляра поставщика при удалении устройства экземпляра (и до вызова функции обратного вызова события EvtDeviceSelfManagedIoCleanup). Сведения о порядке, в котором фреймворк вызывает функции обратного вызова драйвера, см. в сценариях PnP и управления питанием.
Драйвер может в любое время отменить регистрацию экземпляра, вызвав WdfWmiInstanceDeregister.