64-बिट्स के विंडोज 7 के रिलीज के साथ, विंडोज डायरेक्टरी में फोल्डर के सामान्य आवंटन में थोड़ा बदलाव किया गया था। Windows 10, Windows 8 और Windows 70 के 64-बिट संस्करण में दो नए फ़ोल्डर शामिल किए गए हैं। वे Sysnative हैं और SysWOW64 फ़ोल्डर्स यह केवल 64-बिट विंडोज़ में है। यदि आप 64-बिट मशीन पर 32-बिट विंडोज चलाते हैं, तो आप उन्हें नहीं देख पाएंगे। 32-बिट मशीन पर 32-बिट विंडोज़ चलाते समय न तो आप उन्हें देखेंगे।
विंडोज डायरेक्टरी के बाहर एक और फोल्डर है, और इसे प्रोग्राम फाइल्स (x86) . कहा जाता है . हम फ़ोल्डर प्रोग्राम फाइल्स के नाम के अभ्यस्त हैं, जिसमें हमारे प्रोग्राम के निष्पादन योग्य होते हैं। 64-बिट सिस्टम में, 64-बिट प्रोग्राम प्रोग्राम फाइल्स फोल्डर में स्टोर होते हैं जबकि 32-बिट प्रोग्राम प्रोग्राम फाइल्स (x86) में रखे जाते हैं। हालाँकि, विंडोज़ 64-बिट मशीन पर 32-बिट प्रोग्राम चलाने के लिए इम्यूलेशन जैसी किसी चीज़ का उपयोग करता है। और इसलिए, विंडोज (64 बिट) के तहत सिस्टम फोल्डर क्या हैं, यह जानने और समझने की जरूरत है ताकि आप जान सकें कि अपनी इच्छित फाइल तक कैसे पहुंचा जाए।
32-बिट मशीनों के विपरीत, जहां 32-बिट DLL को System32 फ़ोल्डर . में संग्रहीत किया जाता है , विंडोज़ का 64-बिट संस्करण सिस्टम 32 फ़ोल्डर में 64-बिट्स से संबंधित डीएलएल को स्टोर करता है। यह प्रोग्रामिंग उद्देश्यों को आसान बनाने और पिछड़ी संगतता प्रदान करने के लिए है। यानी, यदि 64-बिट प्रोग्राम अपने कोड में System32 को संदर्भित करता है, तो कॉल करने पर उसे 64-बिट DLL स्वचालित रूप से मिल जाएगा। इससे डेवलपर्स को मदद मिलती है क्योंकि उन्हें विंडोज 64-बिट के लिए अपने प्रोग्राम में कोड बदलने की जरूरत नहीं होती है।
संक्षेप में, विंडोज़ ने सभी 32-बिट डीएलएल को विंडोज़ निर्देशिका में सिस्टम 32 फ़ोल्डर से किसी अन्य फ़ोल्डर में स्थानांतरित कर दिया ताकि पिछले कार्यक्रमों को एपीआई का उपयोग करते समय भी उचित डीएलएल प्राप्त करने के लिए रीकोड करने की आवश्यकता न हो - 64-बिट में अपग्रेड करने के बाद। समस्या तब होती है जब 32-बिट अनुप्रयोग System32 फ़ोल्डर तक पहुँचने का प्रयास करता है। इस मामले में, प्रोग्राम क्रैश हो जाएगा क्योंकि यह 64-बिट डीएलएल को संभालने के लिए नहीं लिखा गया है।
पढ़ें :पैंथर फ़ोल्डर क्या है?
Windows 64-बिट में SysWOW64 फ़ोल्डर
सभी 32-बिट DLL को नए SysWOW64 फ़ोल्डर . में स्थानांतरित कर दिया गया है विंडोज 10, विंडोज 8 और विंडोज 7 के 64-बिट संस्करण में, इसलिए जब 32-बिट प्रोग्राम 32-बिट डीएलएल पर कॉल करते हैं, तो उन्हें SysWOW64 फ़ोल्डर तक पहुंचना होगा।
आप महसूस कर सकते हैं कि डेवलपर्स को अपने प्रोग्राम और एप्लिकेशन को स्कैन करना होगा ताकि डीएलएल फ़ंक्शन को SysWOW64 फ़ोल्डर में इंगित किया जा सके। लेकिन माइक्रोसॉफ्ट ने पहले ही इसका ख्याल रखा है। अगर यह एक 32-बिट प्रोग्राम है जो C:\Windows\System32 . को कॉल कर रहा है , एक एमुलेटर पथ को C:\Windows\SysWOW64 . पर पुनर्निर्देशित करेगा . अर्थात्, विंडोज़ 64-बिट में 32-बिट प्रोग्राम चलाने के लिए, एक एमुलेटर का उपयोग किया जाता है, ताकि उचित पश्चगामी संगतता हो और DLL फ़ाइलों को कॉल करते समय त्रुटियों से बचा जा सके।
पढ़ें :FOUND.000 फ़ोल्डर क्या है?
Windows 64-बिट में Sysnative Folder
ऐसे मामले हो सकते हैं जहां 32-बिट प्रोग्राम या एप्लिकेशन को 64-बिट डीएलएल की आवश्यकता हो सकती है। उस स्थिति में, आपको पुनर्निर्देशन फ़ोल्डर का उपयोग करना होगा Sysnative . आप SysNative को एक वर्चुअल फ़ोल्डर और एक अन्य उपनाम मान सकते हैं जो System32 फ़ोल्डर की ओर इशारा करता है। यह आपके सिस्टम पर भौतिक रूप से मौजूद नहीं है, जैसे कि।
इसलिए यदि आपके 32-बिट प्रोग्राम को 64-बिट डीएलएल तक पहुंचने की आवश्यकता है, तो C:\Windows\System32 का उपयोग न करें। क्योंकि 32-बिट प्रोग्राम एमुलेटर इसे 32-बिट DLL फ़ोल्डर में ले जाएगा जिसे SysWOW64 कहा जाता है। इसके बजाय, C:\Windows\SysNative . का उपयोग करें डीएलएल कार्यक्रम के पथ के रूप में। पथ में Sysnative का उपयोग करने से यह SysWOW64 फ़ोल्डर के बजाय System32 फ़ोल्डर में पुनर्निर्देशित हो जाएगा।
यदि आप फ़ाइल Windows Explorer खोलते हैं, तो आपको C:\Windows में Sysnative फ़ोल्डर नहीं मिलेगा। भले ही आप छिपे हुए और सिस्टम फ़ोल्डरों को दिखाने के लिए फ़ोल्डर विकल्प सेट करते हैं। ऐसा इसलिए है, क्योंकि 64-बिट विंडोज़ में चलते समय विंडोज फाइल एक्सप्लोरर एक 64-बिट प्रोग्राम है, और सिसनेटिव फोल्डर केवल 32-बिट प्रोग्राम से ही दिखाई और एक्सेस किया जा सकता है।
संक्षेप में:
- System32 फ़ोल्डर में 64-बिट DLL फ़ाइलें होती हैं।
- SysWOW64 में 32-बिट DLL फ़ाइलें हैं, और 32-बिट प्रोग्राम इस फ़ोल्डर में स्वतः रीडायरेक्ट हो जाते हैं
- Sysnative एक पुनर्निर्देशन फ़ोल्डर है जो 32-बिट प्रोग्राम को 64-बिट DLL को कॉल करने की अनुमति देता है।
अतिरिक्त पढ़ें:MSDN.
System32 और SysWOW64 फ़ोल्डरों के बीच अंतर जानना चाहते हैं?