Ποιες συσκευές χρειάζονται προγράμματα οδήγησης. Πώς μπορώ να ξέρω ποιο πρόγραμμα οδήγησης ήχου χρειάζομαι

Εάν συναρμολογήσατε μόνοι σας τον υπολογιστή σας, αγοράζοντας εξαρτήματα για αυτόν ξεχωριστά, τότε σε αυτήν την περίπτωση όλα τα προγράμματα οδήγησης για τον υπολογιστή δεν μπορούν πλέον να βρεθούν στον ιστότοπο ενός μόνο κατασκευαστή, όπως θα ήταν εύκολο να το κάνετε όταν αγοράζετε έναν ολοκληρωμένο υπολογιστή (περιγράφεται στο άρθρο "Πώς να βρείτε προγράμματα οδήγησης, εάν αγοράσατε φορητό υπολογιστή ή έτοιμο επιτραπέζιο υπολογιστή!"). Εξάλλου, αγοράζατε έναν ημιτελή υπολογιστή που θα ανήκε σε κάποιον κατασκευαστή, θα είχε το δικό του μοντέλο και προγράμματα οδήγησης για τα οποία θα μπορούσατε να κάνετε λήψη όλων ταυτόχρονα από έναν ιστότοπο. Δεδομένου ότι ο υπολογιστής συναρμολογείται από ανταλλακτικά που έχετε επιλέξει μόνοι σας, σημαίνει ότι δεν θα αντιστοιχεί πλέον σε κανένα μοντέλο και θα ανήκει σε κάποιον κατασκευαστή, επειδή είναι ήδη δημιουργία σας :) Επομένως, θα πρέπει να αναζητήσετε προγράμματα οδήγησης ξεχωριστά για όλους συσκευές από τις οποίες συναρμολογήθηκε ο υπολογιστής. Αυτό περιλαμβάνει επίσης την περίπτωση που, αφού αγοράσατε έναν έτοιμο (ήδη συναρμολογημένο) υπολογιστή, μετά από κάποιο χρονικό διάστημα αποφασίσατε να αντικαταστήσετε κάποιο «κομμάτι σιδήρου».

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

Σχετικά με το τι περιγράφεται ένα πρόγραμμα οδήγησης στο άρθρο:

Έτσι, εσείς οι ίδιοι πήρατε όλα τα εξαρτήματα, συναρμολογήσατε τον υπολογιστή, εγκαταστήσατε τα Windows και δείτε ότι τα προγράμματα οδήγησης δεν είναι εγκατεστημένα για όλες τις συσκευές και ίσως δεν έχουν εγκατασταθεί σχεδόν σε καμία. Μπορείτε να μάθετε εάν όλα τα προγράμματα οδήγησης είναι εγκατεστημένα από το τυπικό βοηθητικό πρόγραμμα Device Manager. Πώς να το κάνετε αυτό, είπα σε ξεχωριστό άρθρο.

Και για να εγκαταστήσετε προγράμματα οδήγησης σε αυτήν την περίπτωση, υπάρχουν πολλές επιλογές.

Σημείωση!
Εάν δεν έχετε καν εγκαταστήσει αυτόματα προγράμματα οδήγησης για κάρτες δικτύου, κάτι που δεν σας δίνει τη δυνατότητα πρόσβασης στο Διαδίκτυο από αυτόν τον υπολογιστή, τότε όλα τα παρακάτω βήματα θα πρέπει να εκτελεστούν από κάποιον άλλο υπολογιστή με πρόσβαση στο Διαδίκτυο. Και αφού κατεβάσετε όλα τα προγράμματα οδήγησης, θα πρέπει να τα μεταφέρετε σε επιθυμητός υπολογιστής, για παράδειγμα, μέσω μονάδας flash ή δίσκου.

Αριθμός επιλογής 1. Αναζητήστε προγράμματα οδήγησης με μη αυτόματο τρόπο μέσω του κωδικού συσκευής μέσω του ιστότοπου devid.drp.su

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

Ας υποθέσουμε ότι στη διαχείριση συσκευών βλέπουμε κάτι σαν αυτό:

Εκείνοι. προγράμματα οδήγησης για πολλές συσκευές δεν είναι εγκατεστημένα στον υπολογιστή. Ωστόσο, είναι προβληματικό να προσδιορίσετε μέσω του διαχειριστή συσκευών για ποιες συσκευές δεν υπάρχουν προγράμματα οδήγησης, επειδή τα ονόματα είναι κατά κάποιο τρόπο θολά. Μόνο κατά προσέγγιση μπορεί να γίνει κατανοητό. Για παράδειγμα, ο "ελεγκτής Ethernet" είναι πολύ πιθανό Κάρτα LANγια ενσύρματη σύνδεση στο internet. " Ελεγκτής δικτύου'' είναι μάλλον προσαρμογέας wifi, δηλ. κάρτα δικτύου για πρόσβαση στο Διαδίκτυο μέσω Wi-Fi.

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

Ας δούμε μερικά παραδείγματα για το πώς μπορείτε να βρείτε μη αυτόματα προγράμματα οδήγησης κατά κωδικό συσκευής:

Στην αρχή, θα βρω ένα πρόγραμμα οδήγησης για τη σκοτεινή συσκευή "Simple Communications PCI Controller".

    Προσδιορίστε τον κωδικό της συσκευής για την οποία θέλουμε να βρούμε πρόγραμμα οδήγησης.

    Για να προσδιορίσετε τον κωδικό συσκευής, κάντε δεξί κλικ πάνω του στη διαχείριση συσκευών και επιλέξτε "Ιδιότητες" από το μενού που εμφανίζεται:

    Στο παράθυρο που ανοίγει, επιλέξτε την καρτέλα "Λεπτομέρειες" και, στη συνέχεια, παρακάτω, κάτω από την επιγραφή "Ιδιότητες", επιλέξτε "Αναγνωριστικό υλικού":

    Πρώτα απ 'όλα, προσπαθούμε να κάνουμε αναζήτηση με τον κωδικό από την χαμηλότερη (4η) γραμμή. Κάντε δεξί κλικ παρακάτω στην 4η γραμμή με τον κωδικό και επιλέξτε "Αντιγραφή".

    Προσπαθώ να βρω πρόγραμμα οδήγησης με κωδικό στο devid.drp.su.

    Αφού αντιγράψετε τον κώδικα, ανοίξτε τον ιστότοπο:

    David.drp.su

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

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

    Για παράδειγμα, αντιγράψατε τον κώδικα:
    PCI\VEN_8086&DEV_0166 &CC_0300

    Έτσι, αφού αφαιρέσετε τους χαρακτήρες από το "&" θα πρέπει να έχετε τον κωδικό:
    PCI\VEN_8086&DEV_0166

    Εάν δεν ξέρετε τι σύστημα έχετε, τότε ανοίξτε Αναζήτηση στα Windowsκαι πληκτρολογήστε "Πληροφορίες συστήματος" εκεί και, στη συνέχεια, επιλέξτε το πρόγραμμα που εμφανίζεται από τη λίστα:

    Στο πρόγραμμα που ανοίγει, στο παράθυρο στα αριστερά, επιλέξτε "System Information" και στα δεξιά στη γραμμή "OS Name" θα εμφανιστεί η έκδοση των Windows σας (στο παράδειγμά μου στην παρακάτω εικόνα "Windows 10") , και στη γραμμή "Τύπος" - βάθος bit: x64 ή x86:

    Με βάση αυτά τα δεδομένα, υποδεικνύουμε τον τύπο και το βάθος bit του συστήματος στον ιστότοπο devid.drp.su.

    Αφού καθοριστεί ο κωδικός της συσκευής και επιλεγεί η έκδοση των Windows, κάντε κλικ στο κουμπί "Αναζήτηση προγραμμάτων οδήγησης".

    Ως αποτέλεσμα, η σελίδα θα εμφανίσει μια λίστα προγραμμάτων οδήγησης που ταιριάζουν με τον κωδικό υλικού που καθορίσατε και για το δικό σας εκδόσεις Windows. Χρησιμοποιώντας το κουμπί "Λήψη", πραγματοποιήστε λήψη ενός από τα προγράμματα οδήγησης στον υπολογιστή.

    Σημείωση!
    Εάν εμφανίζονται πολλά ίδια προγράμματα οδήγησης (όπως στην παραπάνω εικόνα), κάντε λήψη του προγράμματος οδήγησης που έχει την πιο πρόσφατη ημερομηνία κυκλοφορίας στη στήλη Έκδοση προγράμματος οδήγησης.

    Κάνοντας κλικ στο κουμπί "Λήψη", το πρόγραμμα οδήγησης θα γίνει λήψη στον υπολογιστή σας και δεν έχετε παρά να το εγκαταστήσετε. Δεν υπάρχει τίποτα περίπλοκο στην εγκατάσταση προγραμμάτων οδήγησης και έθιξα αυτό το σημείο σε ξεχωριστό άρθρο.

    Σημείωση!

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

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

Όπως μπορείτε να δείτε, ο οδηγός δεν ήταν δύσκολο να βρεθεί. Τώρα θα εξετάσω ένα άλλο παράδειγμα για να το κάνω πιο σαφές :) Για παράδειγμα, θα βρω ένα πρόγραμμα οδήγησης για μια συσκευή που έχει οριστεί ως "ελεγκτής Ethernet" στη διαχείριση συσκευών.

Κάνω δεξί κλικ στη συσκευή, ανοίγω τις ιδιότητες:

Στο παράθυρο, επιλέξτε την καρτέλα "Λεπτομέρειες", επιλέξτε το στοιχείο "Αναγνωριστικό υλικού" από τη λίστα και αντιγράψτε τον κωδικό από την 4η γραμμή:

Ανοίγω τον ιστότοπο devid.drp.su, υποδεικνύω τον αριθμό που αντιγράφηκε εκεί, διαγράφω τα πάντα σε αυτόν, ξεκινώντας από το σύμβολο "&". Στη συνέχεια, επιλέγω την έκδοση των Windows και πραγματοποιώ μια αναζήτηση:

Για τη συσκευή μου και την έκδοση των Windows που επέλεξα, υπάρχει μόνο μία έκδοση του προγράμματος οδήγησης που μπορώ να κατεβάσω και να εγκαταστήσω:

Αυτό είναι όλο!

Ωστόσο, εξακολουθεί να συμβαίνει περιστασιακά ο ιστότοπος devid.drp.su να μην βρίσκει προγράμματα οδήγησης για τον κωδικό υλικού που ορίσατε. Σε αυτή την περίπτωση, υπάρχει μια εναλλακτική επιλογή, την οποία θα εξετάσουμε παρακάτω.

Ένας εναλλακτικός τρόπος αναζήτησης προγραμμάτων οδήγησης βάσει κωδικού συσκευής

Εάν δεν υπάρχουν προγράμματα οδήγησης για τη συσκευή που χρειάζεστε στον γνωστό ιστότοπο devid.drp.su, τότε μπορείτε να χρησιμοποιήσετε αυτήν την απλή μέθοδο:

    Προσδιορίστε τον κωδικό της συσκευής. Ομοίως, αντιγράψτε τον κωδικό εξοπλισμού (4η) γραμμή:

    Αναζητούμε οδηγό σε διάφορα site.

    Τώρα πηγαίνουμε στον ιστότοπο Google.com και επικολλάμε τον αντιγραμμένο κώδικα απευθείας στη γραμμή αναζήτησης, μετά την οποία αφαιρούμε το σύμβολο "&" και ό,τι ακολουθεί από τον κώδικα, για παράδειγμα:

    PCI\VEN_8086&DEV_1C3A &SS_0780= PCI\VEN_8086&DEV_1C3A

    Πατάμε το κουμπί αναζήτησης και βλέπουμε μια λίστα με τοποθεσίες που ταιριάζουν με το ερώτημά μας:

    Τώρα πρέπει να ανοίξετε τους ιστότοπους με τη σειρά τους, ξεκινώντας από την πρώτη κιόλας (πάνω) και να δείτε αν μπορείτε να κάνετε λήψη προγραμμάτων οδήγησης στον ιστότοπο.

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

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

    Εάν ψάξετε βαθύτερα στην αναζήτηση, μπορείτε να βρείτε άλλους ιστότοπους όπου μπορείτε να κάνετε λήψη του προγράμματος οδήγησης που χρειάζεστε. Αλλά μην ψάχνετε για προγράμματα οδήγησης στα φόρουμ, καθώς αυτός είναι ο μεγαλύτερος δρόμος. Θα πρέπει να διαβάσετε όλα τα μηνύματα στη σειρά για να καταλάβετε πού δίνεται η σύνδεση με το πρόγραμμα οδήγησης που χρειάζεστε.

    Και τώρα ας δούμε μερικά παραδείγματα λήψης προγραμμάτων οδήγησης από διαφορετικούς ιστότοπους.

    Ένα παράδειγμα λήψης προγράμματος οδήγησης από το driver.ru:

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

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

    Θυμηθείτε να δώσετε προσοχή στην έκδοση των Windows για την οποία προορίζεται το πρόγραμμα οδήγησης.

    Θυμήσου!
    Τα προγράμματα οδήγησης για Windows 8, Windows 8.1 και Windows 10 είναι πολύ συχνά συμβατά και εάν, για παράδειγμα, δεν μπορείτε να βρείτε προγράμματα οδήγησης ειδικά για Windows 8.1, δοκιμάστε να εγκαταστήσετε προγράμματα οδήγησης για Windows 8. Ή αν δεν μπορείτε να βρείτε προγράμματα οδήγησης για Windows 10, δοκιμάστε εγκατάσταση από Windows 8.1 ή Windows 8. Συμβαίνει επίσης τα προγράμματα οδήγησης για Windows 7 να είναι συμβατά με Windows 8, 8.1 και Windows 10. Δηλαδή. Μπορείτε να δοκιμάσετε να εγκαταστήσετε προγράμματα οδήγησης από διαφορετικά συστήματα.

    Εξετάστε ένα παράδειγμα της διαδικασίας λήψης από αυτόν τον ιστότοπο. Αφού βρείτε το πρόγραμμα οδήγησης που χρειάζεστε, κάντε κλικ στο κουμπί λήψης παρακάτω:

    Στο επόμενο παράθυρο, πρέπει να επιβεβαιώσετε ότι δεν είστε ρομπότ επιλέγοντας το πλαίσιο που παρέχεται (δείτε την παρακάτω εικόνα). Στη συνέχεια, κάντε κλικ στο κουμπί "Λήψη" παρακάτω:

    Και τέλος, στην επόμενη σελίδα θα δούμε στην κορυφή έναν σύνδεσμο λήψης με τη μορφή ονόματος αρχείου με επέκταση:

    Κάντε κλικ σε αυτό και κατεβάστε το αρχείο.

    Παράδειγμα λήψης προγράμματος οδήγησης από το members.driverguide.com:

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

    Κάνοντας κλικ στο κουμπί λήψης θα ανοίξει ΝΕΑ ΣΕΛΙΔΑόπου μια μεγάλη ποσότητα διαφήμισης τραβάει τα βλέμματα.

    Προσοχή!
    Μην κάνετε κλικ πουθενά εάν υπάρχουν πολλές διαφημίσεις στον ιστότοπο, να είστε προσεκτικοί, διαφορετικά μπορείτε να συλλέξετε ιούς και άλλες μολύνσεις στον υπολογιστή σας!

    Στο επόμενο παράθυρο, θα εμφανιστεί ένα παράθυρο στο κέντρο για να επιβεβαιώσετε ότι είστε πραγματικό πρόσωπο και όχι πρόγραμμα :) Πρέπει να περιμένετε να φορτώσει τα περιεχόμενα του παραθύρου και να κάνετε κλικ στο κουμπί "Εμφάνιση":

    Θα ανοίξει ένα νέο παράθυρο, όπου πάλι περιμένουμε μερικά δευτερόλεπτα για να φορτώσει το περιεχόμενο. Ένας κωδικός θα εμφανιστεί στο παράθυρο δίπλα στην επιγραφή: "Enter". Αυτός ο κωδικός πρέπει να ξαναγραφτεί ακριβώς όπως είναι στην παρακάτω γραμμή ("Η απάντησή σας") και κάντε κλικ στο "Επιστροφή στη σελίδα":

    Θα επιστρέψετε στην αρχική σελίδα όπου θα εμφανίζεται τώρα το κουμπί "Συνέχεια". Κάνοντας κλικ σε αυτό θα ξεκινήσει η λήψη του προγράμματος οδήγησης στον υπολογιστή:

σαν αυτό εναλλακτικό τρόπομπορείτε να προσπαθήσετε να βρείτε μη αυτόματα προγράμματα οδήγησης κατά κωδικό συσκευής. Φυσικά, για αυτήν την επιλογή, έδειξα παραδείγματα λήψης προγράμματος οδήγησης από μόνο 2 τοποθεσίες και υπάρχει ένας τεράστιος αριθμός από αυτούς. Αλλά η αρχή της λήψης σε όλους τους ιστότοπους είναι η ίδια. Μόνο η διεπαφή διαφέρει ως επί το πλείστον και μερικές φορές η σειρά λήψης.

Αλλά είμαι περισσότερο διατεθειμένος να βρείτε εύκολα προγράμματα οδήγησης χρησιμοποιώντας την κύρια μέθοδο που προτείνεται στην επιλογή #1.

Επιλογή αριθμός 2. Αναζητήστε προγράμματα οδήγησης στις επίσημες ιστοσελίδες των κατασκευαστών συσκευών

Εάν δεν μπορέσατε να βρείτε προγράμματα οδήγησης για τις συσκευές σας χρησιμοποιώντας την 1η επιλογή, τότε αυτό μπορεί να γίνει με αυτόν τον τρόπο.

Θα χρειαστεί να αναζητήσετε τον κατασκευαστή και το μοντέλο κάθε συσκευής στον υπολογιστή σας μέσω της τεκμηρίωσής τους ή ειδικά προγράμματα(για παράδειγμα, Aida64 ή Sysinfo Detector) και, στη συνέχεια, αναζητήστε ξεχωριστά προγράμματα οδήγησης για κάθε συσκευή μέσω του επίσημου ιστότοπου του κατασκευαστή ή (αν δεν υπάρχει πρόγραμμα οδήγησης στον επίσημο ιστότοπο) στο Διαδίκτυο σύμφωνα με το μοντέλο της συσκευής.

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

Πώς προσδιορίσατε τι υπήρχε στην κάρτα βίντεο; Αλλά επειδή εάν υπάρχει μια συσκευή "Τυπικός προσαρμογέας γραφικών VGA" στη λίστα συσκευών στην ενότητα "Προσαρμογείς βίντεο", τότε δεν υπάρχει πρόγραμμα οδήγησης για την κάρτα γραφικών, διαφορετικά η συσκευή θα είχε το όνομα της κάρτας γραφικών σας, για παράδειγμα “NVIDIA GeForce GTX980”.

