ΠΛΗΡΟΦΟΡΙΕΣ: τα Windows NT/2000/XP χρησιμοποιεί την καταχώρηση μητρώου KnownDLLs για να βρείτε αρχεία dll

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 164501 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
ΣΗΜΑΝΤΙΚΌ: Αυτό το άρθρο περιέχει πληροφορίες σχετικά με την τροποποίηση του μητρώου. Πριν να τροποποιήσετε το μητρώο, βεβαιωθείτε ότι για να δημιουργήσετε αντίγραφα ασφαλείας και να βεβαιωθείτε ότι γνωρίζετε τον τρόπο επαναφοράς του μητρώου εάν προκύψει κάποιο πρόβλημα. Για πληροφορίες σχετικά με τον τρόπο δημιουργίας αντιγράφων ασφαλείας, επαναφοράς και επεξεργασίας του μητρώου, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
256986 Περιγραφή του μητρώου των Microsoft Windows
Ανάπτυξη όλων | Σύμπτυξη όλων

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

Περίληψη

Τα Microsoft Windows NT, Windows 2000 και Windows XP χρησιμοποιεί τις καταχωρήσεις μητρώου KnownDLLs για να αναζητήσετε αρχεία DLL 32-bit ή 16 bit κατά τη φόρτωση του DLL. Για αρχεία DLL 32-bit του KnownDLLs καταχώρηση μητρώου επηρεάζει μόνο την αναζήτηση για σιωπηρά φορτωμένα dll. DLL 16-bit του KnownDLLs καταχώρηση μητρώου επηρεάζει την αναζήτηση για δύο σιωπηρά και ρητά φορτωμένα dll. Εάν συμπεριλάβετε ένα όνομα αρχείου DLL εσφαλμένα στην καταχώρηση μητρώου KnownDLLs, LoadLibrary στα Windows NT/2000/XP WOW αποτύχει η φόρτωση ενός αρχείου DLL βρίσκεται στον τρέχοντα κατάλογο της εφαρμογής.

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

Τα Windows NT/2000/XP χρησιμοποιεί την καταχώρηση μητρώου KnownDLLs για να καθορίσετε που θα χρησιμοποιήσει το DLL μια εφαρμογή. Υπάρχουν δύο διαφορετικές καταχωρήσεις μητρώου KnownDLLs: ένα που επηρεάζει τη φόρτωση του DLL 32-bit και ένα που επηρεάζει τη φόρτωση του DLL 16-bit. Είναι ένα αρχείο DLL που αναφέρονται στην καταχώρηση μητρώου KnownDLLs Ορισμένες φορές αναφέρεται ως "KnownDLL" σε αυτό το άρθρο.

DLL: 16-bit

Για αρχεία DLL 16-bit, η τιμή μητρώου KnownDLLs βρίσκεται στις ακόλουθες κλειδί:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW
				
Η τιμή μητρώου KnownDLLs είναι μια συμβολοσειρά REG_SZ με ονόματα 8.3 DLL μορφή, διαχωρισμένη με διάστημα. Η τιμή KnownDLLs επηρεάζει τόσο σιωπηρά και ρητά φορτωμένα dll.

Η τιμή μητρώου KnownDLLs, χωρίς να χρησιμοποιεί τις ακόλουθες WOW Windows NT σειρά αναζήτησης για να εντοπίσετε το αρχείο DLL:
  1. Ο τρέχων κατάλογος εργασίας που χρησιμοποιεί το αρχείο DLL.
  2. Κατάλογος \WINNT.
  3. Κατάλογος \WINNT\SYSTEM.
  4. Στον κατάλογο \WINNT\SYSTEM32.
  5. Ο κατάλογος του εκτελέσιμου αρχείου για την εργασία που χρησιμοποιεί το αρχείο DLL.
  6. Ένας κατάλογος που παρατίθενται στη μεταβλητή περιβάλλοντος PATH.
