IoCopyCurrentIrpStackLocationToNext function (wdm.h)

The IoCopyCurrentIrpStackLocationToNext routine copies the IRP stack parameters from the current I/O stack location to the stack location of the next-lower driver.

Syntax

void IoCopyCurrentIrpStackLocationToNext(
  [in, out] PIRP Irp
);

Parameters

[in, out] Irp

A pointer to the IRP.

Return value

None

Remarks

A driver calls IoCopyCurrentIrpStackLocationToNext to copy the IRP parameters from its stack location to the next-lower driver's stack location.

After calling this routine, a driver typically sets an I/O completion routine with IoSetCompletionRoutine before passing the IRP to the next-lower driver with IoCallDriver. Drivers that pass on their IRP parameters but do not set an I/O completion routine should call IoSkipCurrentIrpStackLocation instead of this routine.

If your driver calls IoSkipCurrentIrpStackLocation, be careful not to modify the IO_STACK_LOCATION structure in a way that could unintentionally affect the lower driver or the system's behavior with respect to that driver. In particular, your driver should not modify the IO_STACK_LOCATION structure's Parameters union, and should not call the IoMarkIrpPending routine.

Requirements

Requirement Value
Minimum supported client Available starting with Windows 2000.
Target Platform Desktop
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
IRQL <=DISPATCH_LEVEL

See also

IO_STACK_LOCATION

IoCallDriver

IoMarkIrpPending

IoSetCompletionRoutine

IoSkipCurrentIrpStackLocation