IRP_MJ_SYSTEM_CONTROL (Kbdclass)
The IRP_MJ_SYSTEM_CONTROL request supports WMI requests.
When Sent
The WMI kernel-mode component sends system control requests to query and set WMI data.
Input Parameters
Request-specific.
Output Parameters
Request-specific.
I/O Status Block
For WMI requests, Kbdclass sets the Status member to one of the following values:
STATUS_SUCCESS
The request completed successfully.STATUS_BUFFER_TOO_SMALL
The output buffer size, in bytes, is less than the required size to return the requested information.STATUS_INVALID_DEVICE_REQUEST
The device request is not valid.STATUS_WMI_GUID_NOT_FOUND
The WMI GUID was not found.STATUS_WMI_READ_ONLY
The WMI data is read-only.
If Kbdclass does not handle the request and sends it down the device stack, the Status member is set by a lower-level driver.
Operation
Kbdclass uses WmiSystemControl to handle WMI system control requests. Kbdclass registers the following types of WMI library callback routines, which WmiSystemControl calls to handle WMI requests sent to a device:
For all other system control requests, Kbdclass skips the current IRP stack location and sends the request down the device stack without further processing.
Kbdclass updates WMI registration information after a device is started or removed. The driver calls the IoWMIRegistrationControl routine to update WMI registration information.
Requirements
Header |
Ntddk.h (include Wdm.h, Ntddk.h, or Wdm.h) |
See also