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:

DpWmiQueryReginfo

DpWmiQueryDataBlock

DpWmiSetDataBlock

DpWmiSetDataItem

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

DpWmiQueryReginfo

DpWmiQueryDataBlock

DpWmiSetDataBlock

DpWmiSetDataItem

 

 

Send comments about this topic to Microsoft