Поделиться через


функция обратного вызова EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE (wdfwmi.h)

[Применимо только к KMDF]

Функция обратного вызова драйвера EvtWmiInstanceQueryInstance копирует данные экземпляра поставщика WMI в буфер для доставки клиенту WMI.

Синтаксис

EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE EvtWdfWmiInstanceQueryInstance;

NTSTATUS EvtWdfWmiInstanceQueryInstance(
  [in]  WDFWMIINSTANCE WmiInstance,
  [in]  ULONG OutBufferSize,
  [in]  PVOID OutBuffer,
  [out] PULONG BufferUsed
)
{...}

Параметры

[in] WmiInstance

Дескриптор объекта экземпляра WMI.

[in] OutBufferSize

Размер в байтах выходного буфера, на который OutBuffer указывает.

[in] OutBuffer

Указатель на выходной буфер.

[out] BufferUsed

Указатель на расположение, которое получает количество байтов, которое драйвер помещает в выходной буфер. Если размер выходного буфера, указанный параметром OutBufferSize, слишком мал, драйвер задает это расположение требуемому размеру буфера.

Возвращаемое значение

Функция обратного вызова EvtWmiInstanceQueryInstance должна возвращать STATUS_BUFFER_TOO_SMALL, если значение параметра OutBufferSize указывает, что выходной буфер слишком мал для получения данных. В противном случае функция обратного вызова должна копировать данные в буфер и возвращать STATUS_SUCCESS.

Замечания

Чтобы зарегистрировать функцию обратного вызова EvtWmiInstanceQueryInstance, драйвер должен поместить адрес функции в структуру WDF_WMI_INSTANCE_CONFIG перед вызовом WdfWmiInstanceCreate.

Прежде чем платформа отправляет данные экземпляра, предоставленные драйвером, клиенту WMI, он добавляет все необходимые сведения о заголовке WMI в данные.

Если драйвер задает элемент WDF_WMI_INSTANCE_CONFIGWDF_WMI_INSTANCE_CONFIG объекта WMI UseContextForQuery структуры экземпляра WMI TRUE для блока данных только для чтения, драйвер не предоставляет функцию обратного вызова EvtWmiInstanceQueryInstance обратного вызова.

Если драйвер должен предоставить строковые данные клиенту WMI, драйвер должен вызвать функцию WDF_WMI_BUFFER_APPEND_STRING для форматирования строки.

Дополнительные сведения о функции обратного вызова EvtWmiInst anceQueryInstance см. в поддержке блоков данных WMI для чтения и записи и поддержки блоков данных WMIRead-Only WMI.

Платформа не синхронизирует вызовы функций обратного вызова событий WMI драйвера друг с другом или с любыми другими функциями обратного вызова событий драйвера. Если данные функции обратного вызова EvtWmiInstanceQueryInstance динамически и совместно используют другие функции обратного вызова, драйвер может использовать блокировки ожидания платформы или блокировки спина для синхронизации доступа к данным.

Дополнительные сведения о WMI см. в поддержке WMI в Framework-Based драйверах.

Требования

Требование Ценность
целевая платформа Всеобщий
минимальная версия KMDF 1.0
заголовка wdfwmi.h (include Wdf.h)
IRQL PASSIVE_LEVEL

См. также

EvtWmiInstanceExecuteMethod

EvtWmiInstanceSetInstance

EvtWmiInstanceSetItem

EvtWmiProviderFunctionControl

WDF_WMI_BUFFER_APPEND_STRING

WDF_WMI_INSTANCE_CONFIG

WdfWmiInstanceCreate