IoSetNextIrpStackLocation 函数 (wdm.h)
IoSetNextIrpStackLocation 例程将驱动程序分配的 IRP 中的 IRP 堆栈位置设置为调用方的位置。
语法
void IoSetNextIrpStackLocation(
[in, out] PIRP Irp
);
参数
[in, out] Irp
指向要设置其堆栈位置的 IRP 的指针。
返回值
无
备注
通常,驱动程序很少使用此例程。 它主要由驱动程序使用,这些驱动程序需要在自己分配的 IRP 中自己的堆栈位置以发送到另一个驱动程序。
通常不需要 IoSetNextIrpStackLocation,因为:
- 驱动程序收到它从另一个更高级别的驱动程序传递的 IRP,因此它已拥有堆栈位置,
- 或者,驱动程序分配了 IRP,但不需要自己的堆栈位置,因为它可以将所需的一切保存在一个上下文块中,该上下文块的地址可以传递给其 IoCompletion 例程。
驱动程序无法通过调用 IoBuildAsynchronousFsdRequest、IoBuildDeviceIoControlRequest 或 IoBuildSynchronousFsdRequest 分配的任何 IRP 调用 IoSetNextIrpStackLocation。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 桌面 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
IRQL | 任何级别 |