Ας δούμε τη σειρά των ενεργειών σας:

    Μάθετε τον κατασκευαστή και το μοντέλο της συσκευής.

    Σημείωση!
    Εάν έχετε μια "Άγνωστη συσκευή" στη διαχείριση συσκευών, τότε το πρόγραμμα οδήγησης για κάποια συσκευή πιθανότατα δεν είναι εγκατεστημένο μητρική πλακέταή ένα ειδικό πρόγραμμα για τη μητρική πλακέτα. Επομένως, πρέπει πρώτα να εγκαταστήσετε όλα τα προγράμματα οδήγησης για τη μητρική σας πλακέτα και τα προγράμματα για αυτήν.

    Εάν συναρμολογήσατε έναν υπολογιστή από ξεχωριστά εξαρτήματα, τότε θα μπορούσατε να έχετε έγγραφα για κάθε αγορασμένη συσκευή, τα οποία υποδεικνύουν τι χρειαζόμαστε - τον κατασκευαστή και το μοντέλο. Εάν δεν υπάρχει τεκμηρίωση, τότε ένα από τα προγράμματα που καθορίζουν το υλικό του υπολογιστή σας θα σας βοηθήσει να μάθετε το μοντέλο. Προτείνω το Aida64 ή το Sysinfo Detector. Το πρώτο είναι επί πληρωμή, αλλά μπορείτε να το χρησιμοποιήσετε δωρεάν για 30 ημέρες. Και το δεύτερο έχει εντελώς δωρεάν έκδοση. Εάν σκέφτεστε τι να επιλέξετε, επιλέξτε προσωρινά - Aida64, καθώς η ποιότητα αυτού του προγράμματος θα είναι ακόμα υψηλότερη.

    Ο τρόπος εγκατάστασης και χρήσης του προγράμματος Aida64 περιγράφεται στο άρθρο:

    Ο τρόπος εγκατάστασης και χρήσης του Sysinfo Detector περιγράφεται στο άρθρο:

    Εάν εντοπίσετε συσκευές μέσω του προγράμματος Aida64τότε μπορείτε να προσδιορίσετε τι είδους συσκευές χωρίς προγράμματα οδήγησης επιλέγοντας την ενότητα "Συσκευές\u003e\u003e συσκευές Windows” και στη συνέχεια στα δεξιά ανοίξτε την κατηγορία “Άγνωστο” (άγνωστο). Πληροφορίες σχετικά με την επιλεγμένη συσκευή θα εμφανιστούν παρακάτω:

    Έτσι, στο παράδειγμά μου, η άγνωστη συσκευή ονομάζεται "Asus ATK-110 ACPI Utility".

    Ανέφερα παραπάνω ότι μια άγνωστη συσκευή είναι πιθανότατα κάτι στη μητρική πλακέτα, οπότε ας προσδιορίσουμε αμέσως ποια μητρική είναι στη συσκευή. Για να το κάνετε αυτό, ανοίξτε την ενότητα "Motherboard" και μεταβείτε στην ίδια υποενότητα. Στα δεξιά στο παράθυρο θα δούμε τον κατασκευαστή και το μοντέλο της μητρικής πλακέτας: Asus P5KPL-AM EPU.

    Τώρα ας ασχοληθούμε με την κάρτα βίντεο. Η κάρτα γραφικών συνήθως αναγνωρίζεται σωστά στο Aida64 στην ενότητα "Οθόνη" > "Video PCI/AGP". Όπως μπορείτε να δείτε, το πρόγραμμα εντόπισε την κάρτα βίντεο: NVIDIA GeForce GT 430":

    Εάν παρακολουθείτε συσκευές μέσω του Sysinfo Detector, τότε μπορείτε να δείτε συσκευές με απεγκατεστημένα προγράμματα οδήγησης με 2 τρόπους. Το πρώτο βρίσκεται στην ενότητα "Αποκλίσεις":

    Όπως μπορείτε να δείτε, εντοπίστηκε η ίδια συσκευή με το πρόγραμμα Aida64: ACPI / ATK0110

    Και ο δεύτερος τρόπος - στην ενότητα "Συσκευές PCI", επιλέξτε την υποενότητα "Άγνωστες συσκευές". Εδώ το πρόγραμμα είδε αμέσως 3 συσκευές «προβλήματος» και μία από αυτές, μόνο τη μητρική πλακέτα: Asus P5KPL-AM EPU.

    Είναι καλύτερα να δείτε τον κατασκευαστή και το μοντέλο της κάρτας βίντεο στην ενότητα "Συσκευές PCI". Στη λίστα, βρείτε την υποενότητα "Ελεγκτής οθόνης":

    Το παράδειγμα δείχνει ότι ο κατασκευαστής της κάρτας είναι η NVIDIA και το μοντέλο είναι η GeForce GT 430.

    Έτσι, μάθαμε τα απαραίτητα στοιχεία και τώρα θα αναζητήσουμε τον οδηγό.

    Αναζητούμε πρόγραμμα οδήγησης στις ιστοσελίδες των κατασκευαστών συσκευών.

    Ανακαλύψαμε ότι λείπει το πρόγραμμα οδήγησης, πιθανότατα για κάποια συσκευή στη μητρική πλακέτα ή ίσως κάποιο πρόγραμμα ειδικά για τη μητρική πλακέτα. Ο κατασκευαστής της πλακέτας είναι η Asus και το μοντέλο στο παράδειγμά μου είναι το P5KPL-AM EPU. Εφόσον κατασκευαστής είναι η Asus, τότε θα κάνουμε αναζήτηση στην ιστοσελίδα της επίσημης ιστοσελίδας της Asus.

    Ο τρόπος αναζήτησης για τον επίσημο ιστότοπο του κατασκευαστή της συσκευής και λήψη προγραμμάτων οδήγησης από αυτόν περιγράφεται λεπτομερώς. Εν ολίγοις, πρέπει να ανοίξετε μια μηχανή αναζήτησης σύστημα Google, πληκτρολογήστε εκεί το όνομα του κατασκευαστή και ανοίξτε τον πρώτο ιστότοπο στα αποτελέσματα αναζήτησης. Στη συνέχεια, μεταβείτε στην ενότητα "Υπηρεσία" ή "Υποστήριξη" και καθορίστε το μοντέλο της συσκευής, για παράδειγμα:

    Εκτός από τα προγράμματα οδήγησης, δώστε προσοχή στην ενότητα "Βοηθητικά προγράμματα" (μπορεί να φανεί στη λίστα στην παραπάνω εικόνα), επειδή μερικές φορές το "Unidentified Device" είναι κάποιο είδος ειδικού προγράμματος για τη μητρική πλακέτα που δεν είναι εγκατεστημένο. Είναι καλύτερα να εγκαταστήσετε ολόκληρο το κιτ μητρικής πλακέτας που παρέχεται στον ιστότοπο για να ελέγξετε αν αυτό ήταν το πρόβλημα.

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

    Τώρα ας βρούμε το πρόγραμμα οδήγησης για την κάρτα γραφικών. Κρίνοντας από τα δεδομένα που λαμβάνονται από τα προγράμματα Aida64 και Sysinfo Detector, ο κατασκευαστής της κάρτας βίντεο είναι η NVIDIA και το μοντέλο είναι η GeForce GT 430. Δεδομένου ότι ο κατασκευαστής είναι η NVIDIA, τότε αναζητούμε την επίσημη ιστοσελίδα αυτής της εταιρείας στο ίδιο μέσω Google:

    Στον ιστότοπο, βλέπουμε αμέσως την ενότητα "Προγράμματα οδήγησης" και σε αυτήν το στοιχείο "Λήψη προγραμμάτων οδήγησης". Είμαστε ανοιχτά:

    Θα ανοίξει ένα παράθυρο όπου πρέπει να καθορίσετε δεδομένα σχετικά με την κάρτα βίντεο. Ο τύπος προϊόντος στο παράδειγμά μου είναι "GeForce", εάν το μοντέλο είναι GeForce GT 430, τότε η σειρά προϊόντων είναι "GeForce 400 Series". Δεν είναι δύσκολο να βρεις τον προσανατολισμό σου εδώ. Στη συνέχεια, στη λίστα "Οικογένεια προϊόντων", επιλέξτε το συγκεκριμένο μοντέλο - "GeForce GT 430". Και μένει να επιλέξετε μόνο την έκδοση των Windows που είναι εγκατεστημένη στον υπολογιστή σας και τη γλώσσα του προγράμματος οδήγησης. Στη συνέχεια, κάντε κλικ στην "Αναζήτηση":

    Θα ανοίξει η σελίδα για τη λήψη του σωστού προγράμματος οδήγησης. Κάντε κλικ στο κουμπί "Λήψη τώρα":

    Στην επόμενη σελίδα, αποδεχόμαστε τους όρους της συμφωνίας και κάνουμε κλικ στο κουμπί "Αποδοχή και λήψη":

Με τον ίδιο τρόπο, μπορείτε να κατεβάσετε ένα πρόγραμμα οδήγησης, κατ 'αρχήν, για οποιαδήποτε συσκευή, γνωρίζοντας τον κατασκευαστή και το μοντέλο του. Θα χρειαστεί μόνο να βρείτε τον επίσημο ιστότοπο του κατασκευαστή και να υποδείξετε το μοντέλο εκεί.

Ως έσχατη λύση, εάν, για παράδειγμα, δεν μπορείτε να βρείτε προγράμματα οδήγησης στον επίσημο ιστότοπο, μπορείτε να τα αναζητήσετε σε άλλους ιστότοπους καθορίζοντας αναζήτηση GoogleΈνα παράδειγμα αιτήματος είναι: "πρόγραμμα οδήγησης για Asus P5KPL-AM EPU". Αντί για Asus P5KPL-AM EPU, θα πρέπει, κατά συνέπεια, να καθορίσετε τον κατασκευαστή και το μοντέλο της συγκεκριμένης συσκευής σας για την οποία αναζητάτε προγράμματα οδήγησης.

Λοιπόν, εν κατακλείδι, σημειώνω ότι εάν χρησιμοποιείτε Windows 8 και παλαιότερα, τότε πιθανότατα δεν θα έχετε προβλήματα με τα προγράμματα οδήγησης. Αυτά τα συστήματα εγκαθιστούν στις περισσότερες περιπτώσεις όλα τα προγράμματα οδήγησης αυτόματα αμέσως μετά την εγκατάσταση των Windows. Προσπάθησα να επανεγκαταστήσω τα Windows 8.1 και τα Windows 10 σε πολλούς φορητούς υπολογιστές και όλα τα προγράμματα οδήγησης εγκαταστάθηκαν αυτόματα σε καθένα, με αποτέλεσμα να μην χρειάζεται να τα ψάξω ο ίδιος.

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

Είναι επίσης δυνατή η αυτόματη εγκατάσταση προγραμμάτων οδήγησης σε υπολογιστή χρησιμοποιώντας ειδικά προγράμματα. Αυτή η δυνατότητα περιγράφεται σε ξεχωριστό άρθρο:

Τα καλύτερα! Τα λέμε σε άλλες αναρτήσεις :)

Σήμερα θα δούμε:

Υπάρχουν διάφοροι λόγοι για τους οποίους χρειάζεστε έναν προσωπικό υπολογιστή. Αυτό δεν γίνεται πάντα χρησιμοποιώντας προγράμματα με αυτόματη επιλογή προγραμμάτων οδήγησης.

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

Η κάρτα ήχου δεν εντοπίστηκε από το λειτουργικό σύστημα

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

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

Η Microsoft βοηθά στην αναγνώριση ενός προγράμματος οδήγησης ήχου

Το λειτουργικό σύστημα του υπολογιστή προσφέρει τη βοήθειά του στον προσδιορισμό του σωστού προγράμματος οδήγησης ήχου. Είναι απαραίτητο να κατευθύνετε τον κέρσορα στο φάκελο "My Computer" κλικ δεξί κουμπίποντίκι (RMB), μετά «Ιδιότητες», μετά «Υλικό». Μπορείτε να το κάνετε πιο εύκολο: στον φάκελο "Ο Υπολογιστής μου", κάντε δεξί κλικ και μεταβείτε στην ενότητα Διαχείριση συσκευών.

Θα ανοίξει μια λίστα στη διαχείριση συσκευών, επιλέξτε μια κάρτα ήχου (δεν υπάρχει πρόγραμμα οδήγησης, υπάρχει ένα θαυμαστικό δίπλα της). Επιλέγουμε τη γραμμή, στην κορυφή υπάρχει η επιλογή "Ενημέρωση προγράμματος οδήγησης", μετά το στοιχείο "Αναζήτηση προγραμμάτων οδήγησης", όταν όλα συμβαίνουν με θετικό αποτέλεσμα, θα προσφέρεται το παράθυρο "Εγκατάσταση".

Μη αυτόματη επιλογή για αναζήτηση προγράμματος οδήγησης ήχου

Όταν η αυτόματη επιλογή ενός προγράμματος οδήγησης ήχου αποτύχει, πρέπει να προσπαθήσετε να το βρείτε με μη αυτόματο τρόπο, γι 'αυτό πηγαίνουμε σε οποιαδήποτε μηχανή αναζήτησης (Google, Yandex). Στη συνέχεια, στο πλαίσιο αναζήτησης, πληκτρολογήστε το όνομα της συσκευής ήχου σας στον υπολογιστή και προσθέστε το «+ πρόγραμμα οδήγησης», στο παράθυρο που ανοίγει, επιλέξτε αυτό που χρειάζεστε για εμάς.

Τι πρόγραμμα οδήγησης χρειάζεται για έναν προσωπικό υπολογιστή; Αυτό είναι εύκολο να το δείτε στην καρτέλα Διαχείριση Συσκευών. Συνιστάται η λήψη του προγράμματος οδήγησης στον επίσημο ιστότοπο του κατασκευαστή της εγκατεστημένης μητρικής πλακέτας (όταν κάρτα ήχουενσωματωμένο σε αυτό). Προτείνεται επίσης η λήψη του προγράμματος οδήγησης από έναν ιστότοπο που ειδικεύεται στην ενημέρωση αυτού του υλικού υπολογιστή.

Αφού ολοκληρωθεί η λήψη του προγράμματος οδήγησης, επιστρέφουμε στην καρτέλα "Διαχείριση συσκευών", ανοίγουμε την "Αναζήτηση προγραμμάτων οδήγησης στον υπολογιστή", υποδεικνύουμε το μέρος όπου αποθηκεύτηκε, "Εγκατάσταση".

Εγκατάσταση του προγράμματος οδήγησης ήχου με το πρόγραμμα

Υπάρχουν φορές που είναι δύσκολο για έναν χρήστη υπολογιστή να βρει ένα πρόγραμμα οδήγησης ήχου με μη αυτόματο τρόπο και χρησιμοποιώντας το λειτουργικό σύστημα, τότε προσφέρεται ένα ειδικό πρόγραμμα για την αναζήτησή του. Επί του παρόντος, υπάρχουν πολλά προγράμματα για αυτούς τους σκοπούς: Driver Checker, Sam Drivers, Device Doctor και άλλα προγράμματα.

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

Υπάρχουν διάφορες περιπτώσεις στις οποίες πρέπει να προσδιορίσετε το πρόγραμμα οδήγησης ήχου για τον υπολογιστή σας, συμβουλεύουν οι ειδικοί:

  • Προσδιορίστε το μοντέλο της εγκατεστημένης συσκευής ήχου στον υπολογιστή (διαβάστε στον υπολογιστή). Ίσως η έλλειψη ήχου να οφείλεται σε μη εγκατεστημένο εξοπλισμό, που απαγορεύει τη χρήση του στο BIOS.
  • Όταν ο ήχος είναι ενσωματωμένος στον υπολογιστή, συνιστάται η λήψη του προγράμματος οδήγησης ήχου μόνο από τον ιστότοπο του κατασκευαστή της "μητρικής πλακέτας" ή στην περίπτωση ξεχωριστή εγκατάστασηκάρτα ήχου για να διαγράψετε τη σήμανση του τσιπ από αυτήν. Βρείτε το απαιτούμενο πρόγραμμα οδήγησης μέσω του συστήματος αναζήτησης σήμανσης.
  • Συνιστάται η χρήση του προγράμματος AIDA 64, δεν θα εμφανίζει μόνο το απαραίτητο πρόγραμμα οδήγησης ήχου, αλλά τα πάντα εγκατεστημένος εξοπλισμός, μπορείτε να προσδιορίσετε τη σήμανση του τσιπ.

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

Παρά το γεγονός ότι ο 21ος αιώνας είναι ήδη στην αυλή και σχεδόν όλοι έχουν υπολογιστές, πολλοί τους αντιμετωπίζουν ως κάποιο απαράβατο θαύμα της τεχνολογίας. Επιπλέον, πιστεύοντας ακράδαντα ότι έχουν τον καλύτερο υπολογιστή (επειδή το είπε ο πωλητής :)), αυτοί οι χρήστες δεν εγκαθιστούν κανένα πρόγραμμα σε αυτό και δεν μπαίνουν στον κόπο να ελέγξουν αν ο υπολογιστής λειτουργεί σωστά ...

Γιατί είμαι? Επιπλέον, πρόσφατα έπρεπε να αντιμετωπίσω μια περίπτωση που κάποιοι σύντροφοι για σχεδόν ενάμιση χρόνο μετά την αγορά ενός υπολογιστή δεν είχαν κανονικό πρόγραμμα οδήγησης κάρτας γραφικών !!! Το παράπονο ήταν το συνηθισμένο - "" :) Και γιατί να μην επιβραδύνει αν δεν υπάρχει οδηγός;!

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

Τι είναι το πρόγραμμα οδήγησης και πώς να το εγκαταστήσω;

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

Χωρίς πρόγραμμα οδήγησης, ο συνδεδεμένος εξοπλισμός είτε δεν θα λειτουργεί καθόλου (εκτυπωτές, σαρωτές και άλλος εξοπλισμός γραφείου), είτε θα λειτουργεί, αλλά όχι στην πιο βέλτιστη λειτουργία (κάρτες βίντεο, chipset κ.λπ.). Γι' αυτό για κανονική λειτουργίαΔεν αρκεί απλώς να επανεγκαταστήσετε το σύστημα για έναν υπολογιστή, είναι επίσης σημαντικό να βρείτε προγράμματα οδήγησης για όλα τα εξαρτήματά του!

Το πρόγραμμα οδήγησης μπορεί να παρέχεται σε τρεις εκδόσεις:

  1. εγκατάσταση αρχείο EXE(ή MSI)
  2. γραφικό κέλυφος με δυνατότητα μαζικής επιλογής και εγκατάστασης.
  3. ένα σύνολο βιβλιοθηκών και αρχείων υπηρεσιών, που συμπληρώνονται από ένα αρχείο INF.

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

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

Η εγκατάσταση του προγράμματος οδήγησης με τον τρίτο τρόπο είναι ο πιο μη προφανής. Τέτοια προγράμματα οδήγησης βρίσκονται συχνά για παλιά τεχνολογία και δεν περιέχουν πρόγραμμα εγκατάστασης γραφικών, αλλά περιλαμβάνουν ένα αρχείο (μερικές φορές περισσότερα από ένα) με την επέκταση INF, το οποίο περιέχει όλες τις διαδρομές εγκατάστασης για το πακέτο βιβλιοθήκης για να λειτουργήσει ο συνδεδεμένος εξοπλισμός:

Για να εγκαταστήσετε το πρόγραμμα οδήγησης με αυτόν τον τρόπο, πρέπει να καλέσετε το μενού περιβάλλοντος στη "Διαχείριση Συσκευών" (εικονίδιο "Υπολογιστής" - RMB - "Ιδιότητες" (σε παλαιότερα συστήματα, η καρτέλα "Υλικό")) άγνωστη συσκευήκαι μετά επιλέξτε «Ενημέρωση προγραμμάτων οδήγησης».

Θα ανοίξει ένα παράθυρο από το οποίο πρέπει να πάμε ως εξής (κάνοντας κλικ στα κατάλληλα κουμπιά): "Αναζήτηση προγραμμάτων οδήγησης σε αυτόν τον υπολογιστή" - "Επιλέξτε ένα πρόγραμμα οδήγησης από τη λίστα των ήδη εγκατεστημένων" - "Εγκατάσταση από δίσκο" και, στη συνέχεια, κάντε κλικ στο κουμπί "Αναζήτηση" και καθορίστε τη θέση του αρχείου INF που χρειάζεστε:

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

Λοιπόν, τώρα που ξέρετε τι είναι το πρόγραμμα οδήγησης, γιατί το χρειάζεστε και πώς να το εγκαταστήσετε, ήρθε η ώρα να μάθετε πώς μπορείτε να βρείτε προγράμματα οδήγησης.

