The PnP manager uses this IRP to get a device's boot configuration resources.

Bus drivers must handle this request for their child devices that require hardware resources. Function and filter drivers do not handle this IRP.

Major Code

IRP_MJ_PNP When Sent

The PnP manager sends this IRP when a device is enumerated.

The PnP manager sends this IRP at IRQL PASSIVE_LEVEL in an arbitrary thread context.

Input Parameters


Output Parameters

Returned in the I/O status block.

I/O Status Block

A bus driver that handles this IRP sets Irp->IoStatus.Status to STATUS_SUCCESS or to an appropriate error status.

On success, a bus driver sets Irp->IoStatus.Information to a pointer to a CM_RESOURCE_LIST that contains the requested information. On an error, the bus driver sets Irp->IoStatus.Information to zero.


If a bus driver returns a resource list in response to this IRP, it allocates a CM_RESOURCE_LIST from paged memory. The PnP manager frees the buffer when it is no longer needed.

If a device requires no hardware resources, the device's parent bus driver completes the IRP (IoCompleteRequest) without modifying Irp->IoStatus.Status or Irp->IoStatus.Information.

Function and filter drivers do not receive this IRP.

See Plug and Play for the general rules for handling Plug and Play minor IRPs.

Sending This IRP

Reserved for system use. Drivers must not send this IRP.

Drivers can call IoGetDeviceProperty to get the boot configuration for a device, in both raw and translated forms.



Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

See also