Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Программа DpWmiFunctionControl включает или отключает уведомление о событиях и включает или отключает сбор данных для блоков данных, зарегистрированных драйвером как дорогостоящий для сбора. Эта подпрограмма является необязательной.
Синтаксис
WMI_FUNCTION_CONTROL_CALLBACK WmiFunctionControlCallback;
NTSTATUS WmiFunctionControlCallback(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp,
[in] ULONG GuidIndex,
[in] WMIENABLEDISABLECONTROL Function,
[in] BOOLEAN Enable
)
{...}
Параметры
[in] DeviceObject
Указатель на структуру WDM драйвера DEVICE_OBJECT.
[in] Irp
Указатель на IRP.
[in] GuidIndex
Задает блок данных путем предоставления отсчитываемого от нуля индекса в список идентификаторов GUID, предоставленных драйвером в структуре WMILIB_CONTEXT, переданной в WmiSystemControl.
[in] Function
Указывает, что нужно включить или отключить. WmiEventControl указывает на событие, а WmiDataBlockControl указывает сбор данных для блока, зарегистрированного как дорогостоящий для сбора (т. е. блок, для которого установлен драйвер WMIREG_FLAG_EXPENSIVE в флагах флагов структуры WMIGUIDREGINFO, используемой для регистрации блока).
[in] Enable
Указывает TRUE для включения события или сбора данных или FALSE для отключения.
Возвращаемое значение
DpWmiFunctionControl возвращает STATUS_SUCCESS или соответствующее состояние ошибки, например:
Замечания
WMI вызывает драйвера dpWmiFunctionControl после вызова драйвера WmiSystemControl в ответ на один из следующих запросов:
Если драйвер реализует подпрограмму DpWmiFunctionControl, драйвер должен поместить адрес подпрограммы в элемент WmiFunctionControl структуры WMILIB_CONTEXT, которую он передает WmiSystemControl. Если драйвер не реализует подпрограмму DpWmiFunctionControl, необходимо задать WmiFunctionControl значение NULL. В последнем случае WMI возвращает STATUS_SUCCESS вызывающей объекту.
Драйвер отвечает за проверку всех входных аргументов. В частности, драйвер должен выполнить следующие действия:
- Убедитесь, что значение guidIndex находится в диапазоне от нуля до GuidCount-1 на основе элемента GuidCount структуры WMILIB_CONTEXT.
- Убедитесь, что драйвер не помечает указанный блок данных для удаления. Если драйвер недавно указал флаг WMIREG_FLAG_REMOVE_GUID в структуре WMIGUIDREGINFO, содержащейся в структуре WMILIB_CONTEXT, можно получить дополнительный запрос до удаления.
После включения или отключения события или сбора данных для блока драйвер вызывает WmiCompleteRequest, чтобы завершить запрос.
Эта подпрограмма может быть страничной.
Дополнительные сведения о реализации этой подпрограммы см. в вызове WmiSystemControl для обработкиIRP WMI.
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Настольный |
| заголовка | wmilib.h (include Wmilib.h) |
| IRQL | Звонил в PASSIVE_LEVEL. |