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

ऐसे मामले हो सकते हैं जहां एक 32-बिट प्रोग्राम या एप्लिकेशन को 64-बिट DLL की आवश्यकता हो। उस स्थिति में, आपको रीडायरेक्शन फोल्डर Sysnative का उपयोग करना होगा। आप SysNative को एक वर्चुअल फोल्डर और एक उपनाम मान सकते हैं जो System32 फोल्डर की ओर इशारा करता है। यह भौतिक रूप से आपके सिस्टम पर मौजूद नहीं है, जैसे।
इसलिए यदि आपके 32-बिट प्रोग्राम को 64-बिट DLL तक पहुंचने की आवश्यकता है, तो C:\Windows\System32 का उपयोग न करें क्योंकि 32-बिट प्रोग्राम एमुलेटर इसे 32-बिट DLL फोल्डर SysWOW64 पर ले जाएगा। इसके बजाय, DLL प्रोग्राम के पथ के रूप में C:\Windows\SysNative का उपयोग करें। पथ में Sysnative का उपयोग करने से यह SysWOW64 फोल्डर के बजाय System32 फोल्डर पर रीडायरेक्ट हो जाएगा।
यदि आप फाइल विंडोज एक्सप्लोरर खोलते हैं, तो आपको C:\Windows में Sysnative फोल्डर नहीं मिलेगा। यहां तक कि यदि आप फोल्डर विकल्प को छिपे और सिस्टम फोल्डर दिखाने के लिए सेट करते हैं। ऐसा इसलिए है क्योंकि, विंडोज फाइल एक्सप्लोरर 64-बिट विंडोज में चलने पर एक 64-बिट प्रोग्राम है, और Sysnative फोल्डर केवल 32-बिट प्रोग्राम से दृश्यमान और सुलभ है।
संक्षेप में:
- System32 फोल्डर में 64-बिट DLL फाइलें होती हैं।
- SysWOW64 में 32-बिट DLL फाइलें होती हैं, और 32-बिट प्रोग्राम स्वचालित रूप से इस फोल्डर पर रीडायरेक्ट हो जाते हैं
- Sysnative एक रीडायरेक्शन फोल्डर है जो 32-बिट प्रोग्राम को 64-बिट DLLs कॉल करने की अनुमति देता है।
अतिरिक्त पढ़ें: MSDN।
System32 और SysWOW64 फोल्डर के बीच अंतर जानना चाहते हैं?
