Previous Next

IoGetNextIrpStackLocation

The IoGetNextIrpStackLocation routine gives a higher level driver access to the next-lower driver’s I/O stack location in an IRP so the caller can set it up for the lower driver.

PIO_STACK_LOCATION 
  IoGetNextIrpStackLocation(
    IN PIRP  Irp
    );

Parameters

Irp
Pointer to the IRP.

Return Value

IoGetNextIrpStackLocation returns a pointer to the next-lower-level driver's I/O stack location in the given IRP.

Headers

Declared in wdm.h and ntddk.h. Include wdm.h or ntddk.h.

Comments

Each driver that passes IRPs on to lower drivers must set up the stack location for the next lower driver. A driver calls IoGetNextIrpStackLocation to get a pointer to the next-lower driver’s I/O stack location.

If a driver is passing the same parameters that it received to the next-lower driver, it should call IoCopyCurrentIrpStackLocationToNext or IoSkipCurrentIrpStackLocation instead of getting a pointer to the next-lower stack location and copying the parameters manually.

Callers of IoGetNextIrpStackLocation must be running at IRQL <= DISPATCH_LEVEL.

See Also

IO_STACK_LOCATION, IoCallDriver, IoGetCurrentIrpStackLocation, IoCopyCurrentIrpStackLocationToNext, IoSetNextIrpStackLocation, IoSkipCurrentIrpStackLocation