IoSetNextIrpStackLocation routine
2016-02-07 16:25
851 查看
IoSetNextIrpStackLocation routine
IoSetNextIrpStackLocation 为调用者在驱动程序申请的IRP中设置一个IRP stack location。Syntax
VOID IoSetNextIrpStackLocation(_Inout_ PIRP Irp
);
Parameters
Irp [in, out]指向一个IRP,该IRP的stack location 将被设置。
Return value
NoneRemarks
在通常情况下这个例程很少被驱动程序使用。一般只用于驱动程序需要将他们自己申请的IRP拥有的stack location,发送给另外一个驱动程序时。IoSetNextIrpStackLocation 一般不需要使用是因为要么是因为:
驱动接收的IRP是来之其他更高层的驱动程序,因此驱动程序已经拥有它自己关于该IRP的stack location。要么是因为:驱动程序申请了IRP但是并不需要它拥有的stack location ,因为它能在(一个能被传递给IoCompletion 例程的)上下文块保留它需要的所有东西。
小心地使用这个函数,特别是当通过IoAllocateIrp 或者 IoMakeAssociatedIrp申请IRP时, 申请IRP的驱动程序编写者必须记得: 一个调用者指定的stack location 不在(通过IoCallDriver发送IRP的)低层驱动程序请求的stack locations中。一个驱动程序必须在 IoAllocateIrp 或者IoMakeAssociatedIrp 中为它自己显示地指定一个stack location,如果它使用它们之一返回的IRP作为参数调用 IoSetNextIrpStackLocation 。
驱动程序不能为任意一个由IoBuildAsynchronousFsdRequest,IoBuildDeviceIoControlRequest,或者 IoBuildSynchronousFsdRequest.生成的IRP调用 IoSetNextIrpStackLocation 。
Requirements
Target platform | Desktop |
Version | Available starting with Windows 2000. |
Header | Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h) |
IRQL | Any level |
See also
IO_STACK_LOCATIONIoAllocateIrp
IoBuildAsynchronousFsdRequest
IoBuildDeviceIoControlRequest
IoBuildSynchronousFsdRequest
IoCallDriver
IoSetCompletionRoutine
相关文章推荐
- iOS 归档archive使用方法
- 二维码生成(利用iOS CoreImage框架)
- iOS 获取沙盒路径方法
- iOS的几个特效实现思路
- 从web页面打开iOS应用
- ios如何在#import方面提升编译性能
- ios9 URL Schemes列为白名单,才可正常检查其他应用是否安装
- IOS开发的哪些异常之异常断点
- iOS开发之静态库.a的制作教程
- IOS textField限制字节长度
- iOS学习之flappyBird游戏的实现
- 灵魂有香气的女子IOS版本APP,近期将考虑开放源代码
- 项目总结二:龙图OA项目总结
- iOS中怎样加入自己定义的字体
- 深入理解iOS API系列(一) textField:shouldChangeCharactersInRange:replacementString:
- iOS-对话框的应用
- iOS 限制textField字节长度
- iOS 内存管理
- iOS--多线程开发
- iOS开发系列--数据存取