您的位置:首页 > 其它

对大部分文件操作产生的IRP派遣函数的简单处理

2012-09-11 17:00 274 查看
大部分的IRP都源于文件I/O处理Win32API,如CreateFile、ReadFIle等。处理这些IRP最简单的方法是在相应的派遣函数中,将IRP的状态设置为成功,然后结束IRP的请求,并让派遣函数返回成功。结束IRP的请求使用函数IoCompleteRequest。下面的代码演示了一种最简单的处理IRP请求的派遣函数。

NTSTATUS HELLODDKDispatchRoutin(IN PDEVICE_OBJECT pDevObj,IN PIRP pIrp)

{

KdPrint(("Enter HelloDDkDispatchRout in\n"));

//对一般IRP的简单操作,后面会介绍对IRP更复杂的操作

NTSTATUS status=STATUS_SUCCESS;

//设置IRP完成状态

pIrp->IoStatus.Status=status;

//设置IRP操作了多少字节

pIrp->IoStaus.Information=0         //设置这个IRP操作了多少个字节数

IocompleteRequest(pIrp,IO_NO_INCREMENT);

KdPrint(("Leave HelloDDKDispatchRout in\n"));

return status;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: