क्यों विभिन्न प्रक्रियाओं System32 फ़ोल्डर के विभिन्न उदाहरणों को देखते हैं?


10

मैं विंडोज 8 एंटरप्राइज x64 चला रहा हूं। मैंने व्यवस्थापक समूह से एक खाते का उपयोग करके लॉग ऑन किया। जब मैं विंडोज एक्सप्लोरर या कमांड प्रॉम्प्ट खोलता हूं, तो मैं फाइल देख सकता हूं cdd.dll:

विन्डोज़ एक्सप्लोरर


C:\Windows\system32>dir cdd.dll
 Volume in drive C has no label.
 Volume Serial Number is ▨▨▨▨-▨▨▨▨

 Directory of C:\Windows\system32

07/25/2012  09:49 PM           199,680 cdd.dll

लेकिन अगर मैं क्रोम ब्राउज़र, विज़ुअल स्टूडियो या कुछ अन्य एप्लिकेशन (वे सभी 32-बिट ऐप्स हैं) से एक ओपन फ़ाइल संवाद खोलते हैं और C:\Windows\system32तब नेविगेट करते हैं तो ऐसी कोई फ़ाइल नहीं है (फ़िल्टर सभी फ़ाइलों को दिखाने के लिए सेट है)। और अगर मैं "ओपन कमांड विंडो यहाँ इनवॉइस करता हूं" संदर्भ मेनू आइटम ओपन फाइल डायलॉग में Shift + RightClick का उपयोग dirकरता है और यह पुष्टि करता है कि ऐसी कोई फ़ाइल नहीं है:

फ़ाइल संवाद खोलें


C:\Windows\System32>dir cdd.dll
 Volume in drive C has no label.
 Volume Serial Number is ▨▨▨▨-▨▨▨▨

 Directory of C:\Windows\System32

File Not Found

यह प्रभाव विशिष्ट नहीं है cdd.dll, कई अन्य फाइलें भी भिन्न हैं। मुझे बताया गया है कि यह फाइल सिस्टम वर्चुअलाइजेशन का एक प्रभाव है , जिसके बारे में मुझे बहुत कम जानकारी है।

क्या आप कृपया मुझे समझा सकते हैं या एक संदर्भ दे सकते हैं जो बताता है कि यह वास्तव में कैसे काम करता है? क्या वास्तव में System32फ़ोल्डर के कई अलग-अलग उदाहरण हैं । डिस्क पर उनका भौतिक स्थान क्या है? क्या System32डिफ़ॉल्ट रूप से 32-बिट प्रक्रियाओं को दिखाए गए एक से अधिक फ़ोल्डर में 32-बिट प्रक्रिया फ़ाइलों से एक्सेस करना संभव है ।


क्या वे किसी भी x64 ऐप में दिखाई देते हैं? मेरे पास एक कूबड़ है जो 32-बिट ऐप्स से विंडोज "छुपाता है" 64-बिट ड्राइवर (cdd.dll एक डिस्प्ले ड्राइवर है)।
नाथन सी

हां, सभी 64-बिट ऐप्स जो फ़ाइल सिस्टम (जैसे एक ओपन फ़ाइल डायलॉग) को ब्राउज़ करने की अनुमति देते हैं, वही फ़ाइलें विंडोज एक्सप्लोरर के रूप में दिखाई देती हैं।
व्लादिमीर रेशेतनिकोव

@VladimirReshetnikov क्या आप अभी भी समझ में नहीं आ रहा है, आपने अपने प्रश्न को संपादित किया है, लेकिन किसी भी अधिक विवरण को शामिल नहीं किया है, आपने किसी भी उत्तर को स्वीकार नहीं किया है। क्या आपको कुछ और स्पष्ट करने की आवश्यकता है?
स्कॉट चेम्बरलेन

@ScottChamberlain मैंने केवल टैग संपादित किए हैं। आप का जवाब बहुत अच्छा है। धन्यवाद!
व्लादिमीर रेशेतनिकोव

जवाबों:


11

समस्या फ़ोल्डर पुनर्निर्देशन है , यदि 32 बिट प्रोग्राम %windir%\System32फ़ोल्डर तक पहुंचने का प्रयास करता है, तो इसे अदृश्य रूप से निर्देशिका में पुनर्निर्देशित किया जाएगा %windir%\SysWOW64, यह 32/64 बिट अनुप्रयोग संगतता के लिए है।

System32 की सभी फाइलें 64 बिट की हैं, हालांकि अगर कोई प्रोग्राम गलत लिखा गया था, तो DLL की तलाश में वे अपने प्रोग्राम में System32 को हार्डकोड कर सकते हैं। यादृच्छिक प्रोग्राम क्रैश को गलत तरीके से लिखे गए प्रोग्राम से रोकने के लिए Microsoft ऐसा रीडायरेक्ट करता है।

यदि आपको System32 फ़ोल्डर का उपयोग करने की आवश्यकता है, न कि SysWOW64 फ़ोल्डर को "छिपे हुए" फ़ोल्डर में नेविगेट करें %windir%\sysnativeजो आपको "वास्तविक" System32फ़ोल्डर में ले जाएगा और आप सामान्य की तरह फ़ोल्डर ब्राउज़ कर सकते हैं।


%windir%एक पर्यावरण चर है, आप इसे खिड़कियों की तरह ही टाइप कर सकते हैं और यह काम करेगा, 99% उस समय का प्रतिनिधित्व करता हैC:\Windows
स्कॉट चैम्बरलेन

4

WOW64 (विंडोज 64 बिट पर विंडोज) 32 बिट अनुप्रयोगों का समर्थन करने के लिए विभिन्न तकनीकों / तकनीकों का उपयोग करता है। उनमें से फ़ोल्डर और रजिस्ट्री पुनर्निर्देशक हैं।

विंडोज देव केंद्र: डेस्कटॉप चल रहा है 32-बिट अनुप्रयोग


और अधिक विशेष रूप से, अनुप्रयोग संगतता प्रोफाइल पर जानकारी जो कि इस जादू को बनाती है।
डेविड होल्ज़र
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.