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 |