| 830 | } |
| 831 | |
| 832 | NTSTATUS |
| 833 | Ext2ReadComplete (IN PEXT2_IRP_CONTEXT IrpContext) |
| 834 | { |
| 835 | NTSTATUS Status = STATUS_UNSUCCESSFUL; |
| 836 | PFILE_OBJECT FileObject; |
| 837 | PIRP Irp; |
| 838 | |
| 839 | __try { |
| 840 | |
| 841 | ASSERT(IrpContext); |
| 842 | ASSERT((IrpContext->Identifier.Type == EXT2ICX) && |
| 843 | (IrpContext->Identifier.Size == sizeof(EXT2_IRP_CONTEXT))); |
| 844 | |
| 845 | FileObject = IrpContext->FileObject; |
| 846 | Irp = IrpContext->Irp; |
| 847 | |
| 848 | CcMdlReadComplete(FileObject, Irp->MdlAddress); |
| 849 | Irp->MdlAddress = NULL; |
| 850 | Status = STATUS_SUCCESS; |
| 851 | |
| 852 | } __finally { |
| 853 | |
| 854 | if (!IrpContext->ExceptionInProgress) { |
| 855 | Ext2CompleteIrpContext(IrpContext, Status); |
| 856 | } |
| 857 | } |
| 858 | |
| 859 | return Status; |
| 860 | } |
| 861 | |
| 862 | |
| 863 | NTSTATUS |
no test coverage detected