阅读:1063回复:0
ifs ddk中的DispatchRead译文
DispatchRead
DispatchRead例程服务于那些包含IRP_MJ_READ这样I/O功能代码的IRP数据操作 声明: NTSTATUS XxxDispatchRead( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); 参数: DeviceObject 调用者提供的一个指向DEVICE_OBJECT结构的对象。这是一个目标设备的设备对象,这个设备对象是以前在AddDevice例程里面创建的。 Irp 调用者提供的一个指向IRP数据结构的对象.这个结构描述了I/O请求操作 返回值: 如果这个例程成功,那么必须返回一个STATUS——SUCCESS,否则必须返回一个定义于ntstatus.h中的错误状态值。 注释说明: 一个驱动程序的DispatchRead例程应该命名为XxxDispatchRead,Xxx是驱动程序的描述前缀。驱动程序的DriverEntry例程必须在DriverObject->MajorFunction[IRP_MJ_READ]存储DispatchRead例程的地址. 所有DisPatch例程的输入参数都由Irp指向的IRP数据结构提供。附加的参数由IRP中的associated I/O栈提供,他们通过IO_STACK_LOCATION结构来描述并且可以通过IoGetCurrentIrpStackLocation调用来获取。 通常情况下,所有分发例程运行在任意线程上下文中,并且中断级别(IRQL)是PASSIVE_LEVEL,但是这有异议。更多信息请看 Dispatch Routines and IRQLs 更多的关于DispatchRead例程的信息,请看 Writing Dispatch Routines 更多的光与IRP的信息,请看 Handling IRPs |
|
|