Αναζήτηση κατά όνομα συσκευής

Οποιαδήποτε συσκευή (αν δεν είναι κάποιο ανώνυμο κινέζικο σκάφος) έχει το δικό της όνομα. Γνωρίζοντας αυτό το όνομα και την έκδοση του συστήματός σας, στις περισσότερες περιπτώσεις, μπορείτε να διατυπώσετε τη σωστή ερώτημα αναζήτησηςνα εισέλθει σε μηχανή αναζήτησης. Για παράδειγμα: «οδηγός Εκτυπωτής Canon IP1500 για Windows 7 64-bit" ή "Radeon HD 8700M Windows 8 πρόγραμμα οδήγησης".

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

Αυτός ο ιστότοπος περιέχει ένα από πλήρεις συλλογέςπρογράμματα οδήγησης από όλο το Διαδίκτυο με συνολικό όγκο άνω των 300 TB! Εδώ μπορείτε να αναζητήσετε ένα πρόγραμμα οδήγησης τόσο κατά τύπο συσκευής (κύρια λίστα "Κατηγορίες υλικού"), όσο και κατά όνομα κατασκευαστή (αλφαβητικό ευρετήριο στο επάνω μέρος της σελίδας).

Στη σελίδα με το απαιτούμενο στοιχείο, θα υπάρχει ένας αριθμός επιλογών λήψης. Δώστε προσοχή στα πεδία "Τύπος προγράμματος" (η λέξη "πρόγραμμα οδήγησης" πρέπει να υπάρχει εκεί, διαφορετικά μπορείτε απλώς να κατεβάσετε ένα βοηθητικό πρόγραμμα υπηρεσίας ή ένα πρόσθετο), "Περιγραφή" (δηλώνει επίσης σε τι χρησιμεύει αυτό ή εκείνο το αρχείο) και επίσης «Σύστημα». Μπορείτε να κάνετε λήψη του ίδιου του προγράμματος οδήγησης από τον σύνδεσμο μετά την περιγραφή, επιβεβαιώνοντας ότι δεν είστε ρομπότ :)

Εκτός από την αναζήτηση προγραμμάτων οδήγησης σε εξειδικευμένα αποθετήρια, μερικές φορές είναι λογικό να κάνετε αναζήτηση σε ιστότοπους προγραμματιστών! Για παράδειγμα, τα προγράμματα οδήγησης για δημοφιλείς κάρτες γραφικών ενημερώνονται αρκετά συχνά και πραγματοποιούνται λήψη τελευταία έκδοσηΜπορείτε, συχνά, μόνο στον επίσημο ιστότοπο. Ως εκ τούτου, θα δώσω μια μικρή λίστα με συνδέσμους για λήψη σελίδων για προγράμματα οδήγησης από τις πιο συνηθισμένες αυταπάτες.

Κάρτες βίντεο:

Κάρτες ήχου:

Εξοπλισμός γραφείου:

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

Αναζήτηση κατά αναγνωριστικό συσκευής

Η εύρεση ενός προγράμματος οδήγησης με το όνομα της συσκευής σας είναι μια αρκετά απλή εργασία. Ωστόσο, αν η ίδια η συσκευή είναι από άγνωστο κατασκευαστή, τότε δεν μπορούμε να γνωρίζουμε ούτε το όνομά της! Εάν αντιμετωπίζετε μια τέτοια κατάσταση, τότε μια εναλλακτική μέθοδος αναζήτησης θα σας βοηθήσει - με αναγνωριστικό εξοπλισμού.

Κάθε συσκευή, ακόμα και μέσα μπλοκ συστήματος, αν και συνδέεται με εξωτερικό καλώδιο, έχει το δικό του αναγνωριστικό ή αναγνωριστικό στο σύστημα. Μπορούμε να το αναγνωρίσουμε στην ήδη γνωστή "Διαχείριση Συσκευών" καλώντας τις "Ιδιότητες" του επιθυμητού στοιχείου, μεταβαίνοντας στην καρτέλα "Λεπτομέρειες" και επιλέγοντας το στοιχείο "Αναγνωριστικό υλικού" ή "Αναγνωριστικό" στο αναπτυσσόμενο μενού "Ιδιότητα". λίστα:

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

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

Για να το κάνετε αυτό, κάντε κλικ στο κουμπί "Αναζήτηση" στην επάνω δεξιά γωνία και επικολλήστε το αντιγραμμένο αναγνωριστικό συσκευής στο πεδίο στη σελίδα που ανοίγει και, στη συνέχεια, βεβαιωθείτε ότι έχετε ελέγξει το στοιχείο "Αναζήτηση κατά αναγνωριστικό" και κάντε κλικ στο κουμπί "Αναζήτηση" κάτω από το πεδίο εισαγωγής. Ανάμεσα στα αποτελέσματα που ανοίγουν, μπορείτε εύκολα να βρείτε ένα πρόγραμμα οδήγησης κατάλληλο για το σύστημά σας και να το κατεβάσετε.

Αρκετές ακόμη μεγάλες πύλες για αναζήτηση προγραμμάτων οδήγησης λειτουργούν με παρόμοιο τρόπο. Τα καλύτερα είναι τα DevID.info και DevID.drp.su. Παρεμπιπτόντως, και οι δύο υπηρεσίες έχουν τους δικούς τους πελάτες που σας επιτρέπουν να εντοπίζετε αυτόματα τα προγράμματα οδήγησης που χρειάζεστε και να τα εγκαταστήσετε. Θα μιλήσουμε για τέτοιο εξειδικευμένο λογισμικό περαιτέρω.

Προγράμματα για την εύρεση προγραμμάτων οδήγησης

Παραπάνω, εξετάσαμε περιπτώσεις κατά τις οποίες πρέπει να αναζητήσετε μη αυτόματα προγράμματα οδήγησης. Ωστόσο, για αυτό υπάρχουν και ειδικά προγράμματα που σας επιτρέπουν να βρείτε και να κατεβάσετε τα πάντα αυτόματα. Όλα αυτά μπορούν να χωριστούν σε δύο τύπους.

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

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

Για το λόγο αυτό, προγράμματα αυτού του τύπου μπορούν να χρησιμοποιηθούν δωρεάν μόνο για μία ενημέρωση προγράμματος οδήγησης, αλλά όχι για μαζική εγκατάσταση σε πρόσφατα εγκατεστημένα Windows. Αν θέλετε τα πάντα ταυτόχρονα, η επιλογή σας είναι πακέτα οδηγών!

Driver pack (από τα αγγλικά." πακέτο προγραμμάτων οδήγησηςΤο "-" ένα σύνολο προγραμμάτων οδήγησης ") είναι, τις περισσότερες φορές, ένα σύνολο μιας βάσης δεδομένων εκτός σύνδεσης με επιλεγμένα προγράμματα οδήγησης και ένα πρόγραμμα κελύφους. Το πρόγραμμα σαρώνει τον υπολογιστή σας και στη συνέχεια προσφέρει την εγκατάσταση ή ενημέρωση ενός αριθμού προγραμμάτων οδήγησης. Απλώς χρειάζεστε για να επισημάνετε αυτά που χρειάζεστε και να επιβεβαιώσετε την επιλογή σας. Η εγκατάσταση θα γίνει αυτόματα!

Στην απεραντοσύνη του Runet, το πιο πλήρες και δημοφιλές πακέτο προγραμμάτων οδήγησης είναι:

Μέχρι σήμερα, το μέγεθος του μέγιστου πακέτου παράδοσης αυτού του πακέτου προγράμματος οδήγησης είναι πάνω από 10 gigabyte. Αυτό δεν είναι τόσο εντυπωσιακό όσο η βάση δεδομένων των 30 terabyte του Driver.ru, αλλά, ωστόσο, ένας τέτοιος αριθμός προγραμμάτων οδήγησης είναι αρκετά, ώστε μετά την επανεγκατάσταση του συστήματος να μην χρειάζεται να αναζητήσετε δίσκους εγκατάστασηςπου ήρθε με μητρική πλακέτα, κάρτα γραφικών και άλλα εξαρτήματα του υπολογιστή ή του φορητού υπολογιστή σας.

Εάν δεν θέλετε να κάνετε λήψη 10 gigabyte προγραμμάτων οδήγησης, τότε μπορείτε να κάνετε λήψη της έκδοσης Lite του DriverPack Online. Είναι μόνο ένα πρόγραμμα σαρωτή που καθορίζει τα προγράμματα οδήγησης που χρειάζεστε, συνδέεται σε μια ηλεκτρονική βάση δεδομένων και σας επιτρέπει να κάνετε λήψη μόνο ό,τι χρειάζεστε.

συμπεράσματα

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

Έτσι, για παράδειγμα, από την άνοιξη, το "" άρχισε να εμφανίζεται κατά καιρούς με παράπονα για κάποιο είδος βιβλιοθήκης DLL. Για κάποιο διάστημα ανέχτηκα αυτή την κατάσταση, αλλά μετά κουράστηκα και αποφάσισα να αναζητήσω μια λύση στο πρόβλημα. Αποδείχθηκε ότι ο ένοχος ήταν ένα σφάλμα στο πρόγραμμα οδήγησης της κάρτας βίντεο. Μετά την ενημέρωση του προγράμματος οδήγησης, όλα έγιναν καλύτερα και εδώ και αρκετούς μήνες η "πτήση" είναι κανονική :)

Το ηθικό δίδαγμα όλων των παραπάνω είναι το εξής: εάν ξαφνικά αρχίσετε να έχετε «αστοχίες» στον υπολογιστή σας ή έχουν παρατηρηθεί από την αγορά του υπολογιστή / επανεγκατάσταση παραθύρων, ελέγξτε για ενημερώσεις προγραμμάτων οδήγησης για κρίσιμες σημαντικά συστατικάτον υπολογιστή σας. Εάν υπάρχουν, δοκιμάστε να τα εγκαταστήσετε και ίσως το σύστημά σας να λειτουργήσει ξανά σωστά!

ΥΣΤΕΡΟΓΡΑΦΟ. Επιτρέπεται η ελεύθερη αντιγραφή και παράθεση αυτού του άρθρου, υπό την προϋπόθεση ότι αναφέρεται ένας ανοιχτός ενεργός σύνδεσμος προς την πηγή και διατηρείται η πατρότητα του Ruslan Tertyshny.

Πιθανώς όλοι όσοι τουλάχιστον μία φορά επανεγκατέστησαν το λειτουργικό σύστημα μόνοι τους είχαν μια δημοφιλή ερώτηση: πώς να μάθετε ποια προγράμματα οδήγησης πρέπει να εγκατασταθούν στον υπολογιστή για τη σταθερή λειτουργία του; Αυτή είναι η ερώτηση που θα προσπαθήσουμε να απαντήσουμε σε αυτό το άρθρο. Ας καταλάβουμε λεπτομερέστερα.

Θεωρητικά, πρέπει να εγκαταστήσετε λογισμικό για όλες τις συσκευές που το απαιτούν σε υπολογιστή ή φορητό υπολογιστή. Με την πάροδο του χρόνου, προγραμματιστές λειτουργικά συστήματαεπεκτείνοντας συνεχώς τη βάση δεδομένων των προγραμμάτων οδήγησης της Microsoft. Και αν μέσα Ώρες WindowsΤο XP έπρεπε να εγκαταστήσει χειροκίνητα σχεδόν όλα τα προγράμματα οδήγησης, αλλά στην περίπτωση των νεότερων λειτουργικών συστημάτων, πολλά προγράμματα οδήγησης είναι ήδη εγκατεστημένα αυτόματα. Ωστόσο, υπάρχουν συσκευές για τις οποίες το λογισμικό πρέπει να εγκατασταθεί χειροκίνητα. Εφιστούμε στην προσοχή σας διάφορους τρόπους που θα σας βοηθήσουν στην επίλυση αυτού του ζητήματος.

Μέθοδος 1: Επίσημες ιστοσελίδες κατασκευαστών

Για να εγκαταστήσετε όλα τα απαραίτητα προγράμματα οδήγησης, πρέπει να εγκαταστήσετε το λογισμικό για όλες τις πλακέτες στον υπολογιστή σας. Αυτό αναφέρεται στη μητρική πλακέτα, την κάρτα γραφικών και τις εξωτερικές πλακέτες ( προσαρμογείς δικτύου, κάρτες ήχου, κ.λπ.). Ταυτόχρονα, στο "Διαχειριστή της συσκευής"μπορεί να μην υποδεικνύει ότι το υλικό απαιτεί προγράμματα οδήγησης. Κατά την εγκατάσταση του λειτουργικού συστήματος, χρησιμοποιήθηκε απλώς το τυπικό λογισμικό για τη συσκευή. Ωστόσο, το λογισμικό για τέτοιες συσκευές πρέπει να εγκατασταθεί πρωτότυπο. Το μεγαλύτερο μέρος του εγκατεστημένου λογισμικού πέφτει στη μητρική πλακέτα και τα τσιπ που είναι ενσωματωμένα σε αυτήν. Επομένως, πρώτα θα αναζητήσουμε όλα τα προγράμματα οδήγησης για τη μητρική πλακέτα και μετά για την κάρτα γραφικών.

  1. Μάθετε τον κατασκευαστή και το μοντέλο της μητρικής πλακέτας. Για να το κάνετε αυτό, πατήστε τα πλήκτρα Win+Rστο πληκτρολόγιο και στο παράθυρο που ανοίγει, πληκτρολογήστε την εντολή cmdγια να ανοίξετε μια γραμμή εντολών.
  2. ΣΕ γραμμή εντολώνπρέπει να εισάγετε τις εντολές μία προς μία:
    wmic baseboard get Κατασκευαστής
    wmic baseboard λάβετε προϊόν
    Μην ξεχάσετε να πατήσετε "Εισαγω"μετά την εισαγωγή κάθε εντολής. Ως αποτέλεσμα, θα δείτε στην οθόνη τον κατασκευαστή και το μοντέλο της μητρικής σας πλακέτας.
  3. Τώρα αναζητούμε τον ιστότοπο του κατασκευαστή στο Διαδίκτυο και πηγαίνουμε σε αυτόν. Στην περίπτωσή μας, αυτό είναι.
  4. Στον ιστότοπο, αναζητούμε ένα πεδίο αναζήτησης ή το αντίστοιχο κουμπί σε μορφή μεγεθυντικού φακού. Κατά κανόνα, κάνοντας κλικ σε αυτό το κουμπί θα δείτε ένα πεδίο αναζήτησης. Σε αυτό το πεδίο, πρέπει να εισάγετε το μοντέλο της μητρικής πλακέτας και να κάνετε κλικ "Εισαγω".
  5. Στην επόμενη σελίδα, θα δείτε το αποτέλεσμα αναζήτησης. Πρέπει να επιλέξετε τη μητρική σας πλακέτα από τη λίστα. Συνήθως, υπάρχουν πολλές υποενότητες με το όνομα του μοντέλου πλακέτας. Αν υπάρχει τμήμα "Οδηγοί"ή "Λήψεις", κάντε κλικ στο όνομα μιας τέτοιας ενότητας και μεταβείτε σε αυτήν.
  6. Σε ορισμένες περιπτώσεις, η ακόλουθη σελίδα μπορεί να χωριστεί σε υποενότητες λογισμικού. Εάν ναι, τότε αναζητήστε και επιλέξτε μια υποενότητα "Οδηγοί".
  7. Το επόμενο βήμα είναι να επιλέξετε το λειτουργικό σύστημα και το βάθος bit από την αναπτυσσόμενη λίστα. Λάβετε υπόψη ότι σε ορισμένες περιπτώσεις ενδέχεται να υπάρχουν διαφορές στις λίστες των προγραμμάτων οδήγησης κατά την επιλογή διαφορετικού λειτουργικού συστήματος. Επομένως, δείτε όχι μόνο το σύστημα που έχετε εγκαταστήσει, αλλά και τις παρακάτω εκδόσεις.
  8. Αφού επιλέξετε το λειτουργικό σύστημα, θα δείτε μια λίστα με όλο το λογισμικό που χρειάζεται η μητρική σας για να αλληλεπιδράσει με άλλα εξαρτήματα του υπολογιστή. Πρέπει να τα κατεβάσετε και να τα εγκαταστήσετε όλα. Η λήψη πραγματοποιείται αυτόματα αφού κάνετε κλικ στο κουμπί, Κατεβάστεή το αντίστοιχο εικονίδιο. Εάν κατεβάσατε το αρχείο με τα προγράμματα οδήγησης, τότε πριν από την εγκατάσταση, φροντίστε να εξαγάγετε όλα τα περιεχόμενά του σε έναν ξεχωριστό φάκελο. Μετά από αυτό, εγκαταστήστε το λογισμικό.
  9. Αφού εγκαταστήσετε όλο το λογισμικό για τη μητρική σας πλακέτα, ας προχωρήσουμε στην κάρτα βίντεο.
  10. Πατήστε ξανά το συνδυασμό πλήκτρων Win+Rκαι στο παράθυρο που εμφανίζεται εισάγετε την εντολή "dxdiag". Κάντε κλικ για να συνεχίσετε "Εισαγω"ή κουμπί "ΕΝΤΑΞΕΙ"στο ίδιο παράθυρο.
  11. Στο παράθυρο του διαγνωστικού εργαλείου που ανοίγει, μεταβείτε στην καρτέλα "Οθόνη". Εδώ μπορείτε να μάθετε τον κατασκευαστή και το μοντέλο του προσαρμογέα γραφικών σας.
  12. Εάν έχετε φορητό υπολογιστή, τότε πρέπει επίσης να μεταβείτε στην καρτέλα "Μετατροπέας". Εδώ μπορείτε να δείτε πληροφορίες για τη δεύτερη διακριτή κάρτα γραφικών.
  13. Αφού μάθετε τον κατασκευαστή και το μοντέλο της κάρτας γραφικών σας, πρέπει να μεταβείτε στον επίσημο ιστότοπο της εταιρείας. Ακολουθεί μια λίστα με τις σελίδες λήψης των μεγάλων κατασκευαστών καρτών γραφικών.
  14. Πρέπει να καθορίσετε το μοντέλο της κάρτας βίντεο και το λειτουργικό σύστημα με bitness σε αυτές τις σελίδες. Μετά από αυτό, μπορείτε να κάνετε λήψη του λογισμικού και να το εγκαταστήσετε. Λάβετε υπόψη ότι είναι προτιμότερο να εγκαταστήσετε το λογισμικό για τον προσαρμογέα γραφικών από τον επίσημο ιστότοπο. Μόνο σε αυτήν την περίπτωση θα εγκατασταθούν ειδικά εξαρτήματα που θα αυξήσουν την απόδοση της κάρτας βίντεο και θα επιτρέψουν τη λεπτομέρειά της.
  15. Όταν εγκαθιστάτε το λογισμικό για τον προσαρμογέα γραφικών και τη μητρική πλακέτα, πρέπει να ελέγξετε το αποτέλεσμα. Για αυτό ανοίγουμε "Διαχειριστή της συσκευής". Πατήστε έναν συνδυασμό κουμπιών ΝίκηΚαι "R"στο πληκτρολόγιο και στο παράθυρο που ανοίγει, γράψτε την εντολή devmgmt.msc. Μετά από αυτό πιέζουμε "Εισαγω".
  16. Ως αποτέλεσμα, θα δείτε ένα παράθυρο "Διαχειριστή της συσκευής". Δεν πρέπει να περιέχει συσκευές και εξοπλισμό αγνώστων στοιχείων, δίπλα στο όνομα των οποίων υπάρχουν ερωτηματικά ή θαυμαστικά. Εάν συμβαίνει αυτό, τότε έχετε εγκαταστήσει όλα τα απαραίτητα προγράμματα οδήγησης. Και εάν υπάρχουν τέτοια εξαρτήματα, συνιστούμε να χρησιμοποιήσετε μία από τις ακόλουθες μεθόδους.

