IoCopyCurrentIrpStackLocationToNext 函数 (wdm.h)

IoCopyCurrentIrpStackLocationToNext 例程将 IRP 堆栈参数从当前 I/O 堆栈位置复制到下一个较低驱动程序的堆栈位置。

语法

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

参数

[in, out] Irp

指向 IRP 的指针。

返回值

备注

驱动程序调用 IoCopyCurrentIrpStackLocationToNext ,将 IRP 参数从其堆栈位置复制到下一个较低驱动程序的堆栈位置。

调用此例程后,驱动程序通常会使用 IoSetCompletionRoutine 设置 I/O 完成例程,然后再使用 IoCallDriver 将 IRP 传递给下一个较低的驱动程序。 传递其 IRP 参数但未设置 I/O 完成例程的驱动程序应调用 IoSkipCurrentIrpStackLocation ,而不是此例程。

如果驱动程序调用 IoSkipCurrentIrpStackLocation,请注意修改 IO_STACK_LOCATION 结构的方式不能无意中影响较低级别的驱动程序,或运行该驱动器时的系统行为。 具体而言,驱动程序不应修改 IO_STACK_LOCATION 结构的 Parameters 联合,也不应调用 IoMarkIrpPending 例程。

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 桌面
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
IRQL <=DISPATCH_LEVEL

另请参阅

IO_STACK_LOCATION

IoCallDriver

IoMarkIrpPending

IoSetCompletionRoutine

IoSkipCurrentIrpStackLocation