Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows

อธิบายโฟลเดอร์ Sysnative ใน Windows 64 บิต

ด้วยการเปิดตัว Windows 7 รุ่น 64 บิต มีการเปลี่ยนแปลงเล็กน้อยในการจัดสรรโฟลเดอร์ปกติในไดเร็กทอรี Windows โฟลเดอร์ใหม่ 2 โฟลเดอร์รวมอยู่ใน Windows 10, Windows 8 และ Windows 70 รุ่น 64 บิต ได้แก่ Sysnative และ SysWOW64 โฟลเดอร์ นี่เป็นเฉพาะใน Windows 64 บิต หากคุณใช้ Windows รุ่น 32 บิตบนเครื่อง 64 บิต คุณจะไม่เห็น และคุณจะไม่เห็นเมื่อใช้งาน Windows รุ่น 32 บิตบนเครื่อง 32 บิต

มีโฟลเดอร์อื่นอยู่นอกไดเรกทอรี Windows และเรียกว่า Program Files (x86) . เราใช้ชื่อโฟลเดอร์ Program Files ที่เก็บไฟล์เรียกทำงานของโปรแกรมของเรา ในระบบ 64 บิต โปรแกรม 64 บิตจะถูกเก็บไว้ในโฟลเดอร์ Program Files ในขณะที่โปรแกรม 32 บิตจะอยู่ใน Program Files (x86) อย่างไรก็ตาม Windows ใช้บางอย่างเช่นการจำลองสำหรับการรันโปรแกรม 32 บิตบนเครื่อง 64 บิต ดังนั้นจึงจำเป็นต้องรู้และทำความเข้าใจว่าโฟลเดอร์ระบบใน Windows (64 บิต) คืออะไร เพื่อให้คุณทราบวิธีเข้าถึงไฟล์ที่ต้องการ

ไม่เหมือนกับเครื่อง 32 บิตที่ DLL แบบ 32 บิตถูกเก็บไว้ใน โฟลเดอร์ System32 Windows รุ่น 64 บิตจะจัดเก็บ DLL ที่เกี่ยวข้องกับ 64 บิตในโฟลเดอร์ System32 ทั้งนี้เพื่อให้วัตถุประสงค์ในการเขียนโปรแกรมง่ายขึ้นและเพื่อให้สามารถใช้งานร่วมกันได้แบบย้อนหลัง กล่าวคือ ถ้าโปรแกรม 64 บิตอ้างถึง System32 ในโค้ด จะได้รับ DLL 64 บิตโดยอัตโนมัติเมื่อมีการเรียกใช้ ซึ่งช่วยให้นักพัฒนาไม่ต้องเปลี่ยนโค้ดในโปรแกรมสำหรับ Windows 64 บิต

กล่าวโดยย่อ Windows ได้ย้าย DLL แบบ 32 บิตทั้งหมดจากโฟลเดอร์ System32 ในไดเร็กทอรี Windows ไปยังโฟลเดอร์อื่นเพื่อไม่ให้โปรแกรมก่อนหน้าต้องถูกเข้ารหัสใหม่เพื่อรับ DLL ที่เหมาะสมแม้ในขณะที่ใช้ API - หลังจากอัปเกรดเป็น 64 บิตแล้ว ปัญหาเกิดขึ้นเมื่อแอปพลิเคชัน 32 บิตพยายามเข้าถึงโฟลเดอร์ System32 ในกรณีนี้ โปรแกรมจะหยุดทำงานเนื่องจากไม่ได้เขียนเพื่อจัดการ DLL แบบ 64 บิต

อ่าน :โฟลเดอร์ Panther คืออะไร

โฟลเดอร์ SysWOW64 ใน Windows 64 บิต

DLL แบบ 32 บิตทั้งหมดถูกย้ายไปยัง โฟลเดอร์ SysWOW64ใหม่ ใน Windows 10, Windows 8 และ Windows 7 รุ่น 64 บิต ดังนั้นเมื่อโปรแกรม 32 บิตเรียกใช้ DLL แบบ 32 บิต โปรแกรมเหล่านั้นจะต้องไปถึงโฟลเดอร์ SysWOW64