Μέθοδος 2: Βοηθητικά προγράμματα αυτόματης ενημέρωσης λογισμικού

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

Μπορείτε να χρησιμοποιήσετε οποιοδήποτε από τα βοηθητικά προγράμματα που περιγράφονται. Συνιστούμε όμως να χρησιμοποιήσετε το DriverPack Solution ή το Driver Genius. Αυτά είναι τα προγράμματα με τη μεγαλύτερη βάση δεδομένων προγραμμάτων οδήγησης και υποστηριζόμενο υλικό. Σας έχουμε ήδη πει για τον τρόπο χρήσης του DriverPack Solution.

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

  1. Ξεκινάμε το πρόγραμμα.
  2. Θα βρεθείτε αμέσως πάνω της αρχική σελίδα. Υπάρχει ένα πράσινο κουμπί στη μέση "Έναρξη ελέγχου". Το πατάμε με τόλμη.
  3. Θα ξεκινήσει η διαδικασία σάρωσης του υπολογιστή ή του φορητού υπολογιστή σας. Μετά από λίγα λεπτά, θα δείτε μια λίστα με όλες τις συσκευές για τις οποίες πρέπει να κάνετε λήψη και εγκατάσταση λογισμικού. Δεδομένου ότι δεν αναζητούμε συγκεκριμένο πρόγραμμα οδήγησης, ελέγχουμε όλα τα διαθέσιμα στοιχεία. Μετά από αυτό, πατήστε το κουμπί "Περαιτέρω"στο κάτω μέρος του παραθύρου του προγράμματος.
  4. Στο επόμενο παράθυρο, θα δείτε μια λίστα συσκευών για τις οποίες τα προγράμματα οδήγησης έχουν ήδη ενημερωθεί χρησιμοποιώντας αυτό το βοηθητικό πρόγραμμα, καθώς και εκείνες τις συσκευές για τις οποίες χρειάζεται ακόμα λήψη και εγκατάσταση του λογισμικού. Ο τελευταίος τύπος συσκευής επισημαίνεται με έναν γκρι κύκλο δίπλα στο όνομα. Για αξιοπιστία, απλώς πατήστε το κουμπί "Κατέβασέ τα όλα".
  5. Μετά από αυτό, το πρόγραμμα θα προσπαθήσει να συνδεθεί με τους διακομιστές για να κατεβάσει τα απαραίτητα αρχεία. Εάν όλα πάνε καλά, θα επιστρέψετε στο προηγούμενο παράθυρο, όπου μπορείτε να παρακολουθείτε την πρόοδο της λήψης λογισμικού στην αντίστοιχη γραμμή.
  6. Όταν γίνει λήψη όλων των στοιχείων, το εικονίδιο δίπλα στο όνομα της συσκευής θα γίνει πράσινο με ένα βέλος προς τα κάτω. Δυστυχώς, η εγκατάσταση όλου του λογισμικού με ένα κουμπί δεν θα λειτουργήσει. Επομένως, επιλέξτε τη γραμμή με την απαραίτητη συσκευή και πατήστε το κουμπί "Εγκαθιστώ".
  7. Προαιρετικά, δημιουργήστε ένα σημείο επαναφοράς. Θα σας ζητηθεί για αυτό στο επόμενο παράθυρο διαλόγου. Επιλέξτε την απάντηση που ταιριάζει με την απόφασή σας.
  8. Μετά από αυτό, θα ξεκινήσει η διαδικασία εγκατάστασης του προγράμματος οδήγησης για την επιλεγμένη συσκευή, κατά την οποία ενδέχεται να εμφανιστούν τυπικά πλαίσια διαλόγου. Σε αυτά, χρειάζεται απλώς να διαβάσετε τις συμφωνίες άδειας χρήσης και να πατήσετε τα κουμπιά "Περαιτέρω". Δεν θα πρέπει να έχετε κανένα πρόβλημα σε αυτό το στάδιο. Μετά την εγκατάσταση αυτού ή εκείνου του λογισμικού, ενδέχεται να σας ζητηθεί να επανεκκινήσετε το σύστημα. Εάν εμφανιστεί ένα τέτοιο μήνυμα, σας συνιστούμε να το κάνετε. Όταν το πρόγραμμα οδήγησης εγκατασταθεί με επιτυχία, Πρόγραμμα οδήγησηςΤο Genius δίπλα στη γραμμή με τον εξοπλισμό θα είναι ένα πράσινο σημάδι επιλογής.
  9. Επομένως, πρέπει να εγκαταστήσετε λογισμικό για όλο τον εξοπλισμό από τη λίστα.
  10. Στο τέλος, μπορείτε να σαρώσετε ξανά τον υπολογιστή για να είστε πειστικοί. Εάν έχετε εγκαταστήσει όλα τα προγράμματα οδήγησης, θα δείτε ένα παρόμοιο μήνυμα.
  11. Επιπλέον, μπορείτε να ελέγξετε εάν είναι εγκατεστημένο όλο το λογισμικό "Διαχειριστή της συσκευής"όπως περιγράφεται στο τέλος της πρώτης μεθόδου.
  12. Εάν εξακολουθούν να υπάρχουν μη αναγνωρισμένες συσκευές, δοκιμάστε την ακόλουθη μέθοδο.

Μέθοδος 3: Διαδικτυακές υπηρεσίες

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

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

Μέθοδος 4: Μη αυτόματη ενημέρωση προγράμματος οδήγησης

Αυτή η μέθοδος είναι η πιο αναποτελεσματική από όλες τις παραπάνω. Ωστόσο, σε πολύ σπάνιες περιπτώσεις, είναι αυτός που θα μπορεί να βοηθήσει στην εγκατάσταση του λογισμικού. Να τι χρειάζεται.


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

Όπως γνωρίζουμε, σε επίπεδο υλικού σύγχρονο υπολογιστήαποτελείται από λειτουργικές μονάδες, οι οποίες είναι ορισμένα ηλεκτρονικά εξαρτήματα. Μεγάλη γκάμα χρηστών προσωπικούς υπολογιστέςεξοικειωμένοι με λειτουργικά μπλοκ όπως: επεξεργαστής, μνήμη, κάρτα βίντεο, κάρτα ήχου, HDD, ελεγκτής I/O (που παρέχει τη λειτουργία του πληκτρολογίου, του ποντικιού, του joystick, μέσων USB (μονάδες flash)), του εκτυπωτή, του σαρωτή και ορισμένων άλλων. Σε φυσικό επίπεδο, αυτές οι συσκευές αλληλεπιδρούν μεταξύ τους μέσω ειδικών λεωφορείων και πρωτοκόλλων, δημιουργώντας ένα συνδυασμό της αλληλεπίδρασής τους με μια συμβίωση λειτουργιών, η οποία, στη γενική περίπτωση, χαρακτηρίζει τη λειτουργία ενός υπολογιστή. Αλλά είναι ένας υπολογιστής απλώς μια συλλογή από ΗΛΕΚΤΡΟΝΙΚΑ ΕΞΑΡΤΗΜΑΤΑ? Φυσικά όχι, επειδή μια από τις κύριες μονάδες υλικού, ΕΠΕΞΕΡΓΑΣΤΗΣ, έχει σχεδιαστεί για να εκτελεί εντολές μηχανής, οι ακολουθίες των οποίων, όπως γνωρίζουμε, αποτελούνται από προγράμματα, υπό το πρίσμα αυτό, θα ήταν σκόπιμο να αναφέρουμε ένα ακόμη επίπεδο - λογισμικό. Τώρα ας πάμε πίσω στο όχι και τόσο μακρινό παρελθόν. Στις πρώτες μέρες της εποχής των υπολογιστών, ο κώδικας προγράμματος (ο οποίος συχνά γράφτηκε απευθείας σε κώδικες μηχανής/γλώσσες χαμηλού επιπέδου) μπορούσε εύκολα να αλληλεπιδράσει με το υλικό άμεσα επειδή η αρχιτεκτονική του υλικού ήταν σχετικά απλή. Ωστόσο, με την πάροδο του χρόνου, οι τεχνολογίες έχουν εξελιχθεί, τα επίπεδα υλικού και λογισμικού έχουν εξελιχθεί αλληλένδετα, και η πρώτη ήρθε στην εμφάνιση μιας μεγάλης ποικιλίας συσκευών και η δεύτερη στην εμφάνιση μιας τεράστιας ποικιλίας ενότητες λογισμικού, που αργότερα οδήγησε στην εμφάνιση λειτουργικών συστημάτων. Το λειτουργικό σύστημα ήταν ένα βασικό ορόσημο στην ιστορία της ανάπτυξης της βιομηχανίας υπολογιστών, καθώς ήταν, μεταξύ άλλων, που λειτουργούσε ως σύνδεσμος, ένα είδος συντονιστή (διεκπεραιωτή) που εξασφάλιζε την αλληλεπίδραση μεταξύ συσκευών και προγραμμάτων: αποδέχτηκε αιτήματα από το επίπεδο λογισμικού (για παράδειγμα, προγράμματα χρήστη) για ανταλλαγή δεδομένων με αυτήν ή εκείνη τη συσκευή και αντίστροφα, δηλαδή, στην πραγματικότητα χρησίμευε ως διεπαφή μεταξύ των τμημάτων υλικού και λογισμικού. Τα λειτουργικά συστήματα επίσης δεν έμειναν ακίνητα και αν στην αρχή η αλληλεπίδραση του λειτουργικού συστήματος με το υλικό υπολογιστή ήταν σχετικά απλή, τότε καθώς η αρχιτεκτονική έγινε πιο περίπλοκη και εισήχθησαν νέες δυνατότητες υλικού, η δομή του λειτουργικού συστήματος έγινε πιο περίπλοκη. Καθ' όλη τη διάρκεια της ανάπτυξης των λειτουργικών συστημάτων, οι προγραμματιστές προσπάθησαν να δημιουργήσουν κώδικα που παρέχει πλήρη αλληλεπίδραση με τον μέγιστο δυνατό αριθμό συσκευών υλικού που διατίθενται στην αγορά. Ωστόσο, μια τέτοια προσέγγιση, καθώς η αρχιτεκτονική των προσωπικών υπολογιστών x86 έγινε πιο περίπλοκη, οδήγησε στην εμφάνιση της έννοιας ενός ξεχωριστού επιπέδου λογισμικού που ονομάζεται πρόγραμμα οδήγησης υπεύθυνος για την αλληλεπίδραση με μια συγκεκριμένη κατηγορία/τύπο συσκευής. Η ιδέα του προγράμματος οδήγησης αποδείχθηκε τόσο επιτυχημένη που εκτός από την κύρια κατεύθυνση - υποστήριξη για φυσικές συσκευές, επεκτάθηκε σε ορισμένες κατηγορίες λογικών / εικονικών συσκευών. Σε αυτό το άρθρο θα μιλήσουμε για το τι είναι πρόγραμμα οδήγησης των windows.

Θεωρία

Ας απομακρυνθούμε λίγο από την έννοια του οδηγού και ας δούμε τη γενική θεωρία. Για να κατανοήσετε τι είναι ένα πρόγραμμα οδήγησης σε ένα σύστημα, πρέπει πρώτα να περάσετε από μια ελάχιστη θεωρία σχετικά με τη γενική αρχιτεκτονική x86-64. Γιατί x86, ναι, γιατί η συγκεκριμένη πλατφόρμα: α) επιλέχθηκε από εμένα για πειράματα, β) είναι η πιο κοινή στο τμήμα λειτουργίας πελατών συστήματα Windows. Τα χαρακτηριστικά που εκφράζονται σε αυτήν την ενότητα θα μας δώσουν να κατανοήσουμε πολλές πτυχές της εργασίας τόσο του ίδιου του λειτουργικού συστήματος όσο και, κατά συνέπεια, των προγραμμάτων οδήγησης στη σύνθεσή του.

Τρόποι λειτουργίας επεξεργαστή

Η εσωτερική δομή οποιουδήποτε λειτουργικού συστήματος βασίζεται στα χαρακτηριστικά υλικού της πλατφόρμας στην οποία εκτελείται. Ο κεντρικός σύνδεσμος είναι ο επεξεργαστής, οι επεξεργαστές αρχιτεκτονικής x86-64 έχουν διάφορους τρόπους λειτουργίας:

  • Πραγματική λειτουργία.
  • Εικονική λειτουργία (Εικονική λειτουργία).
  • Προστατευμένη λειτουργία.
  • Long mode (Long mode).

Στην αυγή της εποχής ανάπτυξης των προσωπικών υπολογιστών αρχιτεκτονικής x86, ο επεξεργαστής δούλευε σε πραγματική λειτουργία. Ωστόσο, η πραγματική λειτουργία έγινε σταδιακά παρελθόν, καθώς είχε μια σειρά από χαρακτηριστικά που καθιστούσαν αδύνατη την περαιτέρω ανάπτυξη τεχνολογιών: ένας δίαυλος δεδομένων 16-bit και ένας δίαυλος διευθύνσεων 20-bit (περιορισμός διευθύνσεων), διευθυνσιοδότηση τμημάτων με μεγέθη τμημάτων 64 kilobyte (ενόχληση στη χρήση του χώρου διευθύνσεων), έλλειψη περιορισμών πρόσβασης στο χώρο διευθύνσεων. Προκειμένου να αρθούν οι υφιστάμενοι περιορισμοί, αναπτύχθηκε μια προστατευμένη λειτουργία, η οποία παρείχε μια σειρά από χαρακτηριστικά σημαντικά για την ανάπτυξη λειτουργικών συστημάτων: "multitasking", μηχανισμός προστασίας (πρόσβαση σε προνομιακές εντολές), ο οποίος παρέχει έλεγχο πρόσβασης διαφορετικών κωδικών ενότητες (προγράμματα) μεταξύ τους, ένα μοντέλο εικονική μνήμη. Σε προστατευμένη λειτουργία Επεξεργαστές IntelΟι αρχιτεκτονικές x86 εφαρμόζουν τους λεγόμενους δακτυλίους προστασίας ή επίπεδα προνομίων. Υπάρχουν τέσσερα από αυτά: 0 (τα πιο προνομιούχα), 1, 2 και 3 (λιγότερο προνομιούχα). Τα επίπεδα προνομίων προορίζονται για την προστασία του κώδικα λειτουργίας πυρήνα από προγράμματα χρήστη και προγράμματα χρήστη το ένα από το άλλο, καθώς αυτό μπορεί να οδηγήσει σε καταστροφή. Ωστόσο, το λειτουργικό σύστημα Windows δεν χρησιμοποιεί όλα τα αναφερόμενα επίπεδα, μόνο δύο από αυτά εμπλέκονται σε αυτό: 0 και 3.
Για λόγους σαφήνειας, παρουσιάζουμε ένα απλοποιημένο διάγραμμα της αλληλεπίδρασης των στοιχείων των Windows:

Όπως μπορείτε να δείτε, το εσωτερικό περιβάλλον του λειτουργικού συστήματος Windows χωρίζεται σε δύο μέρη και υποστηρίζει δύο τρόπους εκτέλεσης:

  • Λειτουργία χρήστη- μη προνομιακή λειτουργία, που σχετίζεται με τον 3ο δακτύλιο προστασίας του επεξεργαστή.
  • Η λειτουργία πυρήνα είναι μια προνομιακή λειτουργία που σχετίζεται με τον 0ο δακτύλιο προστασίας του επεξεργαστή υλικού.

Αυτή η δυνατότητα είναι ίσως το πιο σημαντικό σημείο για την κατανόηση της εσωτερικής δομής των Windows: σε παγκόσμιο επίπεδο, το λειτουργικό σύστημα χωρίζεται, όπως λέγαμε, σε δύο κύρια μέρη: τη λειτουργία χρήστη και τη λειτουργία πυρήνα.

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

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

Οι ακόλουθες διεργασίες εκτελούνται σε λειτουργία χρήστη:

Υποσύστημα Περιγραφή
Διαδικασίες υποστήριξης συστήματος
  • Διαδικασία σύνδεσης στο Winlogon (winlogon.exe)
  • Επεξεργάζομαι, διαδικασία τοπικός διακομιστήςΈλεγχος ταυτότητας lsass (lsass.exe)
  • Διαδικασία Service Control Manager (services.exe)
  • Διαδικασία Session Manager (smss.exe)
  • Διαδικασία κονσόλας (conhost.exe)
  • Διαδικασία Local Session Manager (lsm.exe)
  • . . .
Διαδικασίες Εξυπηρέτησης
  • Διαδικασία κεντρικού υπολογιστή για υπηρεσίες (svchost.exe)
  • Διαδικασία Spooler (spoolsv.exe)
  • Διαδικασία διαχείρισης υπηρεσιών WMI (winmgmt.exe)
  • . . .
Εφαρμογές
  • Εφαρμογές χρηστών (όλες οι εφαρμογές δεν περιλαμβάνονται στις άλλες κατηγορίες).
  • Διαχείριση εργασιών (taskmgr.exe)
  • Explorer (explorer.exe)
  • Κονσόλα διαχείρισης (mmc.exe)
  • . . .
Υποσυστήματα Περιβάλλοντος
  • Υποσύστημα Win32 (csrss.exe, kernel32.dll, advapi32.dll, user32.dll, gdi32.dll, ...)
  • Υποσύστημα Linux (lxss.sys, lxcore.sys)
  • Υποσύστημα POSIX (psxss.exe, psxrun.exe, posix.exe, psxdll.dll)
  • Υποσύστημα OS/2 (os2.exe, os2ss.exe, os2srv.exe)
  • Υποσύστημα WOW/WOW64 (wow64win.dll, wow64.dll, wow64cpu.dll)
  • . . .
Διεπαφή σε λειτουργίες πυρήνα
  • Παρέχει μεταφορά ελέγχου στον πυρήνα για λειτουργίες που το απαιτούν. Υποστηρίζεται από το ntdll.dll

Σε λειτουργία πυρήνα:

Υποσύστημα Περιγραφή
Εκτελεστικό σύστημα (Εκτελεστικό)
  • Διαχειριστής εισόδου/εξόδου
  • Διαχειριστής Διαδικασιών
  • Διαχειριστής νημάτων
  • Διαχείριση εικονικής μνήμης
  • Διαχειριστής αντικειμένων
  • Διαχειριστής PnP
  • Power Manager
  • Διαχειριστής παραθύρων
  • . . .
Πυρήνας προετοιμασία των προγραμμάτων οδήγησης κρίσιμης σημασίας για το σύστημα κατά τη φάση εκκίνησης, συγχρονισμός διαεπεξεργαστών, προγραμματισμός και αποστολή διεργασιών/νημάτων/διακοπών, χειρισμός/αποστολή εξαιρέσεων/σφαλμάτων και ορισμένων άλλων λειτουργιών (ntoskrnl.exe, ntkrnlmp.exe, ntkrnnlpa. .exe).
Προγράμματα οδήγησης συσκευών Προγράμματα οδήγησης φυσικών/λογικών/εικονικών συσκευών: σύστημα αρχείων, δίκτυο, δίσκος και άλλα προγράμματα οδήγησης.
Παράθυρο / υποσύστημα γραφικών (Windowing And Graphics System) Υποσύστημα υποστήριξης παραθύρων και γραφικών που παρέχει υποστήριξη για λειτουργίες γραφικών. διεπαφή χρήστη(Graphic User Interface, GUI). (win32k.sys)
Επίπεδο αφαίρεσης υλικού (HAL) παρέχει ανεξαρτησία από το υλικό της πλατφόρμας, απομονώνει τα στοιχεία του πυρήνα από τα συγκεκριμένα σκεύη, εξαρτήματα. (hal.dll)

