- ปัญหาความขัดแย้งของไดรเวอร์ใน Windows เกิดจากไดรเวอร์ที่ล้าสมัย เสียหาย หรือไม่เข้ากัน ซึ่งส่งผลกระทบโดยตรงต่อฮาร์ดแวร์
- ระบบปฏิบัติการ Windows มีเครื่องมือพื้นฐานและขั้นสูง เช่น ตัวจัดการอุปกรณ์และตัวตรวจสอบไดรเวอร์ เพื่อตรวจจับและแยกแยะไดรเวอร์ที่มีปัญหา
- การผสมผสานระหว่างวิธีการอัตโนมัติ เครื่องมือของผู้ผลิต และการตรวจสอบขั้นสูง ช่วยให้สามารถแก้ไขข้อผิดพลาดส่วนใหญ่ได้โดยไม่ต้องติดตั้งระบบใหม่

ถ้าคุณมาที่นี่ แสดงว่าคุณกำลังเจอปัญหาความขัดแย้งของไดรเวอร์ใน Windows และไม่แน่ใจว่าจะเริ่มต้นจากตรงไหนคุณไม่ได้อยู่คนเดียว ปัญหาไดรเวอร์ล้มเหลวหลังจากการอัปเดต อุปกรณ์หยุดทำงานกะทันหัน หรือหน้าจอสีน้ำเงินที่อธิบายไม่ได้ เป็นเรื่องปกติที่เกิดขึ้นกับคอมพิวเตอร์ Windows 10 และ Windows 11 หลายเครื่อง... และแม้แต่ใน Windows Server ด้วย
ข่าวดีก็คือ ระบบนี้มีเครื่องมือมากมาย ตั้งแต่เครื่องมือทั่วไปอย่าง Device Manager หรือ Troubleshooterไปจนถึงยูทิลิตี้ขั้นสูงอย่างDriver Verifierซึ่งออกแบบมาสำหรับนักพัฒนาและช่างเทคนิค แต่มีประโยชน์อย่างยิ่งในการค้นหาไดรเวอร์ที่ขัดแย้งกันเมื่อคอมพิวเตอร์ทำงานไม่เสถียร
ไดรเวอร์ใน Windows คืออะไรกันแน่ และทำไมมันถึงก่อให้เกิดปัญหามากมาย?
ในระบบปฏิบัติการ Windows ไดรเวอร์เปรียบเสมือน "ตัวแปล" ที่ช่วยให้ระบบปฏิบัติการสื่อสารกับฮาร์ดแวร์หรือบริการบางอย่างได้หากไม่มีไดรเวอร์ หรือหากไดรเวอร์เสียหาย ล้าสมัย หรือเขียนโปรแกรมไม่ดี ปัญหาต่างๆ ก็จะเริ่มเกิดขึ้น ตั้งแต่ไมโครโฟนหรือกล้องไม่ถูกตรวจพบ ไปจนถึงการหยุดทำงาน การรีสตาร์ทโดยไม่ทราบสาเหตุ หรือข้อผิดพลาดหน้าจอสีน้ำเงิน
เพื่อให้เข้าใจว่าเหตุใดความขัดแย้งของไดรเวอร์จึงสามารถทำให้ระบบล่มได้ทั้งหมด จำเป็นต้องแยกแยะความแตกต่างระหว่างไดรเวอร์โหมดเคอร์เนลและไดรเวอร์โหมดผู้ใช้ ไดรเวอร์ทั้งสองประเภทนี้ไม่ได้มีความเสี่ยงในระดับเดียวกันเมื่อเกิดข้อผิดพลาด
ประเภทของไดรเวอร์ใน Windows: ไดรเวอร์เคอร์เนลและไดรเวอร์ผู้ใช้
ไดรเวอร์โหมดเคอร์เนลทำงานในระดับต่ำสุดของระบบ พวกมันสามารถเข้าถึงฮาร์ดแวร์และทรัพยากรสำคัญของระบบปฏิบัติการได้โดยตรง เช่น หน่วยความจำ กระบวนการ ความปลอดภัย การรับส่งข้อมูล ฯลฯ คุณอาจคิดว่ามันเป็น "แกนหลัก" ที่สื่อสารกับกราฟิกการ์ด การ์ดเสียง เครือข่าย ดิสก์ และอื่นๆ
โดยทั่วไปแล้ว ไดรเวอร์เหล่านี้จะถูกจัดเรียงเป็นชั้นหรือระดับ :
- นิเวล ซูพีเรียร์: รับข้อมูลจากแอปพลิเคชัน กรองหรือแปลงข้อมูล แล้วส่งต่อไปยังตัวควบคุมระดับล่างที่รู้จักอุปกรณ์ทางกายภาพนั้น
- ระดับกลาง: ไดรเวอร์ระดับคลาส (เช่น ดิสก์เสมือน) ที่อาศัยไดรเวอร์ระดับล่างในการสื่อสารกับฮาร์ดแวร์จริง ๆ
- นิเวลด้อยกว่า: ไดรเวอร์ที่ควบคุมอุปกรณ์ทางกายภาพโดยตรง โดยไม่ขึ้นอยู่กับผู้อื่น
เมื่อไดรเวอร์ในโหมดเคอร์เนลทำงานผิดปกติ ผลที่ตามมาอาจเป็นการหยุดทำงานโดยสมบูรณ์ หน้าจอสีน้ำเงิน หรือข้อมูลเสียหายนั่นเป็นเหตุผลที่ Microsoft มีเครื่องมือเฉพาะเพื่อตรวจสอบพฤติกรรมของไดรเวอร์เหล่านี้ เช่น Driver Checker
ในทางกลับกัน มีไดรเวอร์โหมดผู้ใช้ ไดรเวอร์เหล่านี้ทำงานในพื้นที่ผู้ใช้และโดยทั่วไปทำหน้าที่เป็นสะพานเชื่อมระหว่างแอปพลิเคชัน Win32 บริการระบบ และไดรเวอร์เคอร์เนล หากไดรเวอร์ตัวใดตัวหนึ่งล้มเหลว โปรแกรมที่ใช้งานไดรเวอร์นั้นมักจะปิดตัวลง หรือคุณจะสูญเสียฟังก์ชันการทำงาน แต่โดยหลักการแล้ว ไม่ควรทำให้ระบบล่มทั้งหมด ไดรเวอร์เหล่านี้มักจะทำให้เกิดปัญหา เช่น "เครื่องพิมพ์ไม่ตอบสนอง" หรือ "เมาส์ไม่มีฟังก์ชันขั้นสูง" มากกว่าที่จะทำให้ระบบล่มด้วยหน้าจอสีน้ำเงิน
ปัญหาไดรเวอร์ทั่วไปใน Windows และวิธีการสังเกตปัญหาเหล่านั้น
ความขัดแย้งของไดรเวอร์ไม่ได้แสดงออกมาให้เห็นชัดเจนเสมอไป บางครั้งคุณอาจเห็นไอคอนรูปสามเหลี่ยมสีเหลืองใน Device Managerแต่ในหลายกรณี อาการอาจซ่อนเร้นกว่านั้น เช่น เสียงผิดเพี้ยน ประสิทธิภาพการทำงานลดลง โปรแกรมหยุดทำงานเป็นระยะ อุปกรณ์ปรากฏและหายไป หรือปัญหาเกี่ยวกับ USB hub
สถานการณ์ทั่วไปบางประการที่เกี่ยวข้องกับไดรเวอร์เก่าหรือไม่เข้ากันได้แก่:
- ไดรเวอร์ที่ยังไม่ได้อัปเดตสำหรับ Windows เวอร์ชันปัจจุบัน แต่คุณยังคงพยายามติดตั้งอยู่ดี
- ไดรเวอร์ที่ไม่เข้ากันกับโปรแกรมที่เพิ่งติดตั้ง และส่งผลให้ไฟล์เสียหายหรือถูกแก้ไข
- ซอฟต์แวร์รักษาความปลอดภัย (โปรแกรมป้องกันไวรัส, ไฟร์วอลล์) ที่ตรวจจับว่าไดรเวอร์น่าสงสัยและบล็อกไดรเวอร์นั้นโดยไม่มีการแจ้งเตือนล่วงหน้ามากนัก
- การอัปเดต Windows อัตโนมัติจะแทนที่ไดรเวอร์ที่ใช้งานได้ปกติด้วยไดรเวอร์ "ทั่วไป" ที่มีคุณสมบัติน้อยกว่าหรือมีปัญหามากกว่า ลองตรวจสอบดูสิ การอัปเดต Windows ล้มเหลว.
นอกจากนี้ ยังมีกรณีการติดมัลแวร์ โดยตรง ซึ่งโค้ดที่เป็นอันตรายจะแก้ไขไฟล์ไดรเวอร์หรือแทรกไดรเวอร์ของตัวเองเพื่อยึดระบบ หากไดรเวอร์เสียหายในลักษณะนี้ อาการที่เกิดขึ้นอาจถูกเข้าใจผิดว่าเป็นความล้มเหลวของฮาร์ดแวร์
Driver Verifier: เครื่องมือขั้นสูงสำหรับค้นหาผู้ขับขี่ที่มีปัญหา
เมื่อคุณลองแก้ไขปัญหาตามวิธีทั่วไปแล้วแต่ยังคงพบข้อผิดพลาดแปลกๆ โปรแกรมหยุดทำงาน หรือหน้าจอสีน้ำเงินปรากฏขึ้นอย่างไม่ทราบสาเหตุนั่นคือเวลาที่โปรแกรมตรวจสอบไดรเวอร์ของ Windows จะเข้ามามีบทบาท
Driver Verifier เป็นเครื่องมือที่มีอยู่ใน Windows เวอร์ชันใหม่ๆ ทุกเวอร์ชัน (ตั้งแต่ Windows 2000) และรองรับในWindows Server 2016, 2019, 2022 และ 2025จุดประสงค์ของมันคือการทดสอบไดรเวอร์กลุ่มหนึ่งภายใต้สภาวะสุดขีดเพื่อตรวจจับพฤติกรรมที่ผิดปกติซึ่งโดยปกติแล้วจะไม่ถูก ตรวจ พบ
โปรแกรมนี้ทำงานผ่านVerifier.exeซึ่งติดตั้งอยู่ใน %WinDir%\System32 คุณสามารถใช้งานได้ทั้งผ่านอินเทอร์เฟซแบบกราฟิก (Driver Verifier Manager) หรือผ่านทางบรรทัดคำสั่ง อย่างไรก็ตาม คุณต้องมีสิทธิ์ผู้ดูแลระบบในการตั้งค่า และเมื่อเปิดใช้งานแล้วคุณต้องรีสตาร์ทคอมพิวเตอร์เพื่อให้โปรแกรมเริ่มตรวจสอบไดรเวอร์ที่เลือก
โปรแกรม Driver Verifier ตรวจสอบอะไรบ้าง?
จุดเด่นของ Driver Verifier อยู่ที่ความสามารถในการตรวจสอบพฤติกรรมของผู้ขับขี่ในหลายแง่มุมความสามารถของมันถูกจัดกลุ่มเป็น "ตัวเลือก" หรือ "แฟล็ก" ที่คุณสามารถเปิดใช้งานได้ ขึ้นอยู่กับระดับความเข้มงวดของการทดสอบที่คุณต้องการ
มีชุดหนึ่ง ตัวเลือกมาตรฐาน นี่คือกฎพื้นฐานที่ผู้ขับขี่ไม่ควรละเมิด กฎเหล่านี้จะเริ่มทำงานเมื่อคุณเลือกการกำหนดค่ามาตรฐานจาก GUI หรือใช้พารามิเตอร์ /standard ในบรรทัดคำสั่ง
นอกจากนี้ ยังมี การตรวจสอบอัตโนมัติหลายรายการที่เปิดใช้งานอยู่เสมอในตัวควบคุมที่กำลังตรวจสอบ แม้ว่าคุณจะไม่ได้เลือกสิ่งอื่นใดเลยก็ตาม ซึ่งได้แก่:
- การตรวจสอบ IRQL: ช่วยให้มั่นใจได้ว่าคนขับจะไม่โทรออกในระดับความสำคัญที่ไม่เหมาะสม
- การควบคุม Spinlock: ตรวจจับว่ามีการปล่อย Spinlock สองครั้งหรือไม่ หรือว่ามีการได้มา/ปล่อยล็อคที่ IRQL ที่ไม่ถูกต้องหรือไม่
- การจัดการหน่วยความจำ: ตรวจสอบให้แน่ใจว่าการจัดสรรและการปล่อยหน่วยความจำแบบเพจหรือแบบไม่เพจนั้นเป็นไปตาม IRQL ที่ถูกต้อง และจะไม่ใช้พอยเตอร์ที่ไม่ได้เริ่มต้นค่า
- การดาวน์โหลดไดรเวอร์: ระบบจะตรวจสอบว่าไดรเวอร์ไม่ได้ถูกดาวน์โหลดในขณะที่ยังมีกระบวนการที่ค้างอยู่ เช่น DPC หรือเธรดการทำงาน
- พฤติกรรมอันตรายอื่นๆ ได้แก่ การเปลี่ยนแปลงสแต็กเธรดที่ไม่ถูกต้อง การเรียกใช้ฟังก์ชันรอที่ IRQL >= DISPATCH_LEVEL หรือการเข้าถึงอ็อบเจ็กต์ที่มีจำนวนการอ้างอิงเป็นศูนย์
นอกเหนือจากการตรวจสอบพื้นฐานเหล่านี้แล้ว คุณยังสามารถเปิดใช้งานตัวเลือกเฉพาะอื่นๆ ได้อีกด้วย:
พูลพิเศษ : คำขอหน่วยความจำส่วนใหญ่จากไดรเวอร์จะได้รับการตอบสนองจาก "พูลพิเศษ" ที่มีการตรวจสอบอย่างเข้มงวด พูลนี้ใช้เพื่อตรวจจับการล้น การขาด และการเข้าถึงหน่วยความจำหลังจากที่หน่วยความจำถูกปล่อยแล้ว
บังคับตรวจสอบ IRQL : การตั้งค่านี้จะสร้างแรงกดดันสูงสุดให้กับไดรเวอร์โดยการทำให้โค้ดที่สามารถเรียกใช้งานได้นั้นไร้ประโยชน์ หากไดรเวอร์พยายามเข้าถึงหน่วยความจำภายใน IRQL ที่ไม่เหมาะสมหรือพยายามรักษาการล็อกไว้ Driver Verifier จะตรวจพบได้ทันที
การติดตามพูลหน่วยความจำ : ฟังก์ชันนี้จะตรวจสอบว่าไดรเวอร์ปล่อยหน่วยความจำที่สงวนไว้ทั้งหมดเมื่อยกเลิกการโหลดหรือไม่ นี่เป็นตัวเลือกสำคัญในการค้นหาการรั่วไหลของหน่วยความจำ
การตรวจสอบ I/O : ฟังก์ชันนี้จะกำหนด IRP ของไดรเวอร์จากกลุ่มพิเศษและตรวจสอบการไหลของ I/O เพื่อตรวจจับการใช้งานรูทีน I/O ที่ผิดกฎหมายหรือไม่สอดคล้องกัน เมื่อตรวจพบการละเมิด ระบบจะแสดงรหัสข้อผิดพลาดDRIVER_VERIFIER_IOMANAGER_VIOLATION (0xC9)
การตรวจจับภาวะติดตาย (Deadlock Detection ): ตรวจสอบการใช้งานล็อก มิวเท็กซ์ และฟาสต์มิวเท็กซ์ของไดรเวอร์ เพื่อดูว่าโค้ดของไดรเวอร์นั้นสามารถก่อให้เกิดภาวะติดตายได้หรือไม่
การตรวจสอบ I/O ขั้นสูง : เพิ่มการทดสอบความเครียดให้กับ Plug and Play, Power และ WMI IRP โดยตรวจสอบการเรียกใช้งานต่างๆ ไปยัง I/O Manager
การตรวจสอบ DMA : ตรวจสอบการใช้งานรูทีนการเข้าถึงหน่วยความจำโดยตรง (DMA) ตรวจจับข้อผิดพลาดในการใช้งานบัฟเฟอร์ อะแดปเตอร์ และรีจิสเตอร์แผนที่
การตรวจสอบความปลอดภัย : มองหาข้อบกพร่องทั่วไปที่ก่อให้เกิดช่องโหว่ เช่น การอ้างอิงถึงที่อยู่ในโหมดผู้ใช้จากโค้ดในโหมดเคอร์เนล
การตรวจสอบอื่นๆ : การตรวจสอบแบบกลุ่มเพื่อค้นหาสาเหตุทั่วไปของการเกิดอุบัติเหตุทางรถยนต์ เช่น การจัดการหน่วยความจำที่ปล่อยออกมาไม่ดี
การตรวจสอบการปฏิบัติตาม DDI : บังคับใช้ชุดกฎเกณฑ์เกี่ยวกับวิธีการที่ไดรเวอร์ควรโต้ตอบกับอินเทอร์เฟซของเคอร์เนล การละเมิดจะถูกตรวจพบผ่านไลบรารี VerifierExt.sys ซึ่งจะสร้างการตรวจสอบข้อผิดพลาดในที่สุดเมื่อมีการละเมิดกฎข้อใดข้อหนึ่งเหล่านี้
ตัวเลือกและข้อกำหนดเพิ่มเติมสำหรับ Driver Verifier
นอกเหนือจากตัวเลือกมาตรฐานแล้ว Driver Verifier ยังมีแฟล็กขั้นสูงจำนวนมากสำหรับสถานการณ์ทดสอบเฉพาะเจาะจงเช่น การจำลองการขาดแคลนทรัพยากรแบบสุ่ม การบังคับใช้ IRP ที่ค้างอยู่ หรือการเพิ่มความล่าช้าเทียมให้กับ DDI บางรายการเพื่อจำลองสภาพแวดล้อมที่มีความเครียดสูง
สำหรับข้อกำหนด คุณเพียงแค่ต้องติดตั้ง Windows (Windows Server 2012 หรือเวอร์ชันที่ใหม่กว่าสำหรับสภาพแวดล้อมเซิร์ฟเวอร์)สามารถเปิดใช้งานได้ทั้งในเวอร์ชันขายปลีกและเวอร์ชันทดสอบ อย่างไรก็ตาม มีคำเตือนเฉพาะอย่างหนึ่งคือ หากคุณติดตั้ง Norton Antivirus ไว้ การเปิดใช้งานการตรวจจับ Deadlock ของ Driver Verifier นั้นไม่แนะนำ เนื่องจากทั้งสองอาจรบกวนซึ่งกันและกัน
วิธีการเปิดใช้งานและจัดการ Driver Verifier (GUI และ CMD)
วิธีการใช้งาน Driver Verifier ที่แนะนำคือการใช้Driver Verifier Manager (verifier.exe โดยไม่ต้องใส่พารามิเตอร์)ซึ่งจะแสดง GUI ที่ใช้งานง่ายสำหรับ:
- เลือกคอนโทรลเลอร์ที่คุณต้องการตรวจสอบ
- เลือกประเภทการตรวจสอบที่ต้องการใช้
- ดูสถิติโดยรวมและสถิติแยกตามตัวควบคุม
- ปรับการตั้งค่าแบบคงที่และการตั้งค่าแบบเปลี่ยนแปลงได้
ใน แท็บ สถานะคนขับคุณสามารถดูได้ว่าคนขับคนใดกำลังถูกตรวจสอบและสถานะของพวกเขาเป็นอย่างไร:
- กำลังโหลด: ไดรเวอร์ถูกโหลดเรียบร้อยแล้วและกำลังอยู่ระหว่างการตรวจสอบ
- ดาวน์โหลดแล้ว: ตอนนี้ยังไม่ได้โหลด แต่ได้โหลดเสร็จแล้วตั้งแต่การรีบูตครั้งล่าสุด
- ไม่เคยโหลด: ยังไม่ได้โหลด อาจบ่งชี้ว่าไฟล์เสียหาย ไม่มีอยู่จริง หรืออ้างอิงไม่ถูกต้อง
นอกจากนี้ยังแสดงประเภทของการตรวจสอบที่กำลังทำงานอยู่และอัปเดตข้อมูลโดยอัตโนมัติ (คุณสามารถเปลี่ยนเป็นการอัปเดตด้วยตนเองหรือปรับช่วงเวลาได้) หากคุณเปิดใช้งานกลุ่มหน่วยความจำพิเศษ (Special Pool ) และมีหน่วยความจำน้อยกว่า 95% ที่ถูกจัดสรรไปยังกลุ่มหน่วยความจำพิเศษ แผงควบคุมจะแสดงคำเตือนให้ลดจำนวนไดรเวอร์ที่ได้รับการตรวจสอบหรือเพิ่มหน่วยความจำ RAM เพื่อให้ครอบคลุมมากขึ้น
ใน ส่วน "ตัวนับทั่วโลก " คุณจะเห็นค่าที่สรุปกิจกรรมของตัวตรวจสอบ โดยปกติแล้ว ตัวนับเป็นศูนย์จะบ่งชี้ว่าแฟล็กที่เกี่ยวข้องยังไม่ได้ถูกเปิดใช้งาน ตัวอย่างเช่น "อื่นๆ/ข้อผิดพลาด" ที่เป็น 0 หมายความว่าการจำลองทรัพยากรต่ำถูกปิดใช้งาน
หน้าการติดตามกลุ่มจะแสดงสถิติเชิงลึกที่เกี่ยวข้องกับแบรนด์นั้นๆ สำหรับไดรเวอร์แต่ละตัว เช่น การจัดสรรปัจจุบัน จำนวนไบต์ที่สงวนไว้ การรั่วไหลที่อาจเกิดขึ้น เป็นต้น คุณเลือกไดรเวอร์จากรายการ และตัวนับเฉพาะของไดรเวอร์นั้นจะปรากฏขึ้น
ใน แท็บ การตั้งค่าคุณสามารถเลือกได้ว่าจะเลือกใช้ไดรเวอร์ใดบ้าง และใช้ไดรเวอร์จากแบรนด์ใดบ้าง โดยแต่ละไดรเวอร์สามารถตั้งค่าได้ดังนี้:
- ตรวจสอบว่าเปิดใช้งานแล้ว
- เครื่องหมายถูกถูกปิดใช้งาน
- ตรวจสอบว่าเปิดใช้งานแล้ว (ต้องรีสตาร์ทเครื่อง)
- ตรวจสอบว่าถูกปิดใช้งาน (ต้องรีสตาร์ทเครื่อง)
จากตรงนั้น คุณสามารถเปิดหรือปิดการตรวจสอบไดรเวอร์อย่างน้อยหนึ่งตัวเพิ่มชื่อไฟล์ไดรเวอร์ใหม่ที่ยังไม่ได้โหลด (ตัวอย่างเช่น หากคุณกำลังจะติดตั้งอุปกรณ์ใหม่) หรือเลือกตัวเลือก "ตรวจสอบไดรเวอร์ทั้งหมด" เพื่อดำเนินการโดยตรง แม้ว่าวิธีนี้จะแนะนำเฉพาะในสภาพแวดล้อมการทดสอบเท่านั้น
ในหน้าต่างเดียวกัน คุณเลือกช่องทำเครื่องหมายสำหรับประเภทของการตรวจสอบ (I/O ระดับ 1 หรือระดับ 2, DMA, การติดตาย ฯลฯ) มีปุ่มที่มีประโยชน์เป็นพิเศษสองปุ่ม:
- การกำหนดค่าที่ต้องการซึ่งใช้ชุดตัวเลือกทั่วไปสำหรับการทดสอบโดยทั่วไป
- รีเซ็ตทั้งหมดซึ่งจะลบการตั้งค่าก่อนหน้าทั้งหมดของตัวตรวจสอบเพื่อให้ตัวตรวจสอบถูกปิดใช้งาน
การเปลี่ยนแปลงในแท็บนี้จะถูกบันทึกไปยังรีจิสทรีของ Windowsและจะมีผลหลังจากรีสตาร์ทเครื่องเท่านั้น
ส่วนการกำหนดค่าแบบชั่วคราว (Volatile Configuration)ช่วยให้คุณสามารถเปลี่ยนแปลงค่าสถานะบางอย่างได้ทันทีโดยไม่ต้องรีสตาร์ทเครื่อง แต่คุณไม่สามารถแก้ไขรายการไดรเวอร์ที่อยู่ระหว่างการตรวจสอบได้ ฟังก์ชันนี้มีประโยชน์หากคุณต้องการเพิ่มหรือลดระดับความดันบนตัวควบคุม ณ เวลาใดเวลาหนึ่งเป็นต้น
หากคุณต้องการใช้บรรทัดคำสั่ง คุณสามารถเรียกใช้คำสั่งนี้ได้ verifier.exe /? หากต้องการดูตัวเลือกทั้งหมด ต่อไปนี้คือตัวอย่างการใช้งานทั่วไป:
- ตั้งค่าแฟล็ก:
verifier.exe /flags 0xVALOR
แต่ละสัญลักษณ์มีค่าเป็นเลขฐานสิบหก สัญลักษณ์ที่ใช้กันทั่วไป ได้แก่:
- 0x00000000: การตรวจสอบอัตโนมัติ
- 0x00000001: กลุ่มพิเศษ
- 0x00000002: บังคับตรวจสอบ IRQL
- 0x00000008: การติดตามกลุ่ม
- 0x00000010: ตรวจสอบการรับส่งข้อมูล (I/O check)
- 0x00000020: การตรวจจับการล็อก
- 0x00000080: ตรวจสอบ DMA
- 0x00000100: การตรวจสอบความปลอดภัย
- 0x00000800: การตรวจสอบ "อื่นๆ"
- 0x00020000: ตรวจสอบการปฏิบัติตามข้อกำหนด DDI
และรหัสขั้นสูงอื่นๆ เช่น 0x00000004 (การจำลองทรัพยากรต่ำ), 0x00000040 (การตรวจสอบ I/O ขั้นสูง), 0x00000200 (บังคับ IRP ที่รอดำเนินการ), 0x00000400 (การลงทะเบียน IRP), 0x00002000 และ 0x00004000 (การตรวจสอบ MDL ที่ไม่เปลี่ยนแปลง) หรือความล่าช้าที่เกี่ยวข้องกับ Power Framework
ตัวอย่างเช่น หากคุณต้องการเปิดใช้งานเฉพาะกลุ่มพิเศษ การตรวจสอบ I/O และการตรวจสอบเบ็ดเตล็ด คุณสามารถใช้ค่าที่เทียบเท่ากับ0x811ในแฟล็กได้ สำหรับการกำหนดค่ามาตรฐานที่สมบูรณ์ คุณสามารถใช้:
verifier.exe /standard- หรือ
verifier.exe /flags 0x209BB
เพื่อระบุว่าต้องการตรวจสอบไดรเวอร์ใดบ้าง:
verifier.exe /driver driver1.sys driver2.sysverifier.exe /allสำหรับไดรเวอร์ระบบทั้งหมด
หากต้องการเปลี่ยนแบรนด์ทันทีและเพิ่มคอนโทรลเลอร์ลงในรายการโดยไม่ต้องรีสตาร์ท คุณสามารถใช้โหมดชั่วคราวได้:
verifier.exe /volatile /flags 0xVALOR /adddriver MiDriver.sys
และเพื่อตรวจสอบสถานะปัจจุบัน:
verifier /queryโปรแกรมนี้แสดงค่าตัวนับและสถานะแบบเรียลไทม์verifier /querysettingsมันสอนวิธีการตั้งค่าแบบถาวรverifier.exe /resetลบการตั้งค่าทั้งหมดและปิดใช้งานตัวตรวจสอบ
โปรแกรมตรวจสอบไดรเวอร์, หน้าจอสีน้ำเงิน และการแก้ไขข้อผิดพลาด
โดยปกติแล้ว Driver Verifier จะตรวจพบข้อผิดพลาดและแสดงหน้าจอสีน้ำเงินเพื่อเก็บข้อมูลการดีบักให้ได้มากที่สุด หากคอมพิวเตอร์ของคุณเชื่อมต่อกับดีบักเกอร์เคอร์เนล โปรแกรมจะหยุดทำงาน ณ จุดที่เกิดข้อผิดพลาด
รหัสข้อผิดพลาดที่พบบ่อยที่สุดซึ่งเกิดจากโปรแกรมตรวจสอบ ได้แก่:
- 0xC1: ตรวจพบความเสียหายของหน่วยความจำในพูลพิเศษ
- 0xC4: ตรวจพบการละเมิดโดย DRIVER_VERIFIER
- 0xC6: DRIVER_CAUGHT_MODIFYING_FREED_POOL
- 0xC9: การละเมิด DRIVER_VERIFIER_IOMANAGER
- 0xD6: ข้อผิดพลาดของหน้าไดรเวอร์เกินขอบเขตการจัดสรร
- 0xE6: การละเมิด DMA ของไดรเวอร์ตรวจสอบ
คำแนะนำเมื่อเริ่มเซสชันการดีบักด้วย WinDbg คือให้เริ่มต้นด้วย !analyze -vซึ่งให้การวิเคราะห์โดยละเอียดเกี่ยวกับความล้มเหลวและพยายามระบุตัวผู้ขับขี่ที่เป็นต้นเหตุ
Driver Verifier ยังมีส่วนขยายเฉพาะสำหรับดีบักเกอร์ ด้วย :
!verifier: แสดงสถิติปัจจุบันของผู้ตรวจสอบและยอมรับ!verifier -?เพื่อแสดงรายการตัวเลือก!deadlock: แสดงข้อมูลเกี่ยวกับการตรวจพบภาวะการติดตาย (พร้อม)!deadlock -?(เพื่อขอความช่วยเหลือ)!iovirp: แสดงรายละเอียดของ IRP ที่ตรวจสอบโดยการตรวจสอบ I/O!ruleinfo: ให้ข้อมูลเกี่ยวกับกฎ DDI เฉพาะข้อหนึ่งที่ถูกละเมิด (RuleID คือพารามิเตอร์แรกของการตรวจสอบข้อผิดพลาด ในรูปแบบ 0x200nn)
แล้วไดรเวอร์การ์ดจอละ?
ไดรเวอร์กราฟิกโหมดเคอร์เนลของ Windows (เช่น DLL ของไดรเวอร์เครื่องพิมพ์หรือไดรเวอร์จอแสดงผล) มีลักษณะสำคัญอย่างหนึ่งคือพวกมันไม่ได้เรียกใช้ฟังก์ชันการจัดสรรหน่วยความจำของเคอร์เนลโดยตรงแต่จะใช้การเรียกกลับ DDI จาก Win32k.sys เช่น EngAllocMem เพื่อดึงหน่วยความจำจากพูล หรือ EngCreateBitmap, EngCreatePalette เป็นต้น ซึ่งจะส่งคืนหน่วยความจำของระบบเช่นกัน
เพื่อรักษาการตรวจสอบอัตโนมัติให้คล้ายคลึงกับไดรเวอร์อื่นๆ ฟังก์ชันบางส่วนของ Driver Verifier จึงถูกรวมเข้าไว้ในWin32k.sysแล้ว อย่างไรก็ตาม เนื่องจากไดรเวอร์กราฟิกมีข้อจำกัดมากกว่า จึงไม่จำเป็นต้องใช้ตัวเลือกบางอย่าง เช่น การตรวจสอบ IRQL หรือการตรวจสอบ I/O ในลักษณะเดียวกัน สิ่งที่จำเป็นคือการใช้พูลพิเศษ ข้อผิดพลาดแบบสุ่มในการจัดสรร และการติดตามพูลในการเรียกใช้ DDI เหล่านี้จำนวนมาก
ฟังก์ชันที่สามารถบังคับให้เกิดข้อผิดพลาดแบบสุ่มหรือการตรวจสอบเพิ่มเติมได้ ได้แก่:
- EngAllocMem และ EngAllocUserMem
- EngCreateBitmap, EngCreateDeviceSurface, EngCreateDeviceBitmap.
- EngCreatePalette, EngCreateClip, EngCreatePath, EngCreateWnd, EngCreateDriverObj.
- BRUSHOBJ_pvAllocRbrush, CLIPOBJ_ppoGetPath.
EngAllocMem รองรับการใช้งานพูลพิเศษและการติดตามพูลเป็นอย่างดี การเปิดใช้งาน Driver Verifier สำหรับไดรเวอร์การ์ดจอ วิธีการตั้งค่าเหมือนกับการตั้งค่าไดรเวอร์อื่นๆ ทุกประการ (โดยการเลือกไฟล์ .sys ที่เกี่ยวข้อง) และแฟล็กที่ไม่เกี่ยวข้องจะถูกละเว้น จากดีบักเกอร์ คุณสามารถตรวจสอบสถานะของตัวตรวจสอบกราฟิกได้ด้วยคำสั่ง !gdikdx.verifier.
เปิดใช้งาน Driver Verifier จาก Registry (โหมดขั้นสูง)
สำหรับสถานการณ์เฉพาะบางอย่าง เช่น การทดสอบอัตโนมัติหรือการพัฒนาไดรเวอร์ คุณสามารถเปิดใช้งาน Driver Verifier ได้โดยตรงผ่านWindows Registryวิธีนี้ไม่ใช่วิธีที่แนะนำสำหรับผู้ใช้ทั่วไป แต่ก็เป็นข้อมูลที่ควรทราบ
ขั้นตอนพื้นฐานจะเป็นดังนี้:
- เปิดโปรแกรมแก้ไขรีจิสทรี (Regedt32 หรือ regedit)
- นำทางไปยัง
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDrivers. - แก้ไขค่าประเภท REG_SZ โดยใส่ชื่อ (ไม่คำนึงถึงตัวพิมพ์ใหญ่เล็ก) ของไดรเวอร์ที่คุณต้องการตรวจสอบ
คุณสามารถระบุไดรเวอร์หลายตัวโดยคั่นด้วยช่องว่างได้ แต่โดยทั่วไปแล้วมักใช้ไดรเวอร์เพียงตัวเดียวเพื่อหลีกเลี่ยงการใช้ทรัพยากรมากเกินไปหากพูลที่มีอยู่ไม่เพียงพอ การตรวจสอบบางอย่างอาจไม่ถูกนำไปใช้ แม้ว่าคุณจะไม่ควรประสบปัญหาด้านเสถียรภาพเพิ่มเติมใดๆ ก็ตาม
ตัวอย่างค่าที่ถูกต้องสำหรับ VerifyDrivers ได้แก่:
Ntfs.sysWin32k.sys ftdisk.sys*.sys(สำหรับผู้ขับขี่ทุกคน แม้ว่านี่จะเป็นวิธีการที่ค่อนข้างรุนแรงก็ตาม)
ระดับการตรวจสอบจะถูกควบคุมจากคีย์:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDriverLevel
ซึ่งเป็นค่า DWORD ที่ได้จากการรวมแฟล็กการตรวจสอบที่คุณต้องการเปิดใช้งาน เหมือนกับการใช้งานบนบรรทัดคำสั่ง
ปัญหาที่พบได้ทั่วไปและวิธีแก้ปัญหาที่ใช้งานได้จริงในระบบปฏิบัติการ Windows
นอกจากเครื่องมือขั้นสูงอย่าง Driver Verifier แล้ว ในชีวิตประจำวันคุณจะใช้Device Manager, Windows Update และเว็บไซต์ของผู้ผลิต เป็นหลัก ถึงกระนั้น การจดจำปัญหาที่พบบ่อยที่สุดและวิธีแก้ไขไว้ในใจก็เป็นประโยชน์อย่างยิ่ง
ข้อผิดพลาดที่พบบ่อยมากเมื่อติดตั้งหรืออัปเดตไดรเวอร์ใน Windows 10 และ Windows 11 ได้แก่:
- ไดรเวอร์ติดตั้งไม่สำเร็จหรือแสดงข้อความแสดงข้อผิดพลาด
- หลังจากติดตั้งไดรเวอร์แล้ว อุปกรณ์ยังคงใช้งานไม่ได้หรือใช้งานไม่ได้โดยมีข้อผิดพลาด
- ระบบปฏิบัติการ Windows ใช้ไดรเวอร์ทั่วไปซึ่งจำกัดฟังก์ชันขั้นสูงบางอย่าง
- ผู้ขับขี่สองคนพยายามควบคุมอุปกรณ์เดียวกันและเกิดการขัดแย้งกัน
- ผู้ผลิตยังไม่ได้อัปเดตไดรเวอร์สำหรับ Windows เวอร์ชันปัจจุบัน
- การอัปเดต Windows จะเขียนทับไดรเวอร์ที่คุณปรับแต่งไว้แล้ว
ลำดับขั้นตอนเชิงตรรกะสำหรับกรณีเหล่านี้ส่วนใหญ่มีดังนี้:
- ดูสถานะของอุปกรณ์ได้ใน ตัวจัดการอุปกรณ์ (คลิกขวาที่ปุ่ม Start > Device Manager)
- ลองใช้ก่อนด้วย “อัปเดตไดรเวอร์ > ค้นหาไดรเวอร์โดยอัตโนมัติ”.
- ถ้าวิธีนั้นไม่ได้ผล ให้ดาวน์โหลดไดรเวอร์เฉพาะจาก [ลิงก์เว็บไซต์] เว็บไซต์อย่างเป็นทางการของผู้ผลิต (อุปกรณ์หรือชิ้นส่วน) และติดตั้งด้วยตนเอง
- หากปัญหาเกิดขึ้นทันทีหลังจากอัปเดตไดรเวอร์ ให้ใช้ตัวเลือกนี้ “ตัวควบคุมย้อนกลับ” ในแท็บ Controller ของ Device Properties เมื่อมีให้ใช้งาน
เมื่อสถานการณ์ซับซ้อนขึ้น มีแหล่งข้อมูลเพิ่มเติมอีกหลายอย่าง:
เครื่องมือแก้ไขปัญหาความเข้ากันได้ : หากมีเฉพาะไดรเวอร์เวอร์ชั่นเก่า (เช่น สำหรับ Windows 7 หรือ 8) และคุณต้องการใช้งานบน Windows 10/11 คุณสามารถลองติดตั้งในโหมดความเข้ากันได้ เกี่ยวกับโปรแกรมติดตั้งไดรเวอร์:
- คลิกขวา > “แก้ไขปัญหาความเข้ากันได้”
- เลือก “โปรแกรมแก้ปัญหา”
- เลือกตัวเลือก เช่น “โปรแกรมเคยใช้งานได้ใน Windows เวอร์ชันก่อนหน้า แต่ตอนนี้ไม่สามารถติดตั้งหรือเรียกใช้งานได้” หรือ “ฉันต้องการสิทธิ์เพิ่มเติม”
- เลือก Windows เวอร์ชันเก่าที่คุณทราบว่าใช้งานได้ ทดสอบโปรแกรม และบันทึกการตั้งค่า
ไฟร์วอลล์และโปรแกรมป้องกันไวรัส : หากคุณสงสัยว่าปัญหาเกิดจากระบบรักษาความปลอดภัยของคุณ ให้ปิดใช้งานชั่วคราว (ทีละตัว) เพื่อตรวจสอบว่าไดรเวอร์ติดตั้งหรือทำงานได้อย่างถูกต้องหรือไม่ หากพบว่าเป็นสาเหตุ ให้ตรวจสอบการอัปเดตซอฟต์แวร์ป้องกันไวรัส เพิ่มการยกเว้น หรือหากจำเป็น ให้พิจารณาเปลี่ยนไปใช้โซลูชันรักษาความปลอดภัยอื่น
โปรแกรมที่ไม่เข้ากันล่าสุด : บางครั้งซอฟต์แวร์ที่ติดตั้งใหม่อาจเปลี่ยนแปลงหรือทำให้ไดรเวอร์เสียหาย คุณสามารถทำได้ดังนี้:
- ถอนการติดตั้งโปรแกรมนั้นแล้วดูว่าปัญหาความขัดแย้งหายไปหรือไม่
- ติดตั้งเวอร์ชันล่าสุดจากเว็บไซต์ทางการอีกครั้ง
- ติดตั้งไดรเวอร์ที่ได้รับผลกระทบใหม่จากเว็บไซต์ของผู้ผลิตอุปกรณ์
การบูตแบบคลีนของ Windows : หากคุณสงสัยว่ามีการรบกวนจากบริการหรือโปรแกรมของบุคคลที่สาม คุณสามารถทำการบูตแบบคลีน (msconfig.msc, ซ่อนบริการของ Microsoft, ปิดใช้งานบริการอื่นๆ ทั้งหมด และปิดรายการเริ่มต้นใน Task Manager) และลองติดตั้งหรือดีบักไดรเวอร์ในสภาพแวดล้อม "ขั้นต่ำ" นี้ หรือบูตเข้าสู่ Safe Modeเพื่อทดสอบเพิ่มเติม หากปัญหาได้รับการแก้ไข คุณจะทราบว่าส่วนประกอบของบุคคลที่สามเป็นสาเหตุของปัญหา
อุปกรณ์และไดรเวอร์ที่ซ่อนอยู่ : ใน Device Manager ให้เปิดใช้งานตัวเลือก "แสดงอุปกรณ์ที่ซ่อนอยู่" ในเมนู View เพื่อค้นหาอุปกรณ์ที่ไม่ปรากฏให้เห็นโดยทั่วไป และไดรเวอร์ของอุปกรณ์เหล่านั้นอาจเสียหาย อุปกรณ์เหล่านี้จำนวนมากจำเป็นต้อง ดาวน์โหลดด้วยตนเองจาก เว็บไซต์ของผู้ผลิต
มัลแวร์และไดรเวอร์ที่เสียหาย : ก่อนที่จะสรุปว่า "Windows มีปัญหา" ให้ทำการสแกนแบบเต็มรูปแบบด้วย Windows Defender หรือโปรแกรมป้องกันไวรัสที่มีชื่อเสียงเสียก่อน บางครั้งไดรเวอร์ที่เสียหายอาจเป็นเพียงส่วนเล็ก ๆ ของการติดเชื้อที่ใหญ่กว่าเมื่อระบบของคุณสะอาดแล้ว ให้ติดตั้งไดรเวอร์ที่จำเป็นอีกครั้ง
การอัปเดตและการจัดการไดรเวอร์: เมื่อใดควรใช้เครื่องมือภายนอก
นอกเหนือจาก Windows Update และยูทิลิตี้อย่างเป็นทางการ (เช่น Intel Driver & Support Assistant, AMD Adrenalin หรือ GeForce Experience) แล้ว ยังมีโปรแกรมจากบริษัทอื่นที่ออกแบบมาเพื่อตรวจจับและอัปเดตไดรเวอร์จำนวนมากโปรแกรมเหล่านี้ไม่ใช่ทางออกที่สมบูรณ์แบบ แต่ก็มีประโยชน์ในบางสถานการณ์
ตัวอย่างเช่นโปรแกรม Snappy Driver Installerมีเวอร์ชัน Lite แบบพกพาฟรี ที่คุณสามารถใช้งานบนไดรฟ์ USB ได้ โปรแกรมนี้จะสแกนคอมพิวเตอร์ของคุณ ตรวจจับไดรเวอร์ที่ล้าสมัย และให้คุณดาวน์โหลดและติดตั้งเวอร์ชันใหม่กว่า มีประโยชน์มากสำหรับการฟอร์แมตคอมพิวเตอร์ การใช้งานคอมพิวเตอร์ที่ไม่ได้เสียบปลั๊ก หรือเมื่อคุณต้องการอัปเดตหลายเครื่องพร้อมกัน
เครื่องมืออื่นๆ เช่นDrive Talent เพิ่ม ฟีเจอร์สำรองและกู้คืนไดรเวอร์แต่โดยทั่วไปแล้วเวอร์ชันเต็มจะต้องเสียค่าใช้จ่าย โครงการอย่างDriver Store Explorerใช้วิธีการที่แตกต่างออกไป โดยช่วยให้คุณดู วิเคราะห์ และทำความสะอาด Windows Driver Storeลบเวอร์ชันเก่า ไดรเวอร์ที่ถูกทิ้งร้าง หรือสำเนาที่ซ้ำกันซึ่งไม่ได้ใช้งานอีกต่อไป
ในทุกกรณี ขอแนะนำให้ปฏิบัติตามข้อควรระวังสองประการ ได้แก่ ควรใช้เว็บไซต์อย่างเป็นทางการหรือแหล่งเก็บข้อมูลที่เชื่อถือได้เสมอ (โดยเฉพาะอย่างยิ่งในเครื่องมือโอเพนซอร์ส เช่น Driver Store Explorer บน GitHub) และหลีกเลี่ยงโปรแกรมติดตั้ง "ไดรเวอร์วิเศษ" ที่เต็มไปด้วยแอดแวร์หรือมัลแวร์ที่สัญญาว่าจะแก้ไขทุกอย่างได้ด้วยการคลิกเพียงครั้งเดียว
นอกจากนี้ การเปิดใช้งาน Microsoft Windows Update และการตั้งค่าอย่างถูกต้องอยู่เสมอ ก็เป็นความคิดที่ดี โดยควรตรวจสอบว่ามีไดรเวอร์เสริมใดบ้างที่เสนอให้ และตรวจสอบให้แน่ใจว่าไดรเวอร์ที่สำคัญซึ่งคุณทราบว่าใช้งานได้ดีนั้นไม่ได้ถูกแทนที่โดยไม่ได้ตั้งใจ
สุดท้ายนี้ เมื่อพูดถึงอุปกรณ์แบรนด์เนม (เช่น แล็ปท็อป Lenovo, HP, Dell เป็นต้น) การใช้เครื่องมือและฝ่ายสนับสนุนทางเทคนิคของผู้ผลิตมักจะเป็นวิธีที่ดีที่สุดหลังจากที่คุณลองแก้ไขปัญหาด้วยตนเองแล้ว แต่ยังไม่สำเร็จ บางครั้งอาจมีแพทช์หรือไดรเวอร์เวอร์ชันเบต้าที่ผู้ผลิตเท่านั้นที่สามารถจัดหาให้ได้
โดยสรุปแล้ว ปัญหาความขัดแย้งของไดรเวอร์ใน Windows เป็นเรื่องยุ่งยาก แต่ด้วยการใช้เครื่องมือของผู้ใช้ (ตัวจัดการอุปกรณ์ เครื่องมือแก้ไขปัญหา การอัปเดต Windows) โปรแกรมยูทิลิตี้ของผู้ผลิตโปรแกรมภายนอกที่มีประสิทธิภาพ และเมื่อจำเป็นก็ใช้Driver Verifier เพื่อตรวจสอบไดรเวอร์ที่น่าสงสัยคุณสามารถแก้ไขปัญหาเกือบทุกอย่างได้โดยไม่ต้องใช้วิธีฟอร์แมตเครื่องอย่างสิ้นหวัง