| 22 | /* FUNCTIONS ***************************************************************/ |
| 23 | |
| 24 | NTSTATUS |
| 25 | Ext2LoadSuper(IN PEXT2_VCB Vcb, |
| 26 | IN BOOLEAN bVerify, |
| 27 | OUT PEXT2_SUPER_BLOCK * Sb) |
| 28 | { |
| 29 | NTSTATUS Status; |
| 30 | PEXT2_SUPER_BLOCK Ext2Sb = NULL; |
| 31 | |
| 32 | Ext2Sb = (PEXT2_SUPER_BLOCK) |
| 33 | Ext2AllocatePool( |
| 34 | PagedPool, |
| 35 | sizeof(EXT2_SUPER_BLOCK), |
| 36 | EXT2_SB_MAGIC |
| 37 | ); |
| 38 | if (!Ext2Sb) { |
| 39 | Status = STATUS_INSUFFICIENT_RESOURCES; |
| 40 | goto errorout; |
| 41 | } |
| 42 | |
| 43 | Status = Ext2ReadDisk( |
| 44 | Vcb, |
| 45 | (ULONGLONG) SUPER_BLOCK_OFFSET, |
| 46 | sizeof(EXT2_SUPER_BLOCK), |
| 47 | (PVOID) Ext2Sb, |
| 48 | bVerify ); |
| 49 | |
| 50 | if (!NT_SUCCESS(Status)) { |
| 51 | Ext2FreePool(Ext2Sb, EXT2_SB_MAGIC); |
| 52 | Ext2Sb = NULL; |
| 53 | } |
| 54 | |
| 55 | errorout: |
| 56 | |
| 57 | *Sb = Ext2Sb; |
| 58 | return Status; |
| 59 | } |
| 60 | |
| 61 | |
| 62 | BOOLEAN |
no test coverage detected