Windows Error code (0xc0000005) ปัญหาการใช้งาน Windows 10 และ Windows 11
หากคุณกำลังใช้งาน Windows ไม่ว่าจะเป็น Windows 10 หรือ Windows 11 เมื่อพยามเปิดโปรแกรม เกม หรือแอปพลิชันแล้วขึ้นข้อความ “The aplication was unable to start correctly (0xc0000005). Click Ok to close the application.” ไม่สามารถเปิดโปรแกรมได้บางโปรแกรมหรือทุกโปรแกรม เลยอยากจะทราบว่าปัญหาเกิดจากอะไร และต้องแก้ไขอย่างไง

โดยปกติแล้วข้อผิดพลาด Error code (0xc0000005) มักเกิดจากการเข้าถึงหน่วยความจำ (Memory Access Violation) ที่ไม่ถูกต้อง ซึ่งหมายถึงโปรแกรมพยายามเข้าถึงพื้นที่หน่วยความจำที่ไม่ได้รับอนุญาตหรือไม่ได้จัดสรรให้กับโปรแกรมนั้นๆ
สาเหตุที่ทำให้เกิดข้อผิดพลาดนี้อาจรวมถึง
- ซอฟต์แวร์ที่มีบั๊ก: เมื่อโปรแกรมมีการเขียนหรืออ่านหน่วยความจำที่ไม่ได้จัดสรรไว้ อาจทำให้เกิดข้อผิดพลาดนี้
- ปัญหาไดรเวอร์: ไดรเวอร์ที่ไม่เสถียรหรือไม่เข้ากันกับฮาร์ดแวร์อาจทำให้โปรแกรมที่ต้องใช้ไดรเวอร์นั้นทำงานไม่ถูกต้อง
- ความเสียหายของไฟล์ระบบหรือรีจิสทรี: ไฟล์หรือการตั้งค่าที่เสียหายอาจทำให้โปรแกรมทำงานผิดพลาดและเกิดข้อผิดพลาดนี้
- มัลแวร์หรือไวรัส: ซอฟต์แวร์ที่ไม่พึงประสงค์อาจพยายามเข้าถึงพื้นที่หน่วยความจำที่ไม่ควรเข้าถึง
แนวทางการแก้ไขปัญหาเมื่อเกิดปัญหานี้
ตรวจสอบว่าเครื่องมีไวรัสหรือไม่ รวมถึงปิดหรือยกเลิกโปรแกรมสแกนไวรัสที่ไม่จำเป็น
มีหลายเคสมากที่ความเสียหายของไฟล์ ได้รับผลกระทบมาจากมัลแวร์หรือไวรัส ตรวจจำเป็นต้องตรวจสอบให้แน่ใจว่าเครื่องของคุณไม่มีไวรัสหรือมัลแวร์ รวมไปถึงโปรแกรมป้องกันไวรัส อาจเป็นตัวก่อให้เกิดความเสียหายของไฟล์ที่เรียกใช้งานต่อระบบ (.dll) บางตัว ให้ทดสอบถอดถอนการติดตั้งโปรแกรมป้องกันไวรัสออกจากเครื่องหากคุณติดตั้งเอาไว้
ซ่อมไฟล์ระบบของ Windows
ไฟล์ระบบของ Windows อาจมีปัญหาในการเรียกใช้งานบางอย่างให้ทดสอบซ่อมไฟล์ระบบของ Windows
กดปุ่ม Windows + S หรือไปที่ช่องค้นหาแล้วพิมพ์ Command Prompt คลิกขวาเลือก Ran administrator

- Dism /Online /Cleanup-Image /RestoreHealth
- sfc /scannow
Microsoft .Net Framework
Microsoft .NET Framework อาจมีส่วนเกี่ยวข้องกับ Error code (0xc0000005) โดยเฉพาะในกรณีที่โปรแกรมที่สร้างขึ้นด้วย .NET Framework พยายามเข้าถึงหน่วยความจำที่ไม่ได้รับอนุญาต ปัญหานี้อาจเกิดจากการจัดการหน่วยความจำที่ไม่ถูกต้องภายในแอปพลิเคชัน หรือจากการทำงานที่ไม่สอดคล้องกันของ .NET Framework เวอร์ชันต่าง ๆ
ทดสอบติดตั้ง .Net Framework ลงไปในเครื่อง (หากมีอยู่แล้วให้ทดสอบถอดถอนการติดตั้งและติดตั้งใหม่)

ติดตั้ง Microsoft Visual C++ Runtime

การเรียกใช้งานรันไทม์บางตัวไม่ได้เนื่องจากไม่ติดตั้ง อาจก่อให้เกิด error โค้ดดังกล่าวด้วยเช่นเดียวกัน ตรวจสอบว่าคุณได้ติดตั้ง Microsoft Visual C++ Runtime ไว้ทุกเวอร์ชันทั้ง x86 และ x64 แล้วหรือยัง ให้ทดสอบติดตั้งให้หมดทุกเวอร์ชัน ดูวิธีการติดตั้ง Microsoft Visual C++ Runtime
Uninstall อัปเดต Windows ล่าสุด