Δεδομένου ότι οποιοδήποτε λειτουργικό σύστημα πρέπει απλώς να μπορεί να λειτουργεί με υλικό, το κιτ διανομής (κιτ εγκατάστασης / αρχεία συστήματος) περιέχει προγράμματα οδήγησης για βασικά στοιχεία υλικού, χωρίς τα οποία το σύστημα θα χάσει κυριολεκτικά την πρόσβαση στο υλικό με όλα τα επακόλουθα προβλήματα: δεν θα μπορεί να λειτουργήσει ή καθόλου θα περάσει από τη διαδικασία εγκατάστασης. Αυτά τα «εσωτερικά» προγράμματα οδήγησης παρουσιάζονται με τη μορφή μιας λεγόμενης ενσωματωμένης βιβλιοθήκης προγραμμάτων οδήγησης, η οποία αλλάζει σύνθεση από έκδοση σε έκδοση, ανάλογα με τα στάδια εξέλιξης του υλικού και τις τάσεις της αγοράς. Τα προγράμματα οδήγησης από αυτήν τη βιβλιοθήκη, εάν είναι απαραίτητο, εγκαθίστανται στο στάδιο εγκατάστασης του λειτουργικού συστήματος, ανάλογα με τον εντοπισμό (αναγνώριση) ορισμένων συσκευών στον υπολογιστή. Γενικά, κατά την εγκατάσταση, ο κωδικός ανίχνευσης υλικού εντοπίζει τις συσκευές που είναι εγκατεστημένες στον υπολογιστή και ελέγχει τη βιβλιοθήκη του για συγκρίσιμα προγράμματα οδήγησης. Για τις συσκευές για τις οποίες υπάρχουν προγράμματα οδήγησης συστήματος, η εγκατάσταση πραγματοποιείται σε αυτόματη λειτουργία (παρασκήνιο). Έτσι, "στην έξοδο", μετά την εγκατάσταση του λειτουργικού συστήματος, μπορούμε να λάβουμε το ελάχιστο σύνολο προγραμμάτων οδήγησης συστήματος που είναι απαραίτητο για τη λειτουργία, το οποίο μας επιτρέπει να οργανώσουμε ένα λειτουργικό αρχικό περιβάλλον εργασίας. Αλλά αξίζει να θυμάστε ότι δεν πρέπει να περιορίζεστε στα προγράμματα οδήγησης που είναι ενσωματωμένα στο κιτ διανομής, καθώς η πλήρης λειτουργία των περισσότερων συσκευών ενδέχεται να απαιτεί προγράμματα οδήγησης που παρέχονται από τον κατασκευαστή της συσκευής.

Το ερώτημα παραμένει: όλα τα στοιχεία λειτουργίας πυρήνα αλληλεπιδρούν με το υλικό αποκλειστικά μέσω του επιπέδου HAL; υπάρχουν εξαιρέσεις; Στον Ιστό, πολλές πηγές παρέχουν διαγράμματα στα οποία τα προγράμματα οδήγησης προσαρμογέων γραφικών αλληλεπιδρούν με τις κάρτες γραφικών σαν "απευθείας", παρακάμπτοντας το HAL. Από όσο θυμάμαι, τα γραφικά είχαν την υψηλότερη προτεραιότητα σε ορισμένες εκδόσεις των Windows, έτσι χωρίστηκαν σε μια ξεχωριστή κατηγορία συσκευών που λειτουργούν απευθείας με προσαρμογέας γραφικών, και αυτό έγινε για να επιταχυνθεί GUIσυστήματα.

Επίπεδα αιτήματος διακοπής (IRQL)

Μεταξύ των βασικών εσωτερικών μηχανισμών που καθορίζουν τη λειτουργία του λειτουργικού συστήματος Windows, υπάρχει ένα θέμα που είναι αρκετά σημαντικό για την κατανόηση των αρχών λειτουργίας των προγραμμάτων οδήγησης, το οποίο είναι απίθανο να παρακαμφθεί. Αυτός ο μηχανισμός ονομάζεται επίπεδο αιτήματος διακοπής(Interrupt Request Level, IRQ Level, IRQL) και είναι αρκετά δύσκολο να γίνει κατανοητό, επομένως η εις βάθος μελέτη του ξεφεύγει κατά πολύ από το περιεχόμενο του υλικού που παρουσιάζεται, ωστόσο, σε αυτό το άρθρο θα επιχειρήσουμε μια περίληψη (καλά, στο μέλλον θα διαθέσει ξεχωριστό άρθρο για αυτό). Ειλικρινά, ο ίδιος είμαι ακόμα σε σύγχυση σχετικά με την έννοια του IRQL, οπότε θα αναφέρω τη δική μου κατανόηση συστηματικά, βήμα προς βήμα, με βάση τη γνώση που αποκτήθηκε σε κάθε ένα από τα στάδια.
Ο όρος διακοπή συνδέθηκε πάντα μαζί μου με τον πραγματικό τρόπο λειτουργίας του επεξεργαστή, μεταφερόμενος στις μέρες του λειτουργικού συστήματος MSDOS, στο οποίο όλα ήταν πολύ απλά: υπήρχε ένα σύνολο 256 διακοπών διαθέσιμες μέσω του διανυσματικού πίνακα διακοπής. Ορισμένες από αυτές τις διακοπές ήταν υλικό, αντίστοιχα, που δημιουργήθηκαν ανεξάρτητα από ορισμένα εξωτερικά συμβάντα υλικού, ενώ άλλες ήταν λογισμικό, αντίστοιχα, που μπορούσαν να κληθούν από τον κώδικα εφαρμογής. Οι καταχωρήσεις στον πίνακα διακοπής θα μπορούσαν να επανακαθοριστούν, δηλαδή, το διάνυσμα χειριστή διακοπής ήταν διαθέσιμο για αλλαγή κατά βούληση στη δική του διαδικασία επεξεργασίας. Τέτοιες έννοιες όπως το επίπεδο των αιτημάτων διακοπής δεν υπήρχαν, όλα ήταν απλά και ξεκάθαρα. Ωστόσο, με την εξέλιξη των επεξεργαστών και των λειτουργικών συστημάτων, εμφανίστηκε πρώτα η προστατευμένη λειτουργία και μετά τα Windows, από εκείνη τη στιγμή όλα άρχισαν να γίνονται γρήγορα πιο περίπλοκα.
Κυριολεκτικά ξαφνικά, στις πρώτες κιόλας εκδόσεις των Windows 95 / NT, εμφανίστηκε κάποιο είδος πίνακα (αποτελούμενος από 32 επίπεδα αιτήματος διακοπής), τα επίπεδα των οποίων βαθμολογούνται από το χαμηλότερο 0 (παθητικό) έως το υψηλότερο 31 (υψηλό):

Ονομα Τάξη Σκοπός Επίπεδο Intel x86-64
ΥΨΗΛΟΣ Σκεύη, εξαρτήματα Το υψηλότερο επίπεδο. NMI και άλλους τύπους. 31
ΕΞΟΥΣΙΑ Σκεύη, εξαρτήματα Συμβάντα διακοπής ρεύματος 30
IPI Σκεύη, εξαρτήματα Σήμα ενδοεπεξεργαστή. Σήματα επικοινωνίας μεταξύ επεξεργαστών. 29
ΡΟΛΟΪ Σκεύη, εξαρτήματα Κύκλος χρονοδιακόπτη συστήματος 28
ΠΡΟΦΙΛ Σκεύη, εξαρτήματα Έλεγχος απόδοσης. Χρονόμετρο προφίλ πυρήνα (μηχανισμός μέτρησης απόδοσης συστήματος). 27
ΣΥΣΚΕΥΗ Σκεύη, εξαρτήματα DIRQL (Συσκευές IRQL). Διακοπές υλικού συσκευής. 3-26
ΕΠΙΣΤΟΛΗ Πρόγραμμα Λειτουργίες χρονοδιαγράμματος/κλήσεις αναβαλλόμενης διαδικασίας (DPC). 2
APC Πρόγραμμα Ασύγχρονες κλήσεις διαδικασίας. 1
ΠΑΘΗΤΙΚΟΣ Πρόγραμμα Παθητικό επίπεδο. Δεν υπάρχουν διακοπές. Κανονικό επίπεδο εκτέλεσης κώδικα σε λειτουργία χρήστη 0

Όπως μπορείτε να δείτε, υπάρχει ένα πολύ ενδιαφέρον χαρακτηριστικό στον παραπάνω πίνακα: και τα δύο επίπεδα λογισμικού και υλικού συγκεντρώνονται (0-2 είναι τα επίπεδα λογισμικού και 3-31 είναι τα επίπεδα υλικού).

Το IRQL είναι ένα ιδιόκτητο χαρακτηριστικό προγραμματισμού που εισήχθη από προγραμματιστές της Microsoft. Αυτός ο μηχανισμός δεν έχει υποστήριξη υλικού από τον επεξεργαστή. Το σύστημα διαχειρίζεται ανεξάρτητα όλους τους τύπους διακοπών που συμβαίνουν μέσω του μηχανισμού αντιστοίχισης των επιπέδων διακοπής του ελεγκτή διακοπής υλικού (PIC) και των δικών του επιπέδων λογισμικού σε έναν ενιαίο πίνακα επιπέδων διακοπής ανεξάρτητου υλικού.

Από αυτή τη δήλωση προκύπτει ότι το μοντέλο είναι δικό του, λογισμικό και τα επίπεδα σε αυτό δεν συνδέονται με καμία προδιαγραφή υλικού, αυτό επιτρέπει στο σύστημα να συγκεντρώνει τύπους διακοπών υλικού και μη υλικού σε μια ενιαία ιεραρχία προτεραιοτήτων. Τα χαμηλότερα επίπεδα (μη υλικού/λογισμικού) IRQL (PASSIVE, APC, DPC/DISPATCH) χρησιμοποιούνται για τον συγχρονισμό των υποσυστημάτων λογισμικού του λειτουργικού συστήματος: λειτουργίες προγραμματισμού ενεργοποίησης, όπως εναλλαγή νήματος ή επεξεργασία ολοκλήρωσης I/O. Ας τα δούμε αναλυτικά:

  • 0η (χαμηλότερη) προτεραιότητα IRQL (ΠΑΘΗΤΙΚΗ):είναι το τυπικό επίπεδο αιτήματος διακοπής στο οποίο γίνεται η εργασία στο λειτουργικό σύστημα, τόσο σε λειτουργία χρήστη όσο και σε λειτουργία πυρήνα. Ο κώδικας (πρόγραμμα) εκτελείται στις δεδομένο επίπεδο, μπορεί απλά να διακοπεί (να προβλεφθεί) από οτιδήποτε: για παράδειγμα, τα νήματα που εκτελούνται με το επίπεδο IRQ PASSIVE προλαμβάνονται από τον χρονοπρογραμματιστή μετά τη λήξη του χρονικού κβαντικού που έχει διατεθεί για αυτά.
  • Τα APC και DPC/DISPATCH IRQL είναι επίπεδα διακοπής λογισμικού που σχετίζονται με τον προγραμματιστή.
  • Επίπεδο 1 IRQL (APC):Σε αυτό το επίπεδο εκτελούνται οι λεγόμενες διαδικασίες APC, δηλαδή διαδικασίες που εκτελούνται ασύγχρονα στο πλαίσιο ενός συγκεκριμένου νήματος, με άλλα λόγια, οργανώνουν ασύγχρονες εισόδους / εξόδους ή διευθύνουν / περιμένουν την απελευθέρωση οποιουδήποτε (εξωτερικού, καθολικά) αντικείμενα συστήματος. Η χρήση συναρτήσεων APC (για παράδειγμα, WaitForSingleObjectEx) στον κώδικα δεν οδηγεί σε άμεση εκτέλεση της συνάρτησης, αντίθετα, το νήμα (στο πλαίσιο του οποίου εκτελείται η συνάρτηση) εισέρχεται σε ειδική κατάσταση και δημιουργείται μια διακοπή λογισμικού APC, Η κλήση συνάρτησης τοποθετείται σε μια εσωτερική ουρά. Την επόμενη φορά που θα έρθει η ώρα να εκτελεστεί αυτό το νήμα, η προγραμματισμένη συνάρτηση APC εκτελείται στο επίπεδο APC. Επομένως, τα νήματα που εκτελούνται στο επίπεδο APC δεν λαμβάνουν αιτήματα από το δικό τους επίπεδο APC, το οποίο χρησιμοποιεί το σύστημα για λειτουργίες ολοκλήρωσης I/O.
  • Επίπεδο 2 IRQL (DPC/DISPATCH):
    • Χρησιμοποιείται για το χειρισμό κλήσεων αναβαλλόμενης διαδικασίας (DPC): Οι κλήσεις αναβαλλόμενης διαδικασίας είναι ρουτίνες επανάκλησης που αναβάλλονται για εκτέλεση έως ότου πραγματοποιηθεί η μετάβαση στο επίπεδο IRQL DISPATCH. Συνήθως, τα DPC ζητούνται από υψηλά IRQL για να εκτελέσουν πρόσθετη εργασία για την οποία ο χρόνος CPU δεν είναι κρίσιμος. Αυτό είναι ένα πολύ σημαντικό στάδιο για την απόδοση, και τώρα θα εξηγήσω γιατί. Τα προγράμματα οδήγησης συσκευών προσπαθούν να εκτελούν τον ελάχιστο δυνατό αριθμό λειτουργιών μέσα στις δικές τους ρουτίνες υπηρεσιών διακοπής (ISR), ώστε να μην απαιτείται πολύς χρόνος σε επίπεδο DIRQL, με αποτέλεσμα να μην μπλοκάρουν άλλες διακοπές και να μην επιβραδύνουν, ως αποτέλεσμα, ολόκληρο το σύστημα .

      Όσο υψηλότερο είναι το επίπεδο IRQL, τόσο χαμηλότερη είναι η ικανότητα της διαδικασίας. Αυτό ενθαρρύνει τους προγραμματιστές να υψηλό επίπεδοΤο IRQL να εκτελεί μόνο τις πιο απαραίτητες λειτουργίες και να εκτελεί όλες τις άλλες ενέργειες σε χαμηλό επίπεδο.

      Εάν ο οδηγός κατανοήσει ότι απαιτείται πρόσθετη εργασία, η οποία απαιτεί σημαντικό χρόνο επεξεργαστή, τότε ζητά το DPC και του μεταφέρει αυτήν την εργασία. Όταν το IRQL πέσει στο DISPATCH, η συνάρτηση του αναβαλλόμενου προγράμματος οδήγησης καλείται πίσω και κάνει την υπόλοιπη επεξεργασία. Εφαρμόζοντας έναν παρόμοιο αλγόριθμο σε επίπεδο IRQL DISPATCH, ο οδηγός ξοδεύει λιγότερο χρόνο σε επίπεδο DIRQL και, κατά συνέπεια, μειώνει τον χρόνο καθυστέρησης για την επεξεργασία της δικής του διακοπής, ελευθερώνοντάς τον έτσι για άλλες συσκευές συστήματος.

    • χρησιμοποιείται για την εκτέλεση εργασιών χρονοπρογραμματιστή: Όπως γνωρίζετε, τα λειτουργικά συστήματα Windows NT εφαρμόζουν προληπτικές πολλαπλές εργασίες, πράγμα που σημαίνει ότι κάθε διεργασία που εκτελείται στο λειτουργικό σύστημα εκχωρείται για την εκτέλεση συγκεκριμένη ώρα. Δεδομένου ότι το IRQL του προγραμματιστή νημάτων και του DPC είναι 2, είναι υψηλότερο από την προτεραιότητα των νημάτων χρήστη (εκτελείται στο επίπεδο 0). Με τη σειρά του, η προτεραιότητα του χρονοπρογραμματιστή είναι χαμηλότερη από την προτεραιότητα των διακοπών υλικού (διακοπές από συσκευές), δηλαδή μπορεί να διακοπεί από διακοπές υλικού.

Εντάξει, αλλά ακόμα δεν καταλαβαίνω γιατί δεν ήταν δυνατό να εγκαταλείψουμε όλα αυτά τα επίπεδα και να δημιουργήσουμε ένα μοντέλο "επίπεδης" ουράς ή να εκτελέσουμε όλα αυτά τα είδη εργασιών όπως έρχονται; Ας προσομοιώσουμε μια κατάσταση εργασίας:
φανταστείτε κάποιο κώδικα όπως μικρό πρόγραμμαγραμμένο «στο γόνατο». Έτσι το ξεκινήσαμε για εκτέλεση, αντίστοιχα, σχηματίστηκε μια διαδικασία στο σύστημα για το πρόγραμμά μας, στο πλαίσιο της οποίας άρχισε να εκτελείται το κύριο νήμα. Ένα τυπικό νήμα (λειτουργία χρήστη ή λειτουργία πυρήνα) εκτελείται στο χαμηλότερο επίπεδο IRQL PASSIVE. Καθ' όλη τη διάρκεια της εκτέλεσης του νήματος, το ρολόι (τσιπ χρονοδιακόπτη) δημιουργεί περιοδικά τις δικές του διακοπές για να μετράει χρονικά διαστήματα, τα οποία χρησιμοποιούνται για να υποδείξουν στο λειτουργικό σύστημα ότι έχει παρέλθει μια καθορισμένη χρονική περίοδος. Η διαδικασία χειρισμού διακοπής ρολογιού εκτελείται σε επίπεδο IRQL CLOCK, το οποίο (αν κοιτάξετε τον πίνακα) έχει υψηλότερη προτεραιότητα από τα περισσότερα επίπεδα: τόσο το επίπεδο DISPATCH, που εκτελεί τον προγραμματιστή, όσο και το επίπεδο ΠΑΘΗΤΙΚΟ, που εκτελεί το πρόγραμμά μας. Έτσι, το χρονόμετρο αντικαθιστά συνεχώς την εργασία τόσο του χρονοπρογραμματιστή όσο και του προγράμματός μας. Με κάθε επιλογή του χρονοδιακόπτη που περνά, η ρουτίνα διακοπής του χρονοδιακόπτη μειώνει το υπόλοιπο του χρονοδιακόπτη αυτή τη στιγμήΧρονικό νήμα χρήστη μας. Τη στιγμή που το χρονικό slice του νήματος εκτέλεσης μειώνεται στο μηδέν, ο χειριστής διακοπής ρολογιού δημιουργεί μια διακοπή επιπέδου DISPATCH, αναγκάζοντας έτσι τον προγραμματιστή να τρέξει για να επιλέξει το επόμενο νήμα προς εκτέλεση. Κατά τη δημιουργία μιας διακοπής επιπέδου DISPATCH, ο χειριστής διακοπής του χρονοδιακόπτη τερματίζει την εκτέλεση του κώδικά του και ο έλεγχος επιστρέφεται στον πυρήνα του συστήματος. Ο πυρήνας βρίσκει την επόμενη διακοπή με το υψηλότερο επίπεδο προτεραιότητας στην ουρά αιτημάτων, η οποία βρίσκεται σε κατάσταση αναμονής. Κάθε διακοπή εξυπηρετείται με τη σειρά. Όταν εξυπηρετούνται όλες οι διακοπές πάνω από το επίπεδο DISPATCH, εκτελείται η ρουτίνα διακοπής επιπέδου DISPATCH. Αυτός ο χειριστής διακοπών επεξεργάζεται τη λίστα DPC και στη συνέχεια καλεί τον προγραμματιστή. Ο Χρονοπρογραμματιστής ανιχνεύει ότι το κβάντο χρόνου του τρέχοντος νήματος έχει εξαντληθεί, δηλαδή έχει μειωθεί στο μηδέν, μετά το οποίο ο Χρονοπρογραμματιστής εκτελεί τον αλγόριθμο προγραμματισμού για να επιλέξει το επόμενο νήμα προς εκτέλεση. Ο κώδικας του νήματος που έχει οριστεί να εκτελεστεί θα εκτελεστεί όταν το σύστημα πέσει στο επίπεδο IRQL ΠΑΘΗΤΙΚΟ.
Έτσι υλοποιούνται οι προτεραιότητες και, κατά συνέπεια, η προληπτική πολλαπλή εργασία. Τώρα φανταστείτε ότι αφαιρείτε την ιεραρχία των επιπέδων αιτημάτων διακοπής από το σύστημα, πώς θα συμπεριφέρεται το σύστημα σε αυτήν την περίπτωση; Σε αυτήν την περίπτωση, θα ήταν ασαφές τι να εκτελεστεί και πότε, το σύστημα θα εκτελούσε όλες τις εισερχόμενες εργασίες με τη σειρά του, γεγονός που θα οδηγούσε στο γεγονός ότι τα νήματα θα μπορούσαν εύκολα να προλάβουν τον προγραμματιστή και έτσι γενικά να καταστρέψουν ή να απενεργοποιήσουν πλήρως την προληπτική πολλαπλή εργασία, η οποία θα οδηγούσε πίσω από μια απρόβλεπτη λειτουργία του Λ.Σ. Ετσι:

Το IRQL είναι ένα επίπεδο προτεραιότητας υλικού-λογισμικού που χρησιμοποιείται για συγχρονισμό σε λειτουργικά συστήματα της οικογένειας Windows, δηλαδή, τα επίπεδα IRQL είναι η κύρια μέθοδος που χρησιμοποιείται για την ιεράρχηση όλων των ενεργειών που εκτελούνται στο λειτουργικό σύστημα Windows σε όλο τον κύκλο εργασίας.

αντίστοιχα:

Το IRQL υποδεικνύει την προτεραιότητα του κώδικα που εκτελείται στον επεξεργαστή σε σχέση με διακοπές και άλλα ασύγχρονα (αιφνίδια) συμβάντα.

Ο σκοπός των επιπέδων IRQL στο σύστημα είναι ο εξής:

  1. Απόκρυψη: Η αύξηση του επιπέδου διακοπής σάς επιτρέπει να αποκόψετε (μάσκες) τα υποκείμενα επίπεδα διακοπής υλικού στον ελεγκτή PIC. Αυτό σας επιτρέπει να αγνοήσετε προσωρινά τις διακοπές που συμβαίνουν σε χαμηλότερα επίπεδα, κερδίζοντας έτσι χρόνο για την εκτέλεση της ρουτίνας διακοπής υλικού σε αυτό το επίπεδο.
  2. Συγχρονισμός υλικού: συγχρονισμός δεδομένων μεταξύ νημάτων που εκτελούνται σε διαφορετικούς επεξεργαστές/πυρήνες σε ένα σύστημα πολλαπλών επεξεργαστών.
  3. Χρονισμός λογισμικού: για να προσδιορίσετε πότε μπορούν να εξυπηρετηθούν διάφορες ρουτίνες APC/DPC, για να προσδιορίσετε πότε μπορούν να εξυπηρετηθούν εφαρμογές σε λειτουργία χρήστη.

Έτσι, σε παγκόσμιο επίπεδο, ο μηχανισμός IRQL επιτρέπει σε μια υπορουτίνα του λειτουργικού συστήματος να:

  • Διαχείριση επανεισόδου (επαναείσοδος)
  • Βεβαιωθείτε ότι μπορεί να συνεχίσει να εκτελείται χωρίς να προλαμβάνονται (προκαταλαμβάνονται) από κάποια άλλη δραστηριότητα.

Ο συγχρονισμός διεργασιών είναι ένας μηχανισμός που σας επιτρέπει να διασφαλίσετε την ακεραιότητα ενός πόρου (αρχείο, δεδομένα στη μνήμη) όταν χρησιμοποιείται από πολλές διεργασίες ή νήματα με τυχαία σειρά.

Εντάξει, αλλά πώς επηρεάζει αυτό τους οδηγούς; Γνωρίζουμε ότι τα προγράμματα οδήγησης μπορούν να βρίσκονται σε λειτουργία χρήστη και πυρήνα, αντίστοιχα, εκτελούνται σε λειτουργία χρήστη και σε λειτουργία πυρήνα. Από αυτό προκύπτει ότι:

Ο κώδικας προγράμματος οδήγησης μπορεί να εκτελεστεί σε διαφορετικά επίπεδα IRQL.

Και αυτό οδηγεί σε δύο πολύ σημαντικά συμπεράσματα:

  1. Ο κωδικός προγράμματος οδήγησης είναι προληπτικός και διακόπτης. Όπως κάθε άλλος κωδικός στο σύστημα, μπορεί να διακοπεί ανά πάσα στιγμή μετά το τέλος του εκχωρημένου χρονικού τμήματος.
  2. Ο κωδικός προγράμματος οδήγησης πρέπει να χρησιμοποιεί συγκεκριμένα σύνολα λειτουργίες του συστήματοςανάλογα με το επίπεδο IRQL στο οποίο εκτελείται.

Φανταστείτε μια κατάσταση όπου ο κώδικας προγράμματος οδήγησης εκτελείται σε χαμηλό IRQL, τροποποιεί κάποιο αντικείμενο (για παράδειγμα, ένα αρχείο file.txt ), μετά ένας άλλος κώδικας σε υψηλότερο IRQL διακόπτει ξαφνικά την εκτέλεσή του και τροποποιεί το ίδιο file.txt με διαφορετικά δεδομένα. Όταν ο έλεγχος επιστρέψει στο πρόγραμμα οδήγησης μας, θα συνεχίσει να τροποποιεί το αρχείο με τα δικά του δεδομένα, αντικαθιστώντας έτσι τα δεδομένα που προέρχονται από άλλη πηγή. Έτσι, το αρχείο θα εισέλθει σε ασυνεπή κατάσταση. Διάφορα αντικείμενα του συστήματος συγχρονισμού έχουν εισαχθεί για την επίλυση αυτών των προβλημάτων. Προκειμένου ο κώδικας σε επίπεδο πυρήνα να τροποποιήσει ορισμένους τύπους δεδομένων, αντικείμενα mutex, πρέπει πρώτα να αποκτήσει την κυριότητα των κλειδαριών.

Έννοια του προγράμματος οδήγησης

Ο πυρήνας του λειτουργικού συστήματος Windows δεν σχεδιάστηκε για να αλληλεπιδρά με συσκευές από μόνος του.

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

Driver (Driver) - λογισμικό με το οποίο το λειτουργικό σύστημα (προγράμματα χρήστη, πυρήνας και άλλα στοιχεία) αποκτά πρόσβαση στη λειτουργικότητα κάποιας φυσικής ή λογικής συσκευής.

το ίδιο, αλλά με άλλα λόγια:

Πρόγραμμα οδήγησης - διεπαφή μεταξύ κώδικα λειτουργίας χρήστη, κώδικα λειτουργίας πυρήνα και φυσικών/λογικών/εικονικών λειτουργιών συσκευής.

Ένας από τους παραπάνω ορισμούς υπογραμμίζει ένα σημαντικό χαρακτηριστικό ενός προγράμματος οδήγησης: είναι λάθος να σκεφτόμαστε ένα πρόγραμμα οδήγησης μόνο σε αλληλεπίδραση με μια φυσική συσκευή, καθώς ένα πρόγραμμα οδήγησης δεν χρειάζεται να παρέχει πρόσβαση στις λειτουργίες οποιουδήποτε υλικού, μπορεί επίσης να παρέχει μόνο λειτουργίες λογισμικού. Παραδείγματα τέτοιων λύσεων είναι προγράμματα οδήγησης που είναι εγκατεστημένα στο σύστημα από προγράμματα προστασίας από ιούς, συστήματα κρυπτογράφησης δεδομένων και συστήματα παρακολούθησης. Γενικός αλγόριθμοςΗ λειτουργία οποιουδήποτε προγράμματος οδήγησης είναι η εξής: οι εφαρμογές, μέσω των λειτουργιών μιας ειδικής διεπαφής χρήστη (στα Windows, αυτό είναι το Win32 API) ή αιτημάτων εισόδου / εξόδου, έχουν έμμεση / άμεση πρόσβαση στις λειτουργίες ενός προγράμματος οδήγησης συσκευής. Το πρόγραμμα οδήγησης, με τη σειρά του, παρέχει πρόσβαση στις λειτουργικές δυνατότητες της συσκευής που σας ενδιαφέρει και επίσης ελέγχει τη διαδικασία αλληλεπίδρασης μεταξύ των αιτημάτων της εφαρμογής και της ίδιας της συσκευής. Φυσικά, ο οδηγός πρέπει να ορίσει (περιγράψει) όλες τις αρχές αλληλεπίδρασης με την επισκευασμένη (σκλάβη, δική) συσκευή, πρέπει να υπάρχει ένα σύνολο δεδομένων σχετικά με το διαχειριζόμενο αντικείμενο, οδηγίες (ένα σύνολο εντολών), με τη βοήθεια των οποίων Ο κωδικός συστήματος / χρήστη μπορεί να προετοιμάσει σωστά τη συσκευή και να ξεκινήσει την αλληλεπίδραση μαζί του.

Φόρτωση προγραμμάτων οδήγησης κατά την εκκίνηση του λειτουργικού συστήματος

Θα ήταν πολύ ενδιαφέρον να δούμε σε ποιο στάδιο της εκκίνησης του λειτουργικού συστήματος αρχίζει να φορτώνει και να εκτελείται το πρώτο πρόγραμμα οδήγησης των Windows; Ωστόσο, σε μια λεπτομερή παρουσίαση, αυτή η διαδικασία είναι μάλλον μη τετριμμένη και για μια βαθιά κατανόηση απαιτεί την αντιστροφή του κώδικα πολλών στοιχείων εκκίνησης, εκτός από όλα, είναι απαραίτητο να ληφθούν υπόψη πολλά σχετικά σημεία, όπως: η εκκίνηση ακολουθία λόγω της εξάρτησης μεταξύ των προγραμμάτων οδήγησης, λόγω της οποίας τα προγράμματα οδήγησης μπορούν να ομαδοποιηθούν στις λεγόμενες " ομάδες φόρτωσης", η ίδια η φόρτωση των προγραμμάτων οδήγησης μπορεί να χωριστεί σε διάφορα στάδια κ.λπ. Ταυτόχρονα, πρέπει να σημειωθεί ότι υπάρχει μεγάλος όγκος υλικού στον Ιστό σχετικά με ήδη ξεπερασμένα λειτουργικά συστήματα, επομένως θα προσπαθήσουμε να ενημερώσουμε τη διαδικασία λήψης. Windows προγράμματα οδήγησηςστο παράδειγμα του (πλησιέστερου σε εμένα πνευματικά) λειτουργικού συστήματος Windows 7. Και για αρχή, δεν θα ήταν κακό να μιλήσουμε για τα κύρια στοιχεία Πυρήνας των Windowsσυμμετέχει ενεργά στη διαδικασία φόρτωσης του προγράμματος οδήγησης:

  • Διαχείριση (διαχειριστής) είσοδος / έξοδος (Διαχειριστής I / O)- μια μονάδα λειτουργίας πυρήνα, η οποία αποτελεί μέρος του εκτελεστικού υποσυστήματος, η οποία ελέγχει τις διαδικασίες εισόδου/εξόδου, παρέχει μια αφαίρεση φυσικών και λογικών συσκευών για εφαρμογές χρήστη και εξαρτήματα συστήματος A που συνδέει εφαρμογές σε λειτουργία χρήστη με προγράμματα οδήγησης. Ελέγχει τα στάδια της διαδικασίας αλληλεπίδρασης με τον οδηγό. Ολόκληρη η ανταλλαγή δεδομένων του διαχειριστή I/O με προγράμματα οδήγησης πραγματοποιείται καλώντας τις διαδικασίες επανάκλησης του προγράμματος οδήγησης και μεταβιβάζοντάς τους μια τυποποιημένη δομή δεδομένων IRP, η οποία περιγράφει ολόκληρη την ουσία της κλήσης προς τον οδηγό.
  • Plug-and-Play Manager (Διαχείριση PnP)- λειτουργία πυρήνα και λειτουργική μονάδα λειτουργίας χρήστη, η οποία αποτελεί μέρος του εκτελεστικού υποσυστήματος, υπεύθυνη για την προσθήκη, την αναγνώριση, την αφαίρεση συσκευών στο λειτουργικό σύστημα. Μέρος της λειτουργίας πυρήνα αλληλεπιδρά με τα υπόλοιπα στοιχεία του συστήματος και προγράμματα οδήγησης κατά τη διαδικασία εγκατάστασης (εκκίνησης) λογισμικόπου απαιτούνται για το σέρβις των συσκευών στο σύστημα. Το τμήμα λειτουργίας χρήστη είναι υπεύθυνο για την αλληλεπίδραση με προγράμματα λειτουργίας χρήστη (για διαδραστική εμπειρία χρήστη) σε καταστάσεις που απαιτούν την εγκατάσταση νέων προγραμμάτων οδήγησης ή την προσαρμογή των παραμέτρων λειτουργίας σε υπάρχοντα. Διαχειρίζεται τη διανομή των πόρων υλικού στο σύστημα, γνωρίζει επίσης πώς να αναγνωρίζει συσκευές, να ανταποκρίνεται στη σύνδεση / αποσύνδεσή τους, να φορτώνει τα κατάλληλα προγράμματα οδήγησης όταν εντοπίζονται νέες συσκευές.
  • Υπεύθυνος Ελέγχου Υπηρεσιών (SCM)- μια διαδικασία συστήματος υπεύθυνη για τη δημιουργία, τη διαγραφή, την εκκίνηση και τη διακοπή υπηρεσιών και προγραμμάτων οδήγησης λειτουργικού συστήματος. Παρέχει επίσης: λειτουργία του αρχείου καταγραφής συμβάντων, υποστήριξη για τεχνολογία κλήσης απομακρυσμένης διαδικασίας (RPC).

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

  1. Το Bootmgr(.efi) φορτώνει τη λειτουργική μονάδα winload(.efi) και της μεταβιβάζει τον έλεγχο.
  2. Το Winload(.efi) σαρώνει την ομάδα μητρώου HKEY_LOCAL_MACHINE\System\servicesκαι λαμβάνει μια λίστα με όλα τα προγράμματα οδήγησης που είναι εγκατεστημένα στο σύστημα. Αυτή η ομάδα μητρώου περιέχει κλειδιά που αντιστοιχίζονται σε προγράμματα οδήγησης στόχευσης και περιέχουν διάφορες ρυθμίσεις που σχετίζονται με τα προγράμματα οδήγησης, όπως Ομάδα , Έναρξη , Τύπος , LoadOrderGroup , DependOnGroup , DependOnServices , οι οποίες καθορίζουν ορισμένα κριτήρια φόρτωσης προγραμμάτων οδήγησης.
  3. Το Winload(.efi) φορτώνει προγράμματα οδήγησης που είναι κρίσιμα για το αρχικό στάδιο φόρτωσης/λειτουργίας του λειτουργικού συστήματος, όπως προγράμματα οδήγησης ελεγκτή μονάδας δίσκου, προγράμματα οδήγησης συστήματος αρχείων. Προφανώς, τέτοια προγράμματα οδήγησης έχουν την υψηλότερη προτεραιότητα, καθώς δημιουργούν τη βάση για τη φόρτωση άλλων προγραμμάτων οδήγησης, επομένως, για αυτούς και άλλους λόγους, πρέπει να βρίσκονται στη μνήμη τη στιγμή που ο έλεγχος μεταφέρεται στον πυρήνα. Αντίστοιχα, επισημαίνονται με ειδικό τύπο SERVICE_BOOT_START . Προγράμματα οδήγησης για αυτό το στάδιοξεκινήστε τη λήψη ανάλογα με τις ομάδες στις οποίες ανήκουν.
  4. Το Winload(.efi) φορτώνει απευθείας τον πυρήνα από το ntoskrnl.exe και του μεταβιβάζει τον έλεγχο.
  5. Ο πυρήνας φορτώνει το I/O Manager και το PnP Manager.
  6. Ο διαχειριστής I/O δημιουργεί έναν παγκόσμιο κατάλογο. Αυτός ο κατάλογος χρησιμοποιείται αργότερα για την εγγραφή αντικειμένων συσκευής.
  7. Ο διαχειριστής PnP ξεκινά τα προγράμματα οδήγησης που έχουν ήδη φορτωθεί στη μνήμη στο προηγούμενο βήμα (τύπου SERVICE_BOOT_START) καλώντας τη διαδικασία DriverEntry κάθε προγράμματος οδήγησης. Σε αυτό το στάδιο, φορτώνονται επίσης εξαρτημένα προγράμματα οδήγησης.
  8. Ο διαχειριστής PnP δημιουργεί το δέντρο συσκευών του συστήματος, το διασχίζει από τη ρίζα και φορτώνει προγράμματα οδήγησης συσκευών που δεν έχουν ακόμη φορτωθεί.
  9. Ο διαχειριστής PnP φορτώνει τα υπόλοιπα προγράμματα οδήγησης συσκευών που δεν έχουν φορτωθεί, ανεξάρτητα από την τιμή της παραμέτρου Έναρξη. Πολλά από αυτά τα προγράμματα οδήγησης είναι τύπου SERVICE_DEMAND_START.
  10. Ο διαχειριστής PnP φορτώνει προγράμματα οδήγησης προηγμένων λειτουργιών. Αυτά τα προγράμματα οδήγησης περιλαμβάνουν το πρόγραμμα οδήγησης προσαρμογέα βίντεο, προγράμματα οδήγησης εξωτερικών συσκευών, προγράμματα οδήγησης στοίβας TCP/IP. Τέτοια προγράμματα οδήγησης είναι τύπου SERVICE_SYSTEM_START.
  11. Ο πυρήνας φορτώνει το Session Manager Subsystem Service (SMSS), το οποίο με τη σειρά του φορτώνει το Service Control Manager (SCM). Το SCM σαρώνει την ομάδα μητρώου ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services) και, με βάση τις πληροφορίες που λαμβάνονται, προσαρτά μια εσωτερική βάση δεδομένων υπηρεσιών/προγραμμάτων, σχηματίζει μια διεπαφή προγραμματισμού για την εξυπηρέτηση των εγκατεστημένων υπηρεσιών/προγραμμάτων οδήγησης. Το SCM φορτώνει προγράμματα οδήγησης "αυτόματης εκκίνησης" που δεν είναι PnP (τύπου SERVICE_AUTO_START) και τυχόν προγράμματα οδήγησης από τα οποία εξαρτώνται.

Από ολόκληρο αυτόν τον αλγόριθμο για τη φόρτωση προγραμμάτων οδήγησης, πρέπει να κατανοήσουμε τους ακόλουθους βασικούς κανόνες: ένα πρόγραμμα οδήγησης μπορεί να φορτωθεί (ανάλογα με το στάδιο / κατηγορία του προγράμματος οδήγησης) χρησιμοποιώντας έναν διαχειριστή PnP ή χρησιμοποιώντας SCM, αλλά ο Διαχειριστής I / O συμμετέχει ενεργά στη διαδικασία λειτουργίας του οδηγού.

Δομή προγράμματος οδήγησης των Windows

