Αναγν. άρθρου: 115486 - Τελευταία αναθεώρηση: Πέμπτη, 26 Μαΐου 2011 - Αναθεώρηση: 4.0

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

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

Σε αυτήν τη σελίδα

Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

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

Περισσότερες πληροφορίες

Υπάρχουν δύο μέθοδοι που μπορείτε να χρησιμοποιήσετε για να ελέγχετε τη σειρά με την οποία συσκευή φόρτωση προγραμμάτων οδήγησης. Και οι δύο μέθοδοι εκμεταλλευτείτε καταχωρήσεις στο μητρώο που Μπορείτε να βρείτε σε \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control. Το πρώτη μέθοδος είναι να τροποποιήσετε το ServiceGroupOrder. Η δεύτερη μέθοδος είναι να αντιστοιχίσετε Tag τιμές που καθορίζουν τη σειρά φόρτωσης σύμφωνα με το GroupOrderList του προγράμματος οδήγησης. Τύπος εκκίνησης τιμών tag και ονόματα ομάδων σε HKLM\SYSTEM\CurrentControlSet\Services\<drivername> κλειδί το οποίο πρέπει να προστεθεί πριν τις τιμές μπορούν να παρατίθενται στη λίστα ομάδας σειράς. </drivername>

Οι δύο αυτές μέθοδοι λειτουργούν μόνο για προγράμματα οδήγησης συσκευών που έχουν τιμή έναρξης 0 (SERVICE_BOOT_START) ή 1 (SERVICE_SYSTEM_START). Σε όλες τις περιπτώσεις συσκευής τα προγράμματα οδήγησης με τιμή 0 φορτίο πριν από οποιαδήποτε προγράμματα οδήγησης συσκευών με εκκίνηση έναρξη η τιμή 1 προσπάθεια να φορτωθεί.

Μέθοδος 1: ServiceGroupOrder

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

Το miniport SCSI
Θύρα
Πρωτεύων δίσκος
Κλάση SCSI
Κλάση SCSI CDROM
φίλτρο
σύστημα αρχείων εκκίνησης
Βάσης
Δείκτης θύρας
Θύρα πληκτρολογίου
Κλάση δείκτη
Κλάση πληκτρολογίου
Προετοιμασία βίντεο
Βίντεο
Αποθήκευση βίντεο
Σύστημα αρχείων
Αρχείο καταγραφής συμβάντων
Ροές προγραμμάτων οδήγησης
NDIS
TDI
NetBIOSGroup
SpoolerGroup
Σύμφωνα με το ServiceGroupOrder, προγράμματα οδήγησης συσκευών στην ομάδα "SCSI Κλάση"Φόρτωση μετά από όλα τα προγράμματα οδήγησης συσκευών με την ομάδα"κύριος δίσκος"και πριν από φόρτωση προγραμμάτων οδήγησης συσκευών στην ομάδα "SCSI CDROM κλάση". Η υψηλότερη μια συσκευή η ομάδα του προγράμματος οδήγησης είναι στη λίστα, τόσο συντομότερα φορτώνει. Το ServiceGroupOrder λίστα σάρωση δύο φορές. Πρώτο, όλα τα προγράμματα οδήγησης συσκευών με τιμή 0 Έναρξη φόρτωση. στη συνέχεια, όλα προγράμματα οδήγησης συσκευών με τιμή 1 φόρτωση Έναρξη. Έτσι, μια συσκευή πρόγραμμα οδήγησης με τιμή 0 φορτία πριν από οποιοδήποτε πρόγραμμα οδήγησης συσκευής με εκκίνηση έναρξη η τιμή 1, ανεξάρτητα από ποια θέση στη λίστα ServiceGroupOrder.

Είναι πιθανό ο συντάκτης του προγράμματος οδήγησης συσκευής για να επεξεργαστείτε το ServiceGroupOrder. Κάνοντας αυτό, μπορεί να δημιουργηθεί μια νέα ομάδα σε οποιοδήποτε μέρος της λίστας. Μια καλή παράδειγμα μπορεί να είναι ένα πρόγραμμα οδήγησης συσκευής του SCSI κλάσης, που ονομάζεται "SAMPLDRV" να χρειάζεται να φόρτωση πριν από την "scsidisk", επειδή το SCSIDISK διεκδίκηση μιας συσκευής που SAMPLDRV πρέπει να διεκδικήσουν. Καταχωρήσεις μητρώου του SCSIDISK είναι οι εξής:
       \registry\machine\system\currentcontrolset\services\scsidisk
          Type = REG_DWORD 0x00000001
          Start = REG_DWORD 0x00000000
          Group = SCSI class
          ErrorControl = REG_DWORD 0x00000000
          DependOnGroup = REG_MULTI_SZ "SCSI miniport"
				