Με την τιμή μητρώου KnownDLLs, Windows NT WOW διερευνήσει μόνο το Κατάλογο \Winnt\System32, για να εντοπίσετε το αρχείο DLL. Εάν KnownDLLs περιλαμβάνει ένα εγγραφή για ένα αρχείο DLL που δεν βρίσκεται στον κατάλογο \WINNT\SYSTEM32 LoadLibrary αποτύχει η φόρτωση του DLL, ακόμη και αν το αρχείο DLL βρίσκεται σε οποιαδήποτε από 5 άλλες θέσεις παραπάνω.

Εάν τα Windows NT/2000/XP WOW αποτύχει να εντοπίσει το αρχείο DLL, LoadLibrary επιστρέφει κωδικό σφάλματος 2 (το αρχείο δεν βρέθηκε) ή εν δυνάμει σύνδεση προκαλεί τον γονικό λειτουργική μονάδα αποτυχία φόρτωσης.

Για πληροφορίες σχετικά με τα Windows 95, καταχωρεί DLL 16-Bit ως KnownDLLs ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:
141969Τα Windows 95 χρησιμοποιεί Known16DLLs κλειδί μητρώου για να βρείτε 16-bit DLL

DLL: 32-bit

DLL 32-bit του κλειδιού μητρώου KnownDLLs βρέθηκε στο:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
Το όνομα τιμής μητρώου REG_SZ είναι το όνομα του αρχείου DLL χωρίς την επέκταση. Τα δεδομένα τιμής μητρώου είναι το όνομα του αρχείου DLL με το επέκταση. Η καταχώρηση αυτή επηρεάζει μόνο έμμεσα φόρτωση αρχείων dll, δεν τα DLL που φορτώνεται χρήση του API LoadLibrary().

Χωρίς αυτή την εγγραφή, τα Windows NT χρησιμοποιούν την ακόλουθη σειρά αναζήτησης για Εντοπίστε το αρχείο DLL:
  1. Ο κατάλογος του εκτελέσιμου αρχείου για τη διαδικασία που φορτώνεται το DLL.
  2. Στον τρέχοντα κατάλογο της διαδικασίας που φορτώνεται το DLL.
  3. Στον κατάλογο \WINNT\SYSTEM32.
  4. Κατάλογος \WINNT.
  5. Ένας κατάλογος που παρατίθενται στη μεταβλητή περιβάλλοντος path.
Με την καταχώρηση μητρώου KnownDLLs, τα Windows NT χρησιμοποιούν παρακάτω αναζήτησης Για να εντοπίσετε το αρχείο DLL:
  1. Στον κατάλογο \WINNT\SYSTEM32.
  2. Ο κατάλογος του εκτελέσιμου αρχείου για τη διαδικασία που φορτώνεται το DLL.
  3. Στον τρέχοντα κατάλογο της διαδικασίας που φορτώνεται το DLL.
  4. Κατάλογος \WINNT.
  5. Ένας κατάλογος που παρατίθενται στη μεταβλητή περιβάλλοντος PATH.
Εάν το αρχείο DLL δεν βρίσκεται σε οποιαδήποτε από τις θέσεις που αναφέρονται παραπάνω, το έμμεση σύνδεση προκαλεί τη λειτουργική μονάδα γονικό αποτυχία φόρτωσης.

Ένα DLL αντιμετωπίζεται ως ένα KnownDLL εάν ένα KnownDLL συνδέει σιωπηρά σε αυτό. Για παράδειγμα ΚΎΡΙΑΣ.DLL χρησιμοποιεί λειτουργίες από το ΠΑΙΔΊ.DLL. Εάν MAIN.Αναφέρεται στο αρχείο DLL το κλειδί μητρώου KnownDLLs, στη συνέχεια, τα Windows NT επίσης αντιμετωπίζει ΠΑΙΔΊ.DLL ως ένα KnownDLL. Μια άλλη εφαρμογή ή DLL που χρησιμοποιεί το ΠΑΙΔΊ.DLL θα χρησιμοποιήσει το αρχείο DLL που ήταν συνδεδεμένα με ΚΎΡΙΟ.DLL.

