Windows驱动开发-派遣函数

一个简单的派遣函数格式

NTSTATUS DispatchFunction(PDEVICE_OBJECT pDeviceObject, PIRP pIrp)
{
    //业务代码区

    //设置返回状态
    pIrp->IoStatus.Status = STATUS_SUCCESS;//getLastError()得到的值
    pIrp->IoStatus.Information = 0;            //返回给3环多少数据,没有填0
    IoCompleteRequest(pIrp, IO_NO_INCREMENT);
    DbgPrint("create device success...%d", pDeviceObject->ActiveThreadCount);
    return STATUS_SUCCESS;
}

函数中,设置了IRP的完成状态为STATUS_SUCCESS,这样发起I/O请求的用户层api将会返回TRUE;

反之,会返回FALSE,此时,可以通过GetLastError(),获取错误代码

posted @ 2020-02-22 10:24  AGB  阅读(245)  评论(0编辑  收藏  举报