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


функция обратного вызова 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.

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

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

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

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

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

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Верхняя часть wdfwmi.h (включая Wdf.h)
IRQL PASSIVE_LEVEL

См. также раздел

EvtWmiInstanceExecuteMethod

EvtWmiInstanceSetInstance

EvtWmiInstanceSetItem

EvtWmiProviderFunctionControl

WDF_WMI_BUFFER_APPEND_STRING

WDF_WMI_INSTANCE_CONFIG

WdfWmiInstanceCreate