Τα Windows NT χάρτες KnownDLLs 32-bit κατά το χρόνο εκκίνησης. Μετονομασία ή μετακίνηση του αρχείου DLL δεν έχει κανένα αποτέλεσμα στο οποίο θα φορτωθεί DLL μια εφαρμογή- το ακόμα χρησιμοποιεί εκείνη που είχε \WINNT\SYSTEM32 κατά το χρόνο εκκίνησης.

Για να αλλάξετε τον τρόπο τα Windows NT φορτώνει KnownDLLs, χρησιμοποιήστε το ExcludeFromKnownDlls βρίσκεται στην τιμή μητρώου:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
ΣΗΜΕΊΩΣΗ: Χρησιμοποιήστε RegEdt32 αντί του RegEdit να τροποποιήσετε αυτήν την τιμή μητρώου.

Αυτή η τιμή μητρώου REG_MULTI_SZ περιέχει ονόματα 8.3 του DLL μορφοποίηση ένα DLL ανά συμβολοσειρά. Εάν ένα αρχείο DLL παρατίθεται στο ExcludeFromKnownDlls, στη συνέχεια, τα Windows NT δεν αντιμετωπίζουν το DLL ως μια KnownDLL, ακόμη και αν αναφέρεται στο του Το κλειδί μητρώου KnownDLLs. Αυτό είναι χρήσιμο όταν αναπτύσσετε ένα αρχείο DLL που χρησιμοποιείται από πολλά άλλα KnownDLLs και αυτό είναι σημαντικό να αντικατάσταση και νέα δοκιμή δημιουργεί χωρίς επανεκκίνηση των Windows NT.

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

Για πληροφορίες σχετικά με τα Windows 95, καταχωρεί DLL 32-Bit ως KnownDLLs ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:
151646Τα Windows 95 χρησιμοποιεί KnownDLLs κλειδί μητρώου για την εύρεση των DLL 32-bit
ΠΡΟΕΙΔΟΠΟΊΗΣΗ: Η εσφαλμένη χρήση του Επεξεργαστή μητρώου μπορεί να προκαλέσει σοβαρά προβλήματα που Ίσως χρειαστεί να επανεγκαταστήσετε το λειτουργικό σας σύστημα. Δεν είναι δυνατή Microsoft εγγύηση ότι τα προβλήματα που προκύπτουν από την εσφαλμένη χρήση του Επεξεργαστή μητρώου είναι δυνατό να επιλυθούν. Χρησιμοποιήστε τον Επεξεργαστή μητρώου με δική σας ευθύνη.

Για πληροφορίες σχετικά με τον τρόπο επεξεργασίας του μητρώου, προβάλετε την "Αλλαγή κλειδιών και Τιμές"το θέμα της Βοήθειας του Επεξεργαστή μητρώου (Regedit.exe) ή"Προσθήκη και διαγραφή Πληροφορίες στο μητρώο"και"Επεξεργασία δεδομένων μητρώου"θέματα στη Βοήθεια Το Regedt32.exe. Σημειώστε ότι θα πρέπει αντίγραφα του μητρώου πριν να το επεξεργαστείτε. Εάν εκτελείτε Windows NT, θα πρέπει επίσης να ενημερώσετε σας έκτακτης ανάγκης Δισκέτα επιδιόρθωσης (ERD).

Ιδιότητες

Αναγν. άρθρου: 164501 - Τελευταία αναθεώρηση: Πέμπτη, 26 Μαΐου 2011 - Αναθεώρηση: 3.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Win32 Application Programming Interface
Λέξεις-κλειδιά: 
kbdll kbinfo kbkernbase kbregistry kbmt KB164501 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:164501

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com