จากประวัติการอัปเดต Windows ที่ผ่านมา มีหลายรุ่นหลังการอัปเดตที่ทำให้ไม่สามารถรันแอปพลิเคชันได้ขึ้นข้อความ Application Error The application was unable to start correctly (0xc0000005) ให้ตรวจสอบดูว่าปัญหาดังกล่าวเกิดหลังการอัปเดต Windows หรือไม่ หากใช่ให้ทดสอบถอดถอนการติดตั้งการอัปเดตล่าสุดออกเพื่อทดสอบดู (ดูวิธีการถอดถอนการติดตั้งอัปเดต Windows แต่ละเวอร์ชัน)
ตรวจสอบการทำงานของ RAM
ปัญหานี้อาจเกิดขึ้นจากความผิดพลาดของหน่วยความจำฉนั้นให้ทำการตรวจสอบการทำงานของหน่วยความจำโดยใช้คำสั่ง Windows + R หรือพิมพ์ในช่อง run mdsched.exe เพื่อเรียก Windows Memory Diagnostics ขึ้นมาและให้เลือกเมนู Restart your computer for memory problems เพื่อให้เครื่องรีสตาร์ทและตรวจสอบหน่วยความจำของคอมพิวเตอร์ของคุณ

อีกหนึ่งสิ่งที่อาจทำการทดสอบเกี่ยวกับ RAM คือให้ทดสอบถอดแถบออกจากเครื่อง และให้ถอดสายไม่ให้มีไฟเข้าเครื่องสักระยะแล้วเปิดเครื่องใหม่ เพื่อเป็นการเคลียร์ข้อมูลที่อยู่ใน RAM ออก
ปิดการทำงานของ Data Execution Prevention (DEP)
Data Execution Prevention (DEP) เป็นคุณสมบัติความปลอดภัยของ Windows ที่ออกแบบมาเพื่อป้องกันการเรียกใช้โค้ดที่เป็นอันตรายจากพื้นที่หน่วยความจำที่ไม่ได้รับอนุญาต โดยปกติแล้ว พื้นที่หน่วยความจำบางส่วนจะถูกกำหนดให้เป็นที่สำหรับเก็บข้อมูลเท่านั้น ไม่ใช่สำหรับการรันโค้ด (execute) หากโปรแกรมหรือโค้ดพยายามที่จะรันจากพื้นที่หน่วยความจำที่ถูกกำหนดให้เก็บข้อมูล DEP จะบล็อกการดำเนินการนั้นและทำให้เกิดข้อผิดพลาดเช่น Error code (0xc0000005) DEP ช่วยป้องกันการโจมตีที่พยายามใช้ช่องโหว่ในหน่วยความจำ เช่น Buffer Overflow ซึ่งผู้โจมตีมักจะพยายามใส่โค้ดที่เป็นอันตรายลงในหน่วยความจำและทำการรันโค้ดจากพื้นที่นั้น
วิธีการทำงานของ DEP
- ฮาร์ดแวร์ DEP: ใช้คุณสมบัติของซีพียูในการป้องกันการรันโค้ดจากพื้นที่หน่วยความจำที่ไม่ได้รับอนุญาต
- ซอฟต์แวร์ DEP: Windows ใช้ซอฟต์แวร์เพื่อป้องกันโปรแกรมที่อาจมีความเสี่ยง โดยตรวจสอบโค้ดที่กำลังถูกรัน
การจัดการ DEP
- เปิด/ปิดการใช้งาน DEP: คุณสามารถปรับแต่งการตั้งค่า DEP ได้ผ่าน Control Panel โดยเข้าไปที่ System > Advanced system settings > Performance Settings > Data Execution Prevention
- เพิ่มข้อยกเว้น: คุณสามารถเพิ่มโปรแกรมที่เชื่อถือได้ลงในรายการยกเว้นของ DEP หากโปรแกรมนั้นมีปัญหาในการทำงานเมื่อ DEP เปิดใช้งาน
กรณี DEP ก่อให้เกิด Error
หาก DEP บล็อกการทำงานของโปรแกรมบางตัวและทำให้เกิด Error code (0xc0000005) คุณอาจจำเป็นต้องเพิ่มโปรแกรมนั้นลงในรายการยกเว้นของ DEP หรือปรับการตั้งค่า DEP สำหรับโปรแกรมเฉพาะ
DEP เป็นหนึ่งในวิธีการป้องกันที่มีประสิทธิภาพในการลดความเสี่ยงจากการโจมตีทางหน่วยความจำ แต่ก็อาจทำให้โปรแกรมบางตัวไม่สามารถทำงานได้อย่างถูกต้องหากโปรแกรมนั้นไม่ได้รับการออกแบบให้เข้ากันได้กับ DEP
- พิมพ์ในช่องค้นหา Advanced System Settings
- เลือกเมนู Setting ภายใต้เมนู Performance
- เลือกแถบ Data Execution Prevention
- ใช้ตัวเลือก “Turn on DEP for all programs and services except those I Select.”
- เลือก Add
- เบราว์หาโปรแกรมที่เป็น้ไฟล์ exe หรือไฟล์เรียกใช้งานที่ไม่สามาถรันได้
- เลือก Open แล้วกด OK ออกมา

ปิดหรือเปิดทั้งหมดผ่าน Command prompt โดยใช้คำสั่ง (อาจทำให้ระบบมีความเสี่ยงจากการโจมตี)

- bcdedit.exe /set {current} nx AlwaysOff (เพื่อปิด)
- bcdedit.exe /set {current} nx AlwaysOn (เพื่อเปิด)
Leave a Reply