Πώς μπορεί να μοιάζει ένας οδηγός από άποψη δομής; Είναι όντως κάποια ειδική κατηγορία προγραμμάτων τακτοποιημένα με έναν καθαρά συγκεκριμένο τρόπο; Κι εγώ κάποτε το σκέφτηκα αφελώς, αλλά αν το καλοσκεφτείτε, γιατί οι προγραμματιστές του λειτουργικού συστήματος να περιπλέξουν τη ζωή τους και να εφεύρουν μια νέα εξειδικευμένη μορφή της εικόνας του εκτελέσιμου αρχείου για ορισμένα πυρηνικά στοιχεία; Είναι πολύ πιο εύκολο να προσαρμόσετε το παλιό, το οποίο έχει εδώ και καιρό διορθωθεί και αποδειχθεί εκατό φορές.

Ένα πρόγραμμα οδήγησης είναι ένα είδος "βιβλιοθήκης λειτουργίας πυρήνα", το συνηθισμένο αρχείο DLL, του οποίου η κεφαλίδα PE (struct IMAGE_NT_HEADERS , υποδομή OptionalHeader) έχει την τιμή του πεδίου Subsystem = 1 (IMAGE_SUBSYSTEM_NATIVE).

Ο τύπος υποσυστήματος μπορεί να οριστεί στο build εκτελέσιμη μονάδα. Το ίδιο το εγγενές υποσύστημα είναι χαρακτηριστικό για εφαρμογές που λειτουργούν σύμφωνα με κανόνες διαφορετικούς από τους κλασικούς: στο στάδιο της προετοιμασίας της εικόνας για εκτέλεση, δεν χρειάζεται να αρχικοποιήσουν το υποσύστημα Win32. Μεταξύ άλλων, το εγγενές υποσύστημα χρησιμοποιείται για κώδικα λειτουργίας πυρήνα, κάτι που είναι σχεδόν όλα τα προγράμματα οδήγησης.

Κατ' αναλογία με ένα DLL, μπορούμε να σκεφτούμε απλοϊκά ένα πρόγραμμα οδήγησης ως ένα σύνολο διαδικασιών (που καλούνται από εξωτερικές εφαρμογές), καθεμία από τις οποίες έχει σχεδιαστεί για να χειρίζεται έναν συγκεκριμένο τύπο κλήσης προς το πρόγραμμα οδήγησης.

Ας κάνουμε μια μικρή παρέκβαση και ας μιλήσουμε για μια τέτοια έννοια ως αντικείμενο. Το γεγονός είναι ότι ολόκληρη η διαδικασία λειτουργίας του προγράμματος οδήγησης των Windows, όπως και κάθε άλλη μονάδα του λειτουργικού συστήματος, εξαρτάται από μια ποικιλία δομών δεδομένων συστήματος. Αυτές οι δομές διαχειρίζονται από τον πυρήνα και μπορούν να περιέχουν νήματα, συμβάντα, αιτήματα εισόδου/εξόδου, συσκευές και άλλες οντότητες.

  • Αντικείμενα. Μπλοκ δεδομένων που περιέχουν εγγραφές των ιδιοτήτων μιας συγκεκριμένης οντότητας του λειτουργικού συστήματος. Διαχειρίζεται ο αποστολέας (διαχειριστής) των αντικειμένων. Πολλά αντικείμενα έχουν περιγραφείς (descriptors) που κάνουν το αντικείμενο διαθέσιμο στις εφαρμογές.
  • ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Μπλοκ δεδομένων που περιέχουν εγγραφές των ιδιοτήτων μιας συγκεκριμένης οντότητας του λειτουργικού συστήματος. διαχειρίζεται ο πυρήνας. Διακρίνονται από τα αντικείμενα, αλλά (λόγω αδράνειας) ονομάζονται και αντικείμενα

Αυτός είναι ο λόγος που (με μεγάλη πίεση) όλες οι εσωτερικές δομές του λειτουργικού συστήματος Windows ονομάζονται αντικείμενα.
Τώρα πίσω στις διαδικασίες του προγράμματος οδήγησης, στην πραγματικότητα, οι λεγόμενες "διαδικασίες" του προγράμματος οδήγησης είναι αντικείμενα COM επιστροφής κλήσης που επεξεργάζονται συμβάντα που προέρχονται από τα αντίστοιχα αντικείμενα υποδομής του λειτουργικού συστήματος, λέγεται ότι το πρόγραμμα οδήγησης παρέχει στον πυρήνα του λειτουργικού συστήματος ένα COM διεπαφή που καθορίζεται από μια σειρά διαδικασιών που εφαρμόζονται από το πρόγραμμα οδήγησης. Η εξαγωγή, δηλαδή η δημοσίευση (δήλωση) διαδικασιών οδηγού για περαιτέρω πρόσβαση σε αυτές από το εξωτερικό, πραγματοποιείται με εγγραφή στη διαδικασία του κύριου οδηγού (πρότυπο για όλους τους οδηγούς), που ονομάζεται DriverEntry .

Ο κύριος σκοπός της συνάρτησης DriverEntry είναι ο προγραμματιστής του προγράμματος οδήγησης να εφαρμόσει σε αυτήν τη πλήρωση του αντικειμένου (εγγραφές δομής) του προγράμματος οδήγησης με δείκτες σε διάφορες εσωτερικές διαδικασίες του προγράμματος οδήγησης που παρέχουν τη μία ή την άλλη λειτουργικότητα. Στη διαδικασία DriverEntry, μπορείτε να ορίσετε (αλλάξετε) το όνομα ενός αντικειμένου συσκευής, το οποίο στη συνέχεια χρησιμοποιείται από τις εφαρμογές για να ανοίξει μια λαβή συσκευής και να στείλει πακέτα αιτημάτων εισόδου/εξόδου (IRP).

Η συνάρτηση DriverEntry είναι στην πραγματικότητα μια καθολική συνάρτηση αρχικοποίησης και εκτελείται μία φορά κατά τη φόρτωση του προγράμματος οδήγησης. Αυτή η λειτουργία μπορεί να είναι όσο το δυνατόν πιο απλή ή να περιέχει προηγμένες λειτουργίες (πρόσθετες υπορουτίνες), όπως, για παράδειγμα, δημιουργία πρόσθετων αντικειμένων συσκευής, τηλεσκόπηση της συσκευής, πρόσθετες φάσεις διαμόρφωσης και αρχικοποίηση της(των) συσκευής(ών).
Αφού δημοσιεύσει τις δικές του λειτουργίες, το πρόγραμμα οδήγησης γίνεται ο «ορατός» πυρήνας του λειτουργικού συστήματος. Για να μην περιπλέκουμε μια ήδη αρκετά περίπλοκη θεωρία, θα υποθέσουμε ότι από την άποψη του πυρήνα των Windows, οποιαδήποτε συσκευή είναι ένα είδος αφηρημένης "εικονικής συσκευής" που λειτουργεί με ένα τυποποιημένο σύνολο εντολών και είναι προσβάσιμη μέσω εσωτερικών διεπαφών . Όπως αναφέρθηκε παραπάνω, στον πυρήνα του λειτουργικού συστήματος Windows υπάρχει μια ειδική ενότητα του εκτελεστικού συστήματος που ονομάζεται Διαχειριστής εισόδου/εξόδου, το οποίο παρέχει μια ενιαία διεπαφή διαλειτουργικότητας για όλα τα προγράμματα οδήγησης λειτουργίας πυρήνα, συμπεριλαμβανομένων των προγραμμάτων οδήγησης φυσικών συσκευών, των προγραμμάτων οδήγησης λογικών συσκευών και των προγραμμάτων οδήγησης συστήματος αρχείων. Αντίστοιχα, το σύστημα I/O του πυρήνα διαχειρίζεται τα προγράμματα οδήγησης, ή μπορούμε να πούμε ότι τα προγράμματα οδήγησης χρησιμοποιούν τη διεπαφή διαχείρισης I/O για να λειτουργήσουν στο λειτουργικό σύστημα. Από την άλλη πλευρά, το πρόγραμμα οδήγησης παρέχει τη μετατροπή (μετατροπή) των «τυπικών εντολών» που προέρχονται από το λειτουργικό σύστημα σε εντολές που «κατανοούνται» από τη συσκευή που ελέγχεται από αυτό (αν υπάρχει) και αντίστροφα. Ο διαχειριστής εισόδου/εξόδου ορίζει ένα σύνολο (σύνολο) ρουτίνες που μπορούν να εφαρμοστούν σε ένα πρόγραμμα οδήγησης επειδή:

Το πρόγραμμα οδήγησης περιέχει ένα σύνολο από ρουτίνες επανάκλησης που παρέχουν διάφορα στάδια της διαδικασίας I/O.

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

Στην πραγματικότητα, κοιτάζοντας το παραπάνω διάγραμμα, γίνεται σαφές ακριβώς ποιοι τύποι αλληλεπίδρασης, δηλαδή ομάδες διαδικασιών, πρέπει να εφαρμόσει το αφηρημένο πρόγραμμα οδήγησης των Windows. Ας αναφέρουμε τώρα μερικές από αυτές τις διαδικασίες:

  • Αρχικοποίηση - Ο Διαχειριστής εισόδου/εξόδου ξεκινά μια διαδικασία αρχικοποίησης (που ονομάζεται DriverEntry) που προορίζεται για την εκτέλεση ενεργειών σε αρχική εγκατάστασητο αντικείμενο του προγράμματος οδήγησης, καταγράφοντας όλες τις άλλες ρουτίνες προγράμματος οδήγησης, διαμορφώνοντας τις παραμέτρους του εξαρτήματος και εκτελώντας άλλες ενέργειες για λογαριασμό του προγραμματιστή.
  • Προσθήκη συσκευής - προσθέστε ένα (προαιρετικό) αντικείμενο συσκευής. Σε αυτήν τη διαδικασία, το πρόγραμμα οδήγησης δημιουργεί συνήθως αντικείμενα συσκευής για κάθε συσκευή που εξυπηρετεί το πρόγραμμα οδήγησης. Συνήθως χρησιμοποιείται για προγράμματα οδήγησης Plug-and-Play.
  • Επεξεργασία - ένα σύνολο διαδικασιών αποστολής (επεξεργασία διαφόρων καταστάσεων). Το άνοιγμα, το κλείσιμο, η ανάγνωση, η εγγραφή σε μια συσκευή, οι καταστάσεις ισχύος επεξεργασίας, τα συμβάντα PnP και οι καταστάσεις συστήματος, καθώς και ορισμένοι άλλοι τύποι αλληλεπίδρασης, περιγράφονται στις διαδικασίες αποστολής. Στην πραγματικότητα, αυτές είναι οι κύριες διαδικασίες, αφού οι τυπικές λειτουργίες I/O υποβάλλονται σε επεξεργασία μέσω διαδικασιών αποστολής.
  • Έναρξη (αρχή) I/O είναι το δεύτερο στάδιο επεξεργασίας ενός αιτήματος I/O σε μια συσκευή, ξεκινώντας απευθείας την I/O της συσκευής. Αυτή η διαδικασία μπορεί να χρησιμοποιηθεί για να ξεκινήσει η μεταφορά δεδομένων προς/από τη συσκευή.
  • Διαδικασία υπηρεσίας διακοπής - όταν η συσκευή δημιουργεί μια διακοπή, ο διαχειριστής διακοπών μεταβιβάζει τον έλεγχο σε αυτήν τη διαδικασία.
  • Αναβαλλόμενη διαδικασία χειρισμού κλήσεων - Η ρουτίνα DPC αναλαμβάνει το μεγαλύτερο μέρος του χειρισμού διακοπής μετά την εκτέλεση του ISR. Οι κλήσεις αναβαλλόμενης διαδικασίας εκτελούνται σε χαμηλότερα επίπεδα IRQL (DPC/DISPATCH) από την ίδια τη διαδικασία ISR. Ένας παρόμοιος αλγόριθμος εφαρμόζεται για την αποφυγή αποκλεισμού άλλων διακοπών.
  • Ρουτίνα ολοκλήρωσης I/O - Ένα πρόγραμμα οδήγησης πολλαπλών επιπέδων μπορεί να έχει Ρουτίνες ολοκλήρωσης I/O που ειδοποιούν την ολοκλήρωση της επεξεργασίας IRP από το πρόγραμμα οδήγησης χαμηλού επιπέδου.
  • Διαδικασίες ακύρωσης I/O - Εάν οι λειτουργίες I/O μπορεί να διακοπούν, ο οδηγός μπορεί να ορίσει μία ή περισσότερες τέτοιες διαδικασίες. Όταν ένα πρόγραμμα οδήγησης λαμβάνει ένα IRP για ένα αίτημα I/O που μπορεί να ακυρωθεί, εκχωρεί μια διαδικασία ακύρωσης IRP και το IRP περνά από διάφορα στάδια επεξεργασίας που η διαδικασία μπορεί να αλλάξει ή να καταργήσει εάν η τρέχουσα λειτουργία δεν είναι ακυρώσιμη.
  • Ρουτίνα γρήγορης αποστολής - Τα προγράμματα οδήγησης που κάνουν μεγάλη χρήση του Cache Manager, όπως τα προγράμματα οδήγησης συστήματος αρχείων, συνήθως παρέχουν παρόμοιες ρουτίνες για να επιτρέψουν στον πυρήνα να παρακάμψει κοινούς αλγόριθμους χειρισμού I/O.
  • Η διαδικασία ξεφόρτωσης πρέπει να εφαρμόζεται σε κάθε πρόγραμμα οδήγησης που λειτουργεί (δωρεάν/δανείζεται) με πόρους συστήματος προκειμένου ο Διαχειριστής I/O να ξεφορτώσει το πρόγραμμα οδήγησης από τη μνήμη.
  • Διαδικασία ειδοποίησης τερματισμού λειτουργίας - Επιτρέπει στο πρόγραμμα οδήγησης να απελευθερώσει όλους τους κατειλημμένους πόρους όταν το σύστημα τερματίζεται.

Γίνεται προφανές ότι στη διαδικασία ανάπτυξης ενός προγράμματος οδήγησης Windows δεν είναι απαραίτητο να εφαρμοστεί ολόκληρο το σύνολο των διαδικασιών που περιγράφονται παραπάνω, κάθε πρόγραμμα οδήγησης είναι μοναδικό και ο προγραμματιστής είναι ελεύθερος να παρέχει το δικό του σύνολο υλοποιήσεων που υποστηρίζονται από το πρόγραμμα οδήγησης. Όταν ένα πρόγραμμα οδήγησης φορτώνεται στο σύστημα χρησιμοποιώντας έναν διαχειριστή PnP ή SCM, ο διαχειριστής εισόδου/εξόδου δημιουργεί ένα αντικείμενο προγράμματος οδήγησης στο χώρο ονομάτων και καλεί τη ρουτίνα προετοιμασίας του προγράμματος οδήγησης (συνήθως ένα DriverEntry) που εκτελεί περαιτέρω βήματα προετοιμασίας.

Το αντικείμενο προγράμματος οδήγησης αντιπροσωπεύει την εικόνα του φορτωμένου προγράμματος οδήγησης στη μνήμη του πυρήνα και το σύστημα ελέγχει το πρόγραμμα οδήγησης μέσω αυτού του αντικειμένου.

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

  • Τα προγράμματα οδήγησης PnP δημιουργούν αντικείμενα συσκευών μέσω της ρουτίνας προσθήκης συσκευής όταν ο διαχειριστής PnP τους ενημερώνει για την παρουσία μιας συσκευής που διαχειρίζονται.
  • Τα προγράμματα οδήγησης που δεν είναι PnP δημιουργούν αντικείμενα συσκευών όταν ο διαχειριστής I/O τους καλεί τις ρουτίνες αρχικοποίησης τους.

Όταν δημιουργείτε ένα αντικείμενο τύπου "συσκευή" (συσκευή), το πρόγραμμα οδήγησης πρέπει να εκχωρήσει αυτό το αντικείμενοΟνομα. Αυτό το αντικείμενο που δημιουργήθηκε πρόσφατα τοποθετείται στον χώρο ονομάτων διαχειριστής αντικειμένων(Object Manager), ο οποίος, όπως και ο διαχειριστής I/O (manager), αποτελεί μέρος του εκτελεστικού υποσυστήματος πυρήνα. Ο διαχειριστής αντικειμένων έχει σχεδιαστεί για να διατηρεί μια βάση δεδομένων όλων των πόρων του λειτουργικού συστήματος που αντιπροσωπεύονται ως αντικείμενα. Το όνομα αντικειμένου μπορεί να οριστεί ρητά από το ίδιο το πρόγραμμα οδήγησης ή να δημιουργηθεί αυτόματα από τον διαχειριστή I/O. Κατά σύμβαση, τα αντικείμενα της συσκευής πρέπει να βρίσκονται στον κατάλογο \Device του χώρου ονομάτων του διαχειριστή αντικειμένων, ο οποίος δεν είναι προσβάσιμος σε εφαρμογές μέσω του Win32 API. Και για να γίνει διαθέσιμο το αντικείμενο "συσκευή" στις εφαρμογές, ο οδηγός πρέπει να δημιουργήσει στο \GLOBAL?? συμβολικός σύνδεσμος προς το όνομα αυτού του αντικειμένου στον κατάλογο \Device. Τα προγράμματα οδήγησης μη Plug-and-Play και συστήματος αρχείων δημιουργούν συνήθως μια συμβολική σύνδεση με ένα πολύ γνωστό όνομα (π.χ. \Device\VMwareKbdFilter). Μόνο μετά από όλες τις αναφερόμενες ενέργειες, το πρόγραμμα οδήγησης γίνεται "ορατός" στο σύστημα και διαθέσιμος για κλήση από εφαρμογές χρήστη.

Αλληλεπίδραση προγράμματος οδήγησης

Πώς μπορεί ένα πρόγραμμα χρήστη να αλληλεπιδράσει με ένα πρόγραμμα οδήγησης στο σύστημα; Υπάρχουν δύο τρόποι για να γίνει αυτό:

  1. Implicit -- κλήση μιας γενικής συνάρτησης API Win32.
  2. Ρητή -- απευθείας αίτηση εισόδου/εξόδου προς τον οδηγό.

Λοιπόν, με την πρώτη περίπτωση, όλα είναι πολύ απλά, μέσα πρόγραμμα εφαρμογήςκαλείται κάποια συνηθισμένη συνάρτηση Win32 API (για παράδειγμα, CreateFile), η οποία, στη συνέχεια, ανάλογα με το αντικείμενο-στόχο (αρχείο, κατάλογος), μπορεί να καλέσει τη συνάρτηση ανταλλαγής με το πρόγραμμα οδήγησης στην αλυσίδα των κλήσεων του. Στην πραγματικότητα, σε αυτήν την περίπτωση, ο κώδικας εφαρμογής δεν θέτει ως καθήκον αλληλεπίδρασης με κανένα πρόγραμμα οδήγησης, απλώς κατά μήκος της αλυσίδας των κλήσεων διαδικασίας, σε ένα ορισμένο στάδιο η εκτέλεση μεταβαίνει σε λειτουργία πυρήνα και η συνάρτηση προγράμματος οδήγησης καλείται εκεί. Όλα αυτά παραμένουν κρυφά από τον προγραμματιστή, αλλά είναι δυνατό να εντοπιστεί η αλληλεπίδραση χρησιμοποιώντας εργαλεία εντοπισμού σφαλμάτων.
Η δεύτερη περίπτωση είναι πιο ενδιαφέρουσα, συμβαίνει όταν μια κλήση προγράμματος οδήγησης δεν σημαίνει μια έμμεση κλήση (καλώντας μια γενική συνάρτηση), αλλά μια μεταφορά χρησιμοποιώντας μια ειδική λειτουργία (για παράδειγμα, DeviceIoControl) του λεγόμενου αιτήματος ελέγχου I / O , το οποίο, περαιτέρω, ξεκινά το σχηματισμό ενός μπλοκ δεδομένων που ονομάζεται πακέτο αιτήματος I/O.

Το πακέτο αιτήματος εισόδου/εξόδου (IRP) είναι μια δομή δεδομένων πυρήνα των Windows που περιέχει πληροφορίες που περιγράφουν ένα αίτημα εισόδου/εξόδου.

