WmiFireEvent function (wmilib.h)
The WmiFireEvent routine sends an event to WMI for delivery to data consumers that have requested notification of the event.
Syntax
NTSTATUS WmiFireEvent(
[in] PDEVICE_OBJECT DeviceObject,
[in] LPCGUID Guid,
[in] ULONG InstanceIndex,
[in] ULONG EventDataSize,
[in, optional] PVOID EventData
);
Parameters
[in] DeviceObject
A pointer to the driver's DEVICE_OBJECT.
[in] Guid
A pointer to the GUID that represents the event block.
[in] InstanceIndex
If the event block has multiple instances, specifies the index of the instance.
[in] EventDataSize
Specifies the number of bytes of data at EventData. If no data is generated for an event, EventData must be zero.
[in, optional] EventData
A pointer to a driver-allocated nonpaged buffer containing data generated by the driver for the event. If no data is generated for an event, EventData must be NULL. WMI frees the buffer without further intervention by the driver.
Return value
WmiFireEvent propagates the status returned by IoWmiWriteEvent, or returns STATUS_INSUFFICIENT_RESOURCES if it could not allocate memory for the event.
Remarks
A driver calls WmiFireEvent to send an event to WMI for delivery to all data consumers that have requested notification of the event. All pointers passed to WmiFireEvent must point to nonpagable memory, such as nonpaged pool.
The driver sends an event only if it has been previously enabled by the driver's DpWmiFunctionControl routine, which WMI calls to process an IRP_MN_ENABLE_EVENT request.
The driver writes any data associated with the event to the buffer at EventData. WMI fills in a WNODE_SINGLE_INSTANCE structure with the data and calls IoWmiWriteEvent to deliver the event.
For more information about event tracing, see WMI Event Tracing.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available starting with Windows 2000. |
Target Platform | Universal |
Header | wmilib.h (include Wmilib.h) |
Library | Wmilib.lib |
IRQL | <= DISPATCH_LEVEL |