คุณอาจรู้สึกว่านักพัฒนาซอฟต์แวร์จะต้องสแกนโปรแกรมและแอปพลิเคชันของตนเพื่อชี้ฟังก์ชัน DLL ไปยังโฟลเดอร์ SysWOW64 แต่ Microsoft ได้ดูแลมันไปแล้ว หากเป็นโปรแกรม 32 บิตที่เรียก C:\Windows\System32 อีมูเลเตอร์จะเปลี่ยนเส้นทางพาธไปที่ C:\Windows\SysWOW64 . กล่าวคือ เพื่อเรียกใช้โปรแกรม 32 บิตใน Windows 64 บิต จะใช้โปรแกรมจำลอง เพื่อให้มีความเข้ากันได้ย้อนหลังอย่างเหมาะสม และเพื่อหลีกเลี่ยงข้อผิดพลาดเมื่อเรียกใช้ไฟล์ DLL

อ่าน :โฟลเดอร์ FOUND.000 คืออะไร

โฟลเดอร์ Sysnative ใน Windows 64 บิต

อธิบายโฟลเดอร์ Sysnative ใน Windows 64 บิต

อาจมีบางกรณีที่โปรแกรมหรือแอปพลิเคชัน 32 บิตอาจต้องใช้ DLL 64 บิต ในกรณีนั้น คุณจะต้องใช้โฟลเดอร์เปลี่ยนเส้นทาง Sysnative . คุณสามารถพิจารณาว่า SysNative เป็นโฟลเดอร์เสมือนและนามแฝงที่ชี้ไปยังโฟลเดอร์ System32 ไม่มีอยู่จริงในระบบของคุณเช่นนี้

ดังนั้น หากโปรแกรม 32 บิตของคุณต้องการเข้าถึง DLL 64 บิต อย่าใช้ C:\Windows\System32 เนื่องจากโปรแกรมจำลอง 32 บิตจะนำไปยังโฟลเดอร์ DLL แบบ 32 บิตที่เรียกว่า SysWOW64 ให้ใช้ C:\Windows\SysNative . แทน เป็นเส้นทางไปยังโปรแกรม DLL การใช้ Sysnative ในพาธจะเปลี่ยนเส้นทางไปยังโฟลเดอร์ System32 แทนโฟลเดอร์ SysWOW64

หากคุณเปิดไฟล์ Windows Explorer คุณจะไม่พบโฟลเดอร์ Sysnative ใน C:\Windows แม้ว่าคุณจะตั้งค่าตัวเลือกโฟลเดอร์ให้แสดงโฟลเดอร์ที่ซ่อนอยู่และโฟลเดอร์ระบบ เนื่องจาก Windows File Explorer เป็นโปรแกรม 64 บิตเมื่อทำงานใน Windows 64 บิต และโฟลเดอร์ Sysnative จะมองเห็นและเข้าถึงได้จากโปรแกรม 32 บิตเท่านั้น

สรุป:

  1. โฟลเดอร์ System32 มีไฟล์ DLL 64 บิต
  2. SysWOW64 มีไฟล์ DLL แบบ 32 บิต และโปรแกรมแบบ 32 บิตจะเปลี่ยนเส้นทางไปยังโฟลเดอร์นี้โดยอัตโนมัติ
  3. Sysnative เป็นโฟลเดอร์เปลี่ยนเส้นทางที่อนุญาตให้โปรแกรม 32 บิตสามารถเรียก DLL แบบ 64 บิตได้

อ่านเพิ่มเติม:MSDN

ต้องการทราบความแตกต่างระหว่างโฟลเดอร์ System32 และ SysWOW64 หรือไม่

อธิบายโฟลเดอร์ Sysnative ใน Windows 64 บิต