Μπορεί να προστεθεί μια νέα ομάδα ServiceGroupOrder που ονομάζεται "Φόρτωση Me Πρώτο "και SAMPLDRV μπορεί να έχει την ομάδα οριστεί φορτίο Me πρώτα. Εδώ είναι τροποποιημένο ServiceGroupOrder:

Το miniport SCSI
Θύρα
Πρωτεύων δίσκος
Φόρτωση πρώτα μου
Κλάση SCSI
Κλάση SCSI CDROM
φίλτρο
σύστημα αρχείων εκκίνησης
.
.
.
Καταχωρήσεις μητρώου του SAMPLDRV είναι οι εξής:
       \registry\machine\system\currentcontrolset\services\sampldrv
          Type = REG_DWORD 0x00000001
          Start = REG_DWORD 0x00000000
          Group = Load Me First
          ErrorControl = REG_DWORD 0x00000000
          DependOnGroup = REG_MULTI_SZ "SCSI miniport"
				

Με αυτήν τη ρύθμιση, φορτώνει SAMPLDRV πριν από την SCSIDISK.

Μέθοδος # 2: GroupOrderList και τιμών Tag

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

Ακολουθεί μια μερική εξόδου του GroupOrderList:
      \registry\machine\system\currentcontrolset\control\grouporderlist
          Base = REG_BINARY 0d 00 00 00 01 00...
          Extended base = REG_BINARY 04 00 00 00 01 00...
          Filter = REG_BINARY 05 00 00 00 01 00...
          Keyboard Class = REG_BINARY 01 00 00 00 01 00...
          Keyboard Port = REG_BINARY 01 00 00 00 01 00...
          Ndis = REG_BINARY 09 00 00 00 01 00...
          Pointer Class = REG_BINARY 01 00 00 00 01 00...
          Pointer Port = REG_BINARY 03 00 00 00 01 00...
          .
          .
          .
				

ΣΗΜΕΊΩΣΗ: Δεν υπάρχει τιμή για την κλάση SCSI. Δεν κάθε ομάδα αντιπροσωπεύεται στο GroupOrderList. Όταν μια ομάδα δεν είναι σε GroupOrderList, τη σειρά με την δεν είναι δυνατή η εγγύηση ποια προγράμματα οδήγησης συσκευών φορτώνονται μέσα στην ομάδα.

Όπως και με ServiceGroupOrder, μπορεί να τροποποιηθεί το GroupOrderList. Χρήση το ίδιο παράδειγμα ως ανωτέρω Tag καταχωρήσεις για SCSI κλάσης μπορεί να προστεθεί:
      \registry\machine\system\currentcontrolset\control\grouporderlist
          SCSI class = REG_BINARY 02 00 00 00 02 00 00 00 01 00 00 00
          Base = REG_BINARY 0d 00 00 00 01 00...
          Extended base = REG_BINARY 04 00 00 00 01 00...
          .
          .
          .
				

Στο παράδειγμα αυτό, η κλάση SCSI ομάδα αναγνωρίζει δύο τιμών Tag 00000001 και 00000002. Η σειρά στην οποία φόρτωση τιμών Tag είναι 00000002 πρώτα, ακολουθείται από 00000001. Εάν η ομάδα κλάσης SCSI, η οποία είναι SAMPLDRV ίδιο με SCSIDISK είτε τιμή ετικέτας εγγυάται ότι φορτώνει SAMPLDRV πριν SCSIDISK επειδή το SCSIDISK δεν έχει ετικέτα τιμή και μη με tag προγράμματα οδήγησης φορτώνονται τελευταία σε μια ομάδα.

Εάν για κάποιο λόγο SCSIDISK έχει αντιστοιχιστεί μια ετικέτα τιμή 0x00000001, SAMPLDRV φορτώνει πριν να SCSIDISK όταν SAMPLDRV εκχωρείται μια τιμή ετικέτας του 00000002:
       \registry\machine\system\currentcontrolset\services\sampldrv
          Type = REG_DWORD 0x00000001
          Start = REG_DWORD 0x00000000
          Group = SCSI class
          ErrorControl = REG_DWORD 0x00000000
          DependOnGroup = REG_MULTI_SZ "SCSI miniport"
          Tag = REG_DWORD 0x00000002
				

Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Win32 Device Driver Kit για Windows ΝΤ 4.0
Λέξεις-κλειδιά: 
kbhowto kbmt KB115486 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:115486  (http://support.microsoft.com/kb/115486/en-us/ )