функция обратного вызова EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD (wdfwmi.h)
[Относится только к KMDF]
Функция обратного вызова EvtWmiInstanceExecuteMethod драйвера выполняет указанный метод, который драйвер предоставляет для экземпляра поставщика данных WMI.
Синтаксис
EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD EvtWdfWmiInstanceExecuteMethod;
NTSTATUS EvtWdfWmiInstanceExecuteMethod(
[in] WDFWMIINSTANCE WmiInstance,
[in] ULONG MethodId,
[in] ULONG InBufferSize,
[in] ULONG OutBufferSize,
[in, out] PVOID Buffer,
[out] PULONG BufferUsed
)
{...}
Параметры
[in] WmiInstance
Дескриптор объекта экземпляра WMI.
[in] MethodId
Значение , идентифицирующее метод в экземпляре поставщика. Это значение соответствует значению WmiMethodId , указанному в MOF-файле поставщика.
[in] InBufferSize
Количество байтов входных данных.
[in] OutBufferSize
Количество байтов выходных данных, на которые может храниться буфер, на который указывает буфер .
[in, out] Buffer
Указатель на буфер, используемый для ввода, вывода или и того, и другого, как определено указанным методом. Если указаны входные и выходные данные, драйвер перезаписывает входные данные выходными данными.
[out] BufferUsed
Указатель на расположение, которое получает количество байтов, записанных драйвером в выходной буфер. Если размер выходного буфера, указанный параметром OutBufferSize , слишком мал, драйвер устанавливает для этого расположения требуемый размер буфера.
Возвращаемое значение
Функция обратного вызова EvtWmiInstanceExecuteMethod должна возвращать STATUS_SUCCESS, если операция выполнена успешно. В противном случае эта функция должна возвращать значение состояния, для которого NT_SUCCESS(status) равно FALSE. Драйвер должен возвращать STATUS_BUFFER_TOO_SMALL, если значение параметра OutBufferSize указывает, что выходной буфер слишком мал для получения данных.
Комментарии
Чтобы зарегистрировать функцию обратного вызова EvtWmiInstanceExecuteMethod , драйвер должен поместить адрес функции в структуру WDF_WMI_INSTANCE_CONFIG перед вызовом WdfWmiInstanceCreate.
После выполнения драйвером метода экземпляра, заданного параметром MethodId , драйвер должен использовать параметр BufferUsed для хранения количества байтов, записанных в буфер.
Платформа не синхронизирует вызовы функций обратного вызова событий WMI драйвера друг с другом или с другими функциями обратного вызова событий драйвера. Если данные функции обратного вызова EvtWmiInstanceExecuteMethod являются динамическими и совместно используются другими функциями обратного вызова, драйвер может использовать блокировки ожидания или спин-блокировки платформы для синхронизации доступа к данным.
Дополнительные сведения о функции обратного вызова EvtWmiInstanceExecuteMethod см. в разделе Поддержка WMI в драйверах Framework-Based.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Верхняя часть | wdfwmi.h (включая Wdf.h) |
IRQL | PASSIVE_LEVEL |