Λειτουργία Recover_the_file(), λειτουργία για να σώσει τα στοιχεία των τομέων που αρχίζουν από τον αριθμό τομέα start_file στον αριθμό τομέα end_file, πρόγραμμα για να κρυφτεί ή να παρουσιαστεί ο δρομέας στην οθόνη

Files Recovery Software
Σπίτι Στοιχεία Επικοινωνίας Εξυπηρέτηση Πελατών Κατεβάστε το Demo Προϊόντα  

 
 

Η κωδικοποίηση της λειτουργίας Recover_the_file() έχει δοθεί έπειτα:

/* Λειτουργία για να σώσει τα στοιχεία των τομέων που αρχίζουν από τον αριθμό τομέα start_file στον αριθμό τομέα end_file */

Recover_the_file()
{
FILE *fp;
if((fp=fopen(filename, "wb"))==NULL)
{
gotoxy(10,23);printf("Error Opening File %s",
filename);
getch();
exit(1);
}

for(i=start_file;i<=end_file;i++)
{
gotoxy(19,16);cprintf("Scanning Sector Number =
%ld", i);
readabsolutesectors ( 0x81, i, 1, buffer );
fwrite(buffer,512,1, fp);
}
fclose(fp);
gotoxy(15,18);cprintf("[ %d ] Files Recovered...",num);
gotoxy(5,19);cprintf(" ");
return;
}


Η κωδικοποίηση των readabsolutesectors λειτουργίας έχει δοθεί έπειτα. Η λειτουργία χρησιμοποιεί τον αριθμό 42H επέκτασης και λειτουργίας INT 13H για να διαβάσει τους τομείς.

Για τη λεπτομερή περιγραφή της λειτουργίας, αναφέρετε το κεφάλαιο "καθιστώντας τα στηρίγματα" συζητημένα νωρίτερα σε αυτό το βιβλίο. Η κωδικοποίηση της λειτουργίας είναι η ακόλουθη:

//// Λειτουργία για να διαβάσει τον απόλυτο τομέα (σ) \\\\

int readabsolutesectors ( int drive,
unsigned long sectornumber,
int numofsectors,
void *buffer )
{

union REGS i, o ;
struct SREGS s ;
struct diskaddrpacket pp ;

pp.packetsize = 16 ; /* packet size = 10H */

pp.reserved = 0 ; /* Reserved = 0 */

pp.blockcount = numofsectors ; /* Number of sectors
to read */

/* για τον απομονωτή στοιχείων */

pp.bufferaddress = (char far*) MK_FP ( FP_SEG((void far*)buffer), FP_OFF((void far*)buffer));

pp.blocknumber[0] = sectornumber ; /* Sector number
to read */

pp.blocknumber[1] = 0 ; /* Block number */

i.h.ah = 0x42 ; /* Function Number*/

i.h.dl = drive ; /* Φυσικός αριθμός Drive */

/* ds:si for buffer Parameters */
i.x.si = FP_OFF ( (void far*)&pp ) ;

/* ds:si for buffer Parameters */
s.ds = FP_SEG ( (void far*)&pp ) ;

/* Επικαλεσθείτε τη διευκρινισμένη λειτουργία του INT 13H με
τιμές καταλόγων τμήματος */

int86x ( 0x13, &i, &o, &s ) ;
if ( o.x.cflag==1)
return 0 ; //failure

else
return 1 ; // success
}

Η ακόλουθη λειτουργία χρησιμοποιείται για να κρύψει ή για να παρουσιάσει το δρομέα στην οθόνη. Οι χρήσεις λειτουργίας διακόπτουν 10H, λειτουργία 01H για να θέσουν τον τύπο δρομέων. Η κωδικοποίηση είναι η ακόλουθη:

show_hide_cursor( ssl, esl )
int ssl, esl ;
{
union REGS i, o ;

i.h.ah = 1 ;
i.h.ch = ssl ;
i.h.cl = esl ;
i.h.bh = 0 ;

int86 ( 16, &i, &o ) ;
return;
}

show_hide_cursor( 32, 0 ) κρύβει το δρομέα και show_hide_cursor(6 ..7) ανακτούν το δρομέα που η πίσω SSL είναι αρχική γραμμή για το δρομέα και το ESL τελειώνει τη γραμμή για το δρομέα.

Η μικρή περιγραφή της λειτουργίας 01H του INT 10H είναι η ακόλουθη:

INT 10H (16 or 0x10)

Λειτουργία 01H (ή 0x01) > θέστε τον τύπο δρομέων

Call with: AH = 01H
CH bits 0-4 = starting line for cursor
CL bits 0-4 = ending line for cursor

Returns: Nothing.

Σχολιάζει:

Η λειτουργία χρησιμοποιείται για να θέσει τον τύπο δρομέων με την επιλογή της έναρξης και του τελειώματος των γραμμών για το να αναβοσβήσει δρομέα υλικού στον τρόπο επίδειξης κειμένων. Στους τρόπους γραφικής παράστασης, ο δρομέας υλικού δεν είναι διαθέσιμος.


Previous page

page 1 | 2 | 3 | 4 | 5 | 6

 


 

Chapter 15

 
 

page 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17

Next page

 

 
 
Data Recovery Book
 
Κεφάλαιο 1 Μια επισκόπηση της αποκατάστασης στοιχείων
Κεφάλαιο 2 Εισαγωγή των σκληρών δίσκων
Κεφάλαιο 3 Λογική προσέγγιση στους δίσκους και το OS
Κεφάλαιο 4 Συστήματα αριθμού
Κεφάλαιο 5 Εισαγωγή του προγραμματισμού γ
Κεφάλαιο 6 Εισαγωγή στα βασικά υπολογιστών
Κεφάλαιο 7 Απαραίτητες εντολές DOS
Κεφάλαιο 8 Δίσκος-ζωντανό ον λειτουργεί και διακόπτει το χειρισμό με το γ
Κεφάλαιο 9 Διαχειριζόμενοι μεγάλοι σκληροί δίσκοι
Κεφάλαιο 10 Αποκατάσταση στοιχείων από την αλλοιωμένη δισκέτα
Κεφάλαιο 11 Παραγωγή των στηριγμάτων
Κεφάλαιο 12 Ανάγνωση και τροποποίηση MBR με τον προγραμματισμό
Κεφάλαιο 13 Ανάγνωση και τροποποίηση DBR με τον προγραμματισμό
Κεφάλαιο 14 Προγραμματισμός για την αποκατάσταση "ακατέργαστων αρχείων"
Κεφάλαιο 15 Προγραμματισμός για τις ψήκτρες στοιχείων
Κεφάλαιο 16 Ανάπτυξη περισσότερων χρησιμοτήτων για τους δίσκους
Προσάρτημα Γλωσσάριο όρων αποκατάστασης στοιχείων
 
 
Pro Data Doctor

Σπίτι

Προϊόντα

Στοιχεία Επικοινωνίας

Εξυπηρέτηση Πελατών

Κατεβάστε το Demo

Όροι και Προϋποθέσεις

 
Pro Data Doctor