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