Τυπικά, το IRP είναι ένα πακέτο, αλλά στην πραγματικότητα είναι ένα αντικείμενο πυρήνα, δηλαδή μια δομή δεδομένων (μπλοκ) με ένα σύνολο διαδικασιών για τον διαχειριστή I/O, που παρέχει ανταλλαγή δεδομένων μεταξύ του προγράμματος και του προγράμματος οδήγησης ή μεταξύ ο οδηγός και ο οδηγός. Όπως αναφέραμε ήδη, η αρχιτεκτονική των Windows είναι κατασκευασμένη με τέτοιο τρόπο ώστε να μην επιτρέπει την άμεση αλληλεπίδραση μεταξύ του προγράμματος λειτουργίας χρήστη και του προγράμματος οδήγησης, επομένως μια τέτοια ανταλλαγή περιορίζεται στην αποστολή του κώδικα IOCTL από το πρόγραμμα, το οποίο ήδη οδηγεί σε ο διαχειριστής I/O που δημιουργεί ένα πακέτο αιτήματος IRP. Είναι ο διαχειριστής I/O, ως υπεύθυνος για την αλληλεπίδραση με τα προγράμματα οδήγησης, που χειρίζεται τα IRP. Ο διαχειριστής εισόδου/εξόδου λαμβάνει ένα αίτημα εισόδου/εξόδου από το πρόγραμμα χρήστη, στη συνέχεια δημιουργεί ένα IRP και το διαβιβάζει στο κατάλληλο πρόγραμμα οδήγησης.
Το πακέτο IRP αποτελείται από δύο μέρη:

  • μόνιμο μέρος?
  • Στοίβα τοποθέτησης I/O.

Στο σταθερό μέρος, το IRP περιέχει έναν κύριο και (όχι πάντα) έναν δευτερεύοντα κωδικό συνάρτησης. Старшие коды: IRP_MJ_CREATE , IRP_MJ_CLOSE , IRP_MJ_READ , IRP_MJ_WRITE , IRP_MJ_CLEANUP , IRP_MJ_DEVICE_CONTROL , IRP_MJ_INTERNAL_DEVICE_CONTROL , IRP_MJ_SCSI , IRP_MJ_SYSTEM_CONTROL , IRP_MJ_POWER , IRP_MJ_PNP , IRP_MJ_SHUTDOWN . Το πακέτο περιέχει επίσης μια στοίβα τοποθέτησης I/O - μια ειδική δομή IO_STACK_LOCATION που περιέχει ορισμένες παραμέτρους: αυτό είναι το σύνολο συσκευών που θα επεξεργαστούν αυτό το πακέτο IRP. Επιπλέον, αυτό το πακέτο μεταδίδεται διαδοχικά από συσκευή σε συσκευή κατά μήκος της στοίβας. Περισσότερες από μία τοποθετήσεις στοίβας υποδηλώνουν ότι ένα IRP μπορεί να χειριστεί πολλά προγράμματα οδήγησης. Τα "κελιά στοίβας" του IRP έχουν σχεδιαστεί για να αποθηκεύουν "μεταβλητές" πληροφορίες όταν το πακέτο IRP διασχίζει τη στοίβα του προγράμματος οδήγησης. Το IRP διέρχεται από τις δημοσιευμένες διαδικασίες κάθε προγράμματος οδήγησης, καθεμία από τις οποίες ανακτά τις πληροφορίες που χρειάζεται από τη «τοποθεσία» της στοίβας τοποθέτησης I/O. Οι διαδικασίες του προγράμματος οδήγησης ονομάζονται παραδοσιακά "διαδικασίες επανάκλησης". Όπως έχουμε ήδη αναφέρει, η συνάρτηση προετοιμασίας του DriverEtnry λέει στον πυρήνα (δημοσιεύει) τα ονόματα αυτών των διαδικασιών και αργότερα ο ίδιος ο πυρήνας καλεί αυτή ή εκείνη τη διαδικασία υπό ορισμένες συνθήκες.
Σε αντίθεση με ένα τυπικό πρόγραμμα, ένα πρόγραμμα οδήγησης δεν είναι μια κλασική διαδικασία με δικό του χώρο διευθύνσεων και δεν έχει νήμα εκτέλεσης. Αντίθετα, η συνάρτηση προγράμματος οδήγησης εκτελείται στο πλαίσιο του νήματος και της διαδικασίας στην οποία κλήθηκε. Το περιβάλλον (χώρος εκτέλεσης κώδικα) ενός προγράμματος οδήγησης εξαρτάται από το ποιος καλεί (καλεί) το πρόγραμμα οδήγησης. Μπορεί να ασκηθεί έφεση:

  1. Πρόγραμμα εφαρμογής (πρόγραμμα λειτουργίας χρήστη). Σε αυτήν την περίπτωση, το περιβάλλον εκτέλεσης του προγράμματος οδήγησης είναι ακριβώς γνωστό και ταιριάζει με το πλαίσιο του προγράμματος εφαρμογής.
  2. Άλλος (τρίτος) οδηγός. Σε αυτήν την περίπτωση, το περιβάλλον εκτέλεσης είναι πιο δύσκολο να προσδιοριστεί, μπορεί να είναι είτε γνωστό είτε τυχαίο, εξαρτάται από το περιβάλλον εκτέλεσης της συνάρτησης προγράμματος οδήγησης που καλεί.
  3. Διακοπή υλικού/λογισμικού. Σε αυτήν την περίπτωση, το πλαίσιο εκτέλεσης είναι τυχαίο, καθώς μπορεί να προκύψει διακοπή (και, κατά συνέπεια, μετάβαση σε κώδικα προγράμματος οδήγησης) όταν εκτελείται απολύτως οποιοσδήποτε κωδικός στο λειτουργικό σύστημα.

Και πάλι, σε αντίθεση με το τυπικό πρόγραμμα, το πρόγραμμα οδήγησης δεν μπορεί να καλέσει τυπικές λειτουργίες Win32 API, μπορεί να λειτουργήσει μόνο σε λειτουργίες που είναι διαθέσιμες στον πυρήνα που ξεκινούν με τα προθέματα Ex.., Hal.., Io.., Ke.., Ks.. , Mm.. , Ob.. , Po.. , Ps.. , Rtl.. , Se.. , Zw.. και μερικοί άλλοι.

Τύποι (τύποι) προγραμμάτων οδήγησης Windows

Στη διαδικασία της εξέλιξης και, κατά συνέπεια, της περιπλοκής της ιδέας του οδηγού, οι οδηγοί άρχισαν να χωρίζονται σε κατηγορίες (ή τύπους) ανάλογα με τον σκοπό. Εδώ είναι τα κυριότερα:

  • Οδηγοί τάξης(Πρόγραμμα οδήγησης κατηγορίας) - προγράμματα οδήγησης που αναπτύχθηκαν από τη Microsoft για μια συγκεκριμένη κατηγορία συσκευών.
  • Προγράμματα οδήγησης συστήματος αρχείων(File System Drivers) - προγράμματα οδήγησης που υλοποιούν συστήματα αρχείωνσε διάφορα μέσα.
  • Προγράμματα οδήγησης παλαιού τύπου(Προγράμματα οδήγησης παλαιού τύπου) - "παλαιού τύπου" (συμβατά με δομή με παλαιότερες εκδόσεις λειτουργικού συστήματος) προγράμματα οδήγησης σε λειτουργία πυρήνα που ελέγχουν ανεξάρτητα άμεσα τη εξαρτημένη συσκευή χωρίς πρόσθετα προγράμματα οδήγησης συσκευών. Γιατί έχουν τέτοιο όνομα; Επειδή αυτός είναι ένας τύπος προγράμματος οδήγησης που έχει διατηρηθεί από τις πρώτες εκδόσεις της σειράς λειτουργικών συστημάτων Windows NT.
  • Πρόγραμμα οδήγησης λεωφορείου - Προγράμματα οδήγησης που παρέχουν τη λειτουργικότητα οποιουδήποτε διαύλου υπολογιστή (ISA, PCI, USB, IEEE1394 και άλλα).
  • Προγράμματα οδήγησης φίλτρων(Πρόγραμμα οδήγησης φίλτρου) - προγράμματα οδήγησης που χρησιμοποιούνται για την παρακολούθηση / αλλαγή της λογικής ενός άλλου προγράμματος οδήγησης δουλεύοντας με τα δεδομένα που διέρχονται από αυτό.
    • Κορυφαία προγράμματα οδήγησης φίλτρων(Προγράμματα οδήγησης άνω φίλτρου) - ένας υποτύπος προγραμμάτων οδήγησης φίλτρου που βρίσκονται πάνω από το λειτουργικό πρόγραμμα οδήγησης στη στοίβα. Όλα τα αιτήματα περνούν από τα ανώτερα προγράμματα οδήγησης φίλτρου, πράγμα που σημαίνει ότι μπορούν να αλλάξουν ή/και να φιλτράρουν πληροφορίες που πηγαίνουν στο λειτουργικό πρόγραμμα οδήγησης και στη συνέχεια, ενδεχομένως, στη συσκευή. Παραδείγματα θα ήταν ένα πρόγραμμα οδήγησης φίλτρου που παρακολουθεί/φιλτράρει την κυκλοφορία, κρυπτογραφεί/παραλαμβάνει αιτήματα ανάγνωσης/εγγραφής. Τέτοια προγράμματα οδήγησης χρησιμοποιούνται σε τείχη προστασίας.
    • Προγράμματα οδήγησης κάτω φίλτρου(Προγράμματα οδήγησης χαμηλότερου φίλτρου) - ένας υποτύπος προγραμμάτων οδήγησης φίλτρου, που βρίσκεται κάτω από το λειτουργικό πρόγραμμα οδήγησης στη στοίβα. Κατά κανόνα, λιγότερα αιτήματα περνούν από τέτοια προγράμματα οδήγησης φίλτρου χαμηλότερης ποιότητας από άλλα προγράμματα οδήγησης φίλτρων, επειδή τα περισσότερα αιτήματα εκτελούνται και ολοκληρώνονται από το ίδιο το λειτουργικό πρόγραμμα οδήγησης.
  • Λειτουργικά προγράμματα οδήγησης(Πρόγραμμα οδήγησης λειτουργίας) - προγράμματα οδήγησης που λειτουργούν ανεξάρτητα και καθορίζουν όλες τις πτυχές που σχετίζονται με τη συσκευή.
  • Πρόγραμμα οδήγησης PnP (Πρόγραμμα οδήγησης PnP) - ένα πρόγραμμα οδήγησης που υποστηρίζει την τεχνολογία Plug-and-Play.
  • Minidriver (miniport, miniclass)(Miniport driver, Minidriver, Miniclass driver) - προγράμματα οδήγησης που χειρίζονται εργασίες που σχετίζονται με τη συσκευή-στόχο και χρησιμοποιούν προγράμματα οδήγησης κλάσης για τον έλεγχο της συσκευής. Λειτουργεί ως ένα μέρος ενός ζεύγους προγραμμάτων οδήγησης, στα οποία αυτή η κατηγορία λειτουργεί ως προγράμματα οδήγησης τελικών συσκευών που εκτελούν συγκεκριμένες εργασίες συσκευής.

Σύμφωνα με το επίπεδο συνιστώσας, τα προγράμματα οδήγησης είναι:

  • Η επεξεργασία ενός επιπέδου - I/O υλοποιείται σε μια ενιαία εκτελέσιμη μονάδα (πρόγραμμα οδήγησης).
  • Η επεξεργασία πολλαπλών επιπέδων - I/O κατανέμεται μεταξύ πολλών προγραμμάτων οδήγησης.

Τα προγράμματα οδήγησης PnP στα Windows χωρίζονται σε:

  • Πρόγραμμα οδήγησης λειτουργιών
  • Οδηγός λεωφορείου (οδηγός λεωφορείου)
  • Πρόγραμμα οδήγησης-φίλτρο (φίλτρο-πρόγραμμα οδήγησης)

Σύμφωνα με τη λειτουργία εκτέλεσης, τα προγράμματα οδήγησης των Windows βαθμολογούνται:

  • Πρόγραμμα οδήγησης σε λειτουργία χρήστη.
  • Πρόγραμμα οδήγησης λειτουργίας πυρήνα.

Μοντέλα προγραμμάτων οδήγησης

Καθ' όλη τη διάρκεια της ύπαρξης του λειτουργικού συστήματος, οι προγραμματιστές προσπάθησαν να τυποποιήσουν και να απλοποιήσουν την ανάπτυξη προγραμμάτων οδήγησης. Ως αποτέλεσμα, εμφανίστηκαν μοντέλα.

Μοντέλο WDM

Μια φορά κι έναν καιρό, υπήρχαν δύο κύριες κατευθύνσεις για την ανάπτυξη της ιδέας του προγράμματος οδήγησης των Windows:

  1. Τα Windows 95/98 χρησιμοποιούσαν το μοντέλο VxD (Virtual Device Driver).
  2. Στα Windows NT3.51, το μοντέλο προγράμματος οδήγησης NT (πρόγραμμα οδήγησης τύπου NT, πρόγραμμα οδήγησης NT) αναπτύχθηκε παράλληλα.

Ωστόσο, ξεκινώντας από την έκδοση Windows 98/NT4.0, οι προγραμματιστές έκαναν μια προσπάθεια να ενοποιήσουν (καθολική) την ανάπτυξη των προγραμμάτων οδήγησης, με αποτέλεσμα τα αναφερόμενα μοντέλα να αντικατασταθούν από ένα νέο μοντέλο WDM.

WDM (μοντέλο προγράμματος οδήγησης των Windows, Πρόγραμμα οδήγησης των Windows Model) είναι ένα ενοποιημένο περιβάλλον ανάπτυξης (πλαίσιο) για προγράμματα οδήγησης συσκευών του λειτουργικού συστήματος Windows. Δημιουργήθηκε για να μειώσει τις απαιτήσεις τυποποίησης κώδικα για προγράμματα οδήγησης.

Το μοντέλο WDM ήταν ένα βήμα στον επαναπροσδιορισμό της κλασικής στοίβας προγραμμάτων οδήγησης των Windows για την παροχή υποστήριξης για τις τότε επαναστατικές τεχνολογίες Plug-and-Play και ACPI. Το μοντέλο καθιστά δυνατή τη φόρτωση/ξεφόρτωση προγραμμάτων οδήγησης εν κινήσει, χωρίς την ανάγκη επανεκκίνησης του λειτουργικού συστήματος, την ανάπτυξη προγραμμάτων οδήγησης ως επεκτάσεις (φίλτρα) στο τυπικό προγράμματα οδήγησης συστήματος, διαχειριστείτε την εξοικονόμηση ενέργειας και τη διαμόρφωση της συσκευής πιο ευέλικτα και ούτω καθεξής.
Στο πλαίσιο του μοντέλου WDM, οποιαδήποτε συσκευή υλικούυποστηρίζεται από τουλάχιστον δύο προγράμματα οδήγησης:

  • Πρόγραμμα οδήγησης λειτουργιών (Πρόγραμμα οδήγησης λειτουργιών) - υπεύθυνο για σχεδόν όλα τα λειτουργικά χαρακτηριστικά της εξυπηρετούμενης συσκευής: λειτουργίες I/O, χειρισμός διακοπών και έλεγχος συσκευής.
  • Οδηγός λεωφορείου - υπεύθυνος για τη διατήρηση της σύνδεσης μεταξύ της συσκευής και του υπολογιστή, στην πραγματικότητα, για την υποστήριξη του διαύλου επικοινωνίας (για παράδειγμα, PCI, USB κ.λπ.).

Μοντέλο WDF

Καθ' όλη τη διάρκεια της ανάπτυξης, το μοντέλο WDM έχει υποστεί πολλές αλλαγές, αυξάνοντας σημαντικά. Ξεκινώντας με τα Windows Vista, έγινε μια άλλη προσπάθεια ανάπτυξης της ιδέας του προγράμματος οδήγησης των Windows, ουσιαστικά του μοντέλου WDM που υπήρχε ήδη εκείνη την εποχή, με αποτέλεσμα ένα νέο μοντέλο (πρόσθετο στο WDM) που ονομάζεται WDF.

Το WDF (Windows Driver Foundation, Windows Driver Foundation) είναι ένα περιβάλλον ανάπτυξης (ένα σύνολο εργαλείων) που διευκολύνει την ανάπτυξη προγραμμάτων οδήγησης συσκευών για λειτουργικά συστήματα Windows (Windows 2000 και νεότερα).

Αυτό οφειλόταν στο αδιαμφισβήτητο γεγονός ότι οι προγραμματιστές απέτυχαν να επιτύχουν επαρκές επίπεδο αφαίρεσης του μοντέλου WDM, δηλαδή, ανεπαρκή ενσωμάτωση του υποσυστήματος I / O με την τεχνολογία Plug-and-Play και διαχείριση ενέργειας. Αυτό άφησε τον προγραμματιστή του προγράμματος οδήγησης με ένα τεράστιο βάρος συγχρονισμού αυτών των ίδιων αιτημάτων εισόδου/εξόδου με συμβάντα Plug-and-Play και αιτήματα ενέργειας. Προφανώς, απαιτούνταν περαιτέρω απλοποίηση του μοντέλου οδηγού. Το WDF έχει αντικαταστήσει το WDM και θεωρείται το πιο σύγχρονο μοντέλο.
Το WDF υλοποιεί τα ακόλουθα χαρακτηριστικά:

  1. "Κατάργηση" ορισμένων κατηγοριών προγραμμάτων οδήγησης που δεν είναι κρίσιμες για τη λειτουργία εκτέλεσης στη λειτουργία χρήστη, γεγονός που μείωσε τον συνολικό αριθμό σφαλμάτων στον πυρήνα.
  2. Μεγάλο μέρος του χειρισμού της αλληλεπίδρασης του υποσυστήματος I/O με το Plug-and-Play και τη διαχείριση ενέργειας γίνεται πλέον από τους ενσωματωμένους μηχανισμούς του μοντέλου WDF.
  3. Παροχή νέων εσωτερικών διεπαφών στο μοντέλο WDF που επιτρέπουν την αφαίρεση από πιο δυσνόητες διεπαφές συστήματος. Στο μοντέλο WDM / παλαιού τύπου, είναι αρκετά δύσκολο να εφαρμόσετε τη λογική ορισμένων τμημάτων αλληλεπίδρασης με το πρόγραμμα οδήγησης χωρίς να μάθετε όλα τα βασικά της περίπλοκης αρχιτεκτονικής του πυρήνα, ενώ το WDF σας επιτρέπει να αυτοματοποιήσετε πολλούς τύπους αλληλεπίδρασης. Ένας μεγάλος όγκος κώδικα κατά την ανάπτυξη ενός προγράμματος οδήγησης WDM μπορεί πλέον να αντικατασταθεί από κλήσεις διαδικασίας WDF.
  4. Δυνατότητα δημιουργίας «κανονικού» προγράμματος οδήγησης. Η παρουσία προτύπων που παρέχουν σε έναν τρίτο προγραμματιστή τη δυνατότητα να παρακάμπτει κριτήρια μοναδικά για το πρόγραμμα οδήγησης του, μειώνοντας έτσι τον χρόνο ανάπτυξης.

Το μοντέλο WDF χωρίζεται σε δύο τομείς:

  • Το UMDF (Kernel-Mode Driver Framework) είναι ένα περιβάλλον ανάπτυξης προγραμμάτων οδήγησης σε λειτουργία πυρήνα.
  • Το KMDF (User-Mode Driver Framework) είναι ένα περιβάλλον ανάπτυξης προγραμμάτων οδήγησης σε λειτουργία χρήστη.

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



Φόρτωση...
Μπλουζα