Program to find all logical partitions and their information

Files Recovery Software
Home Contact Details Customer Support Download Demo Products  

 
 

Program to find all logical partitions and their information

The program we discussed earlier was to read the partition information from the partition table of MBR. But just only by reading the MBR, we can not get the information of other logical partitions which are in extended partition of the disk.

We have already discussed that the Master Boot Record has the limit of four entries in the Master Partition Table. However the location of Extended Master Boot Record can be obtained with the help of Master Boot Record that contains Extended Partition Tables, whose format is exactly the same as of the main Partition Table.

All the extended partitions should exist within the space reserved by the extended partition entry. Only two of the extended partitions are meant to be used, the first as a normal partition and the second as another extended partition if exists.

Thus with the help of one Master Partition Table We can get the location of another Extended Master Partition Table next to it, if present.

The following program is for finding all the logical partitions and their partition entry information, reading MBR and Extended MBRs from the disk. The coding of the program is as follows:

/* Program to read the parameters of all logical partition present in the disk */

#include<dos.h>

char buffer[512], report_par[20];
unsigned drive_num =0x80;
unsigned long star_sec[20], sec;

/* Structure of Disk Address packet format, to be used by the readabsolutesectors Function */

struct diskaddrpacket
{
char packetsize ; /* Size of Packet, generally 10H */
char reserved ; /* Reserved (0) */
int blockcount ; /* Number of Blocks to Transfer */
char far *bufferaddress ; /* address to Transfer Buffer */
unsigned long blocknumber[2] ; /* Starting Absolute Block Number */
} ;

void main()
{
int no_par,i;

clrscr();

no_par = 0;

All_partition_information(star_sec,&no_par,&sec,buffer, report_par);

printf(" \n\n Total Partitions in Disk = %d\n ", no_par);

for(i=0;i<no_par;i++)
{
printf("\n Starting Sector Number of Partition %d = %lu " , i+1, star_sec[i]);
}
printf("\n");

getch();

}

Previous page

page 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13

Next page
 
 
Data Recovery Book
 
Chapter 1 An Overview of Data Recovery
Chapter 2 Introduction of Hard Disks
Chapter 3 Logical Approach to Disks and OS
Chapter 4 Number Systems
Chapter 5 Introduction of C Programming
Chapter 6 Introduction to Computer Basics
Chapter 7 Necessary DOS Commands
Chapter 8 Disk-BIOS Functions and Interrupts Handling With C
Chapter 9 Handling Large Hard Disks
Chapter 10 Data Recovery From Corrupted Floppy
Chapter 11 Making Backups
Chapter 12 Reading and Modifying MBR with Programming
Chapter 13 Reading and Modifying DBR with Programming
Chapter 14 Programming for “Raw File” Recovery
Chapter 15 Programming for Data Wipers
Chapter 16 Developing more Utilities for Disks
Appendix Glossary of Data Recovery Terms
 
 
Pro Data Doctor

Home

Products

Contact Details

Customer Support

Download Demo

Terms and Conditions

 
Pro Data Doctor