функция обратного вызова 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(состояние) равно 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 (include Wdf.h) |
IRQL | PASSIVE_LEVEL |