อุปกรณ์ใดต้องการไดรเวอร์ ฉันจะรู้ได้อย่างไรว่าฉันต้องการไดรเวอร์เสียงตัวใด

หากคุณประกอบคอมพิวเตอร์ด้วยตัวเองโดยซื้อส่วนประกอบแยกต่างหาก ในกรณีนี้จะไม่พบไดรเวอร์ทั้งหมดสำหรับคอมพิวเตอร์ในเว็บไซต์ของผู้ผลิตรายเดียวอีกต่อไป เนื่องจากการซื้อคอมพิวเตอร์สำเร็จรูปจะทำได้ง่าย (อธิบายไว้ดังนี้ ในบทความ "วิธีค้นหาไดรเวอร์หากซื้อแล็ปท็อปหรือคอมพิวเตอร์เดสก์ท็อปสำเร็จรูป!") ท้ายที่สุด คุณกำลังซื้อคอมพิวเตอร์ที่ยังไม่เสร็จซึ่งเป็นของผู้ผลิตบางราย ซึ่งจะมีรุ่นและไดรเวอร์เป็นของตัวเองซึ่งคุณสามารถดาวน์โหลดทั้งหมดได้ในคราวเดียวจากเว็บไซต์เดียว เนื่องจากคอมพิวเตอร์ประกอบจากชิ้นส่วนอะไหล่ที่คุณเลือกเองหมายความว่าคอมพิวเตอร์จะไม่ตรงกับรุ่นใด ๆ อีกต่อไปและเป็นของผู้ผลิตบางรายเพราะนี่คือผลงานของคุณแล้ว :) ดังนั้นคุณจะต้องค้นหาไดรเวอร์แยกต่างหากสำหรับทุกคน อุปกรณ์ที่ใช้ประกอบคอมพิวเตอร์ นอกจากนี้ยังรวมถึงกรณีที่หลังจากซื้อคอมพิวเตอร์สำเร็จรูป (ประกอบแล้ว) หลังจากผ่านไประยะหนึ่งคุณตัดสินใจเปลี่ยน "ชิ้นส่วนเหล็ก"

ตอนนี้ฉันจะแสดงวิธีค้นหาไดรเวอร์ที่จำเป็นทั้งหมดสำหรับคอมพิวเตอร์ที่กำหนดค่าเองด้วยตนเองผ่านทางอินเทอร์เน็ต

เกี่ยวกับไดรเวอร์ที่อธิบายไว้ในบทความ:

ดังนั้นคุณจึงเลือกส่วนประกอบทั้งหมดประกอบคอมพิวเตอร์ติดตั้ง Windows และดูว่าไดรเวอร์ไม่ได้ติดตั้งสำหรับอุปกรณ์ทั้งหมดและอาจไม่ได้ติดตั้งเกือบทุกอย่าง คุณสามารถค้นหาว่าไดรเวอร์ทั้งหมดได้รับการติดตั้งจากยูทิลิตี้ตัวจัดการอุปกรณ์มาตรฐานหรือไม่ ฉันบอกวิธีการทำสิ่งนี้ในบทความแยกต่างหาก

และในกรณีนี้มีหลายตัวเลือกในการติดตั้งไดรเวอร์

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

ตัวเลือกหมายเลข 1 ค้นหาไดรเวอร์ด้วยตนเองตามรหัสอุปกรณ์ผ่านเว็บไซต์ devid.drp.su

ฉันถือว่าตัวเลือกนี้ดีที่สุด วิธีการคือกำหนดรหัสอุปกรณ์และค้นหาไดรเวอร์บนอินเทอร์เน็ตโดยใช้รหัสนี้ในเว็บไซต์ต่างๆ

สมมติว่าในตัวจัดการอุปกรณ์เราเห็นสิ่งนี้:

เหล่านั้น. ไม่ได้ติดตั้งไดรเวอร์สำหรับอุปกรณ์หลายตัวในคอมพิวเตอร์ อย่างไรก็ตาม การตรวจสอบผ่านตัวจัดการอุปกรณ์ว่าอุปกรณ์ใดไม่มีไดรเวอร์นั้นเป็นปัญหาเนื่องจากชื่อไม่ชัดเจน เข้าใจได้คร่าวๆเท่านั้น. ตัวอย่างเช่น "Ethernet controller" เป็นไปได้มากที่สุด การ์ดแลนสำหรับการเชื่อมต่ออินเทอร์เน็ตแบบมีสาย " ตัวควบคุมเครือข่าย' น่าจะเป็น อะแดปเตอร์ไร้สาย, เช่น. การ์ดเครือข่ายสำหรับการเข้าถึงอินเทอร์เน็ตผ่าน Wi-Fi

แต่อุปกรณ์แต่ละเครื่องมีหมายเลขเฉพาะของตัวเองซึ่งตัวจัดการอุปกรณ์สามารถแสดงให้เราเห็นได้ และเมื่อเรียนรู้หมายเลขแล้วเราสามารถค้นหาไดรเวอร์สำหรับอุปกรณ์ผ่านทางอินเทอร์เน็ต

ลองดูตัวอย่างวิธีการค้นหาไดรเวอร์ด้วยตนเองตามรหัสอุปกรณ์:

ในตอนแรกฉันจะหาไดรเวอร์สำหรับอุปกรณ์ที่ไม่ชัดเจน "Simple Communications PCI Controller"

    กำหนดรหัสของอุปกรณ์ที่เราต้องการค้นหาไดรเวอร์.

    หากต้องการกำหนดรหัสอุปกรณ์ ให้คลิกขวาที่รหัสในตัวจัดการอุปกรณ์แล้วเลือก "คุณสมบัติ" จากเมนูที่ปรากฏ:

    ในหน้าต่างที่เปิดขึ้นให้เลือกแท็บ "รายละเอียด" จากนั้นด้านล่างภายใต้คำจารึก "คุณสมบัติ" เลือก "รหัสฮาร์ดแวร์":

    ก่อนอื่น เราพยายามค้นหาด้วยรหัสจากบรรทัดล่างสุด (ที่ 4) คลิกขวาที่ด้านล่างของบรรทัดที่ 4 ที่มีโค้ด แล้วเลือก "คัดลอก"

    พยายามค้นหาไดรเวอร์ด้วยรหัสบน devid.drp.su.

    หลังจากคัดลอกโค้ดแล้ว ให้เปิดไซต์:

    David.drp.su

    ลองหาไดรเวอร์กัน เว็บไซต์นี้เป็นของโปรแกรม โซลูชันชุดไดรเวอร์ซึ่งรวบรวมไดรเวอร์ที่เป็นไปได้เกือบทั้งหมด ที่นี่มีความเป็นไปได้สูงที่คุณจะพบไดรเวอร์สำหรับอุปกรณ์ใด ๆ

    เมื่อเปิดเว็บไซต์แล้ว สิ่งแรกที่คุณต้องทำคือวางรหัสอุปกรณ์ที่คัดลอกในขั้นตอนก่อนหน้าลงในบรรทัดยาวบนสุด และลบทุกอย่างในรหัสนี้ที่มาจากสัญลักษณ์ “&” จนจบ

    ตัวอย่างเช่น คุณคัดลอกโค้ด:
    PCI\VEN_8086&DEV_0166 &CC_0300

    ดังนั้นหลังจากลบอักขระออกจาก "&" คุณควรมีรหัส:
    PCI\VEN_8086&DEV_0166

    หากคุณไม่ทราบว่าคุณมีระบบอะไรให้เปิด ค้นหา Windowsและป้อน "ข้อมูลระบบ" จากนั้นเลือกโปรแกรมที่ปรากฏจากรายการ:

    ในโปรแกรมที่เปิดขึ้นในหน้าต่างด้านซ้ายเลือก "ข้อมูลระบบ" และทางด้านขวาในบรรทัด "ชื่อระบบปฏิบัติการ" เวอร์ชันของ Windows ของคุณจะปรากฏขึ้น (ในตัวอย่างของฉันในภาพด้านล่าง "Windows 10") และในบรรทัด "ประเภท" - ความลึกบิต: x64 หรือ x86:

    จากข้อมูลเหล่านี้ เราระบุประเภทและความลึกบิตของระบบบนเว็บไซต์ devid.drp.su

    หลังจากระบุรหัสอุปกรณ์และเลือกเวอร์ชัน Windows แล้ว ให้คลิกปุ่ม "ค้นหาไดรเวอร์"

    ด้วยเหตุนี้ หน้าจะแสดงรายการไดรเวอร์ที่ตรงกับรหัสฮาร์ดแวร์ที่คุณระบุและสำหรับของคุณ รุ่นของ Windows. ใช้ปุ่ม "ดาวน์โหลด" ดาวน์โหลดไดรเวอร์ตัวใดตัวหนึ่งลงในคอมพิวเตอร์

    บันทึก!
    หากมีการแสดงไดรเวอร์ที่เหมือนกันหลายรายการ (ตามภาพด้านบน) ให้ดาวน์โหลดไดรเวอร์ที่มีวันที่เผยแพร่ล่าสุดในคอลัมน์เวอร์ชันไดรเวอร์

    เมื่อคลิกที่ปุ่ม "ดาวน์โหลด" ไดรเวอร์จะถูกดาวน์โหลดไปยังคอมพิวเตอร์ของคุณและคุณจะต้องติดตั้งเท่านั้น การติดตั้งไดรเวอร์นั้นไม่มีอะไรซับซ้อนเลย และฉันได้พูดถึงประเด็นนี้ในบทความแยกต่างหาก

    บันทึก!

    มันเกิดขึ้นที่ไดรเวอร์ต่าง ๆ จะแสดงในรายการไดรเวอร์เช่น:

    ซึ่งหมายความว่ารหัสฮาร์ดแวร์อาจคล้ายกันสำหรับอุปกรณ์หลายเครื่อง ในกรณีนี้ คุณสามารถดาวน์โหลดและลองติดตั้งตัวเลือกที่เสนอทั้งหมดได้จนกว่าจะติดตั้ง ไดรเวอร์ที่ถูกต้อง.

อย่างที่คุณเห็น คนขับนั้นหาได้ไม่ยาก ตอนนี้ ฉันจะดูตัวอย่างอื่นเพื่อให้ชัดเจนยิ่งขึ้น :) ตัวอย่างเช่น ฉันจะค้นหาไดรเวอร์สำหรับอุปกรณ์ที่กำหนดให้เป็น "Ethernet controller" ในตัวจัดการอุปกรณ์

ฉันคลิกขวาที่อุปกรณ์ เปิดคุณสมบัติ:

ในหน้าต่าง เลือกแท็บ "รายละเอียด" เลือกรายการ "รหัสฮาร์ดแวร์" จากรายการ และคัดลอกรหัสจากบรรทัดที่ 4:

ฉันเปิดเว็บไซต์ devid.drp.su ระบุหมายเลขที่คัดลอกที่นั่น ลบทุกอย่างในนั้นโดยเริ่มจากสัญลักษณ์ "&" ต่อไป ฉันเลือกรุ่นของ Windows และทำการค้นหา:

สำหรับอุปกรณ์ของฉันและเวอร์ชันของ Windows ที่ฉันเลือก มีไดรเวอร์เพียงเวอร์ชันเดียวที่ฉันสามารถดาวน์โหลดและติดตั้งได้:

นั่นคือทั้งหมด!

อย่างไรก็ตาม บางครั้งเว็บไซต์ devid.drp.su ไม่พบไดรเวอร์สำหรับรหัสฮาร์ดแวร์ที่คุณระบุ ในกรณีนี้มีตัวเลือกอื่นซึ่งเราจะพิจารณาด้านล่าง

อีกทางเลือกหนึ่งในการค้นหาไดรเวอร์ด้วยรหัสอุปกรณ์

หากไม่มีไดรเวอร์สำหรับอุปกรณ์ที่คุณต้องการในเว็บไซต์ devid.drp.su ที่มีชื่อเสียง คุณสามารถใช้วิธีการง่ายๆ นี้:

    กำหนดรหัสอุปกรณ์. ในทำนองเดียวกัน คัดลอกรหัสอุปกรณ์ (บรรทัดที่ 4):

    เรากำลังมองหาไดรเวอร์ในเว็บไซต์ต่างๆ.

    ตอนนี้เราไปที่เว็บไซต์ Google.com แล้ววางโค้ดที่คัดลอกลงในแถบค้นหาโดยตรง หลังจากนั้นเราจะลบสัญลักษณ์ “&” และทุกอย่างที่ต่อจากโค้ด เช่น:

    PCI\VEN_8086&DEV_1C3A &SS_0780= PCI\VEN_8086&DEV_1C3A

    เรากดปุ่มค้นหาและเห็นรายการไซต์ที่ตรงกับคำค้นหาของเรา:

    ตอนนี้คุณต้องเปิดไซต์ตามลำดับโดยเริ่มจากไซต์แรก (บนสุด) และดูว่าคุณสามารถดาวน์โหลดไดรเวอร์บนเว็บไซต์ได้หรือไม่

    เป็นที่น่าสังเกตว่าไม่ใช่ทุกไซต์ที่คุณจะพบไดรเวอร์ที่คุณต้องการ เพราะบางไซต์จะไม่มีไดรเวอร์สำหรับ Windows เวอร์ชันของคุณ และบางไซต์อาจมีข้อผิดพลาดแทนไดรเวอร์

    ในภาพตัวอย่างด้านบน ฉันวงกลมไซต์เหล่านั้นที่สามารถพบไดรเวอร์ได้บ่อยที่สุดและดาวน์โหลดได้โดยไม่มีปัญหาใดๆ นี่คือเว็บไซต์:

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

    และตอนนี้เรามาดูตัวอย่างการดาวน์โหลดไดรเวอร์จากเว็บไซต์ต่างๆ

    ตัวอย่างการดาวน์โหลดไดรเวอร์จาก driver.ru:

    เมื่อคุณไปที่ไซต์จากผลการค้นหา หน้าจะแสดงไดรเวอร์อยู่แล้ว ซึ่งส่วนใหญ่เข้ากันได้กับอุปกรณ์ของคุณ

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

    อย่าลืมให้ความสนใจกับเวอร์ชันของ Windows ที่ต้องการใช้ไดรเวอร์

    จำไว้!
    ไดรเวอร์สำหรับ Windows 8, Windows 8.1 และ Windows 10 มักเข้ากันได้เป็นอย่างดี และหากคุณไม่พบไดรเวอร์สำหรับ Windows 8.1 โดยเฉพาะ ให้ลองติดตั้งไดรเวอร์สำหรับ Windows 8 หรือหากคุณไม่พบไดรเวอร์สำหรับ Windows 10 ให้ลอง ติดตั้งจาก Windows 8.1 หรือ Windows 8 นอกจากนี้ยังเกิดขึ้นว่าไดรเวอร์สำหรับ Windows 7 จะเข้ากันได้กับ Windows 8, 8.1 และ Windows 10 นั่นคือ คุณสามารถลองติดตั้งไดรเวอร์จากระบบต่างๆ

    พิจารณาตัวอย่างขั้นตอนการดาวน์โหลดจากไซต์นี้ เมื่อพบไดรเวอร์ที่คุณต้องการแล้ว ให้คลิกที่ปุ่มดาวน์โหลดด้านล่าง:

    ในหน้าต่างถัดไป คุณต้องยืนยันว่าคุณไม่ใช่หุ่นยนต์โดยทำเครื่องหมายในช่องที่มีให้ (ดูภาพด้านล่าง) จากนั้นคลิกปุ่ม "ดาวน์โหลด" ด้านล่าง:

    และในที่สุดในหน้าถัดไปเราจะเห็นลิงค์ดาวน์โหลดในรูปแบบของชื่อไฟล์ที่มีนามสกุลที่ด้านบนสุด:

    คลิกที่มันและดาวน์โหลดไฟล์

    ตัวอย่างการดาวน์โหลดไดรเวอร์จาก Members.driverguide.com:

    เมื่อไปที่ไซต์จากเครื่องมือค้นหา หน้านี้จะแสดงรายการไดรเวอร์ที่น่าจะเข้ากันได้กับอุปกรณ์ของคุณ:

    การคลิกที่ปุ่มดาวน์โหลดจะเปิดขึ้น หน้าใหม่ที่ซึ่งโฆษณาจำนวนมากดึงดูดสายตา

    ความสนใจ!
    อย่าคลิกที่ใดก็ได้หากมีโฆษณาจำนวนมากบนไซต์ โปรดใช้ความระมัดระวัง มิฉะนั้น คุณสามารถรับไวรัสและการติดไวรัสอื่นๆ บนคอมพิวเตอร์ของคุณได้!

    ในหน้าต่างถัดไปตรงกลางหน้าต่างจะปรากฏขึ้นเพื่อยืนยันว่าคุณเป็นคนจริงไม่ใช่โปรแกรม :) คุณต้องรอให้โหลดเนื้อหาของหน้าต่างแล้วคลิกปุ่ม "แสดง":

    หน้าต่างใหม่จะเปิดขึ้นโดยที่เรารออีกสองสามวินาทีเพื่อให้เนื้อหาโหลด รหัสจะปรากฏในหน้าต่างถัดจากคำจารึก: "Enter" รหัสนี้จำเป็นต้องเขียนใหม่ให้ตรงตามที่อยู่ในบรรทัดด้านล่าง ("คำตอบของคุณ") และคลิก "กลับสู่หน้า":

    คุณจะกลับสู่หน้าเดิมซึ่งปุ่ม "ดำเนินการต่อ" จะปรากฏขึ้น การคลิกจะเป็นการเริ่มดาวน์โหลดไดรเวอร์ลงในคอมพิวเตอร์:

แบบนี้ วิธีอื่นคุณสามารถลองค้นหาไดรเวอร์ด้วยตนเองโดยใช้รหัสอุปกรณ์ แน่นอน สำหรับตัวเลือกนี้ ฉันแสดงตัวอย่างการดาวน์โหลดไดรเวอร์จาก 2 ไซต์เท่านั้น และมีจำนวนมาก แต่หลักการของการดาวน์โหลดในทุกเว็บไซต์นั้นเหมือนกัน เฉพาะส่วนต่อประสานที่แตกต่างกันเป็นส่วนใหญ่และบางครั้งลำดับการดาวน์โหลด

แต่ฉันมีแนวโน้มมากกว่าที่คุณสามารถค้นหาไดรเวอร์ได้อย่างง่ายดายโดยใช้วิธีการหลักที่เสนอในตัวเลือก #1

ตัวเลือกหมายเลข 2 ค้นหาไดรเวอร์บนเว็บไซต์อย่างเป็นทางการของผู้ผลิตอุปกรณ์

หากคุณไม่พบไดรเวอร์สำหรับอุปกรณ์ของคุณโดยใช้ตัวเลือกที่ 1 คุณสามารถทำได้ด้วยวิธีนี้

คุณจะต้องค้นหาผู้ผลิตและรุ่นของอุปกรณ์แต่ละเครื่องในคอมพิวเตอร์ของคุณผ่านเอกสารหรือ โปรแกรมพิเศษ(ตัวอย่างเช่น Aida64 หรือ Sysinfo Detector) จากนั้นค้นหาไดรเวอร์สำหรับอุปกรณ์แต่ละเครื่องแยกกันผ่านเว็บไซต์อย่างเป็นทางการของผู้ผลิตหรือ (หากไม่มีไดรเวอร์บนเว็บไซต์ทางการ) บนอินเทอร์เน็ตตามรุ่นของอุปกรณ์

ลองมาตัวอย่างนี้ ในตัวจัดการอุปกรณ์ฉันเห็นว่าไม่ได้ติดตั้งไดรเวอร์สำหรับการ์ดแสดงผลและอุปกรณ์แปลก ๆ อื่น ๆ ในระบบ:

คุณทราบได้อย่างไรว่ามีอะไรอยู่ในการ์ดแสดงผล แต่เนื่องจากหากมีอุปกรณ์ "อะแดปเตอร์กราฟิก VGA มาตรฐาน" ในรายการอุปกรณ์ในส่วน "อะแดปเตอร์วิดีโอ" แสดงว่าไม่มีไดรเวอร์สำหรับการ์ดแสดงผล มิฉะนั้นอุปกรณ์จะมีชื่อการ์ดแสดงผลของคุณ เป็นต้น “NVIDIA GeForce GTX980”

มาดูลำดับการกระทำของคุณกัน:

    ค้นหาผู้ผลิตและรุ่นของอุปกรณ์.

    บันทึก!
    หากคุณมี "อุปกรณ์ที่ไม่รู้จัก" ในตัวจัดการอุปกรณ์ แสดงว่าอาจไม่ได้ติดตั้งไดรเวอร์สำหรับอุปกรณ์บางอย่าง เมนบอร์ดหรือโปรแกรมพิเศษสำหรับเมนบอร์ด ดังนั้นก่อนอื่นคุณต้องติดตั้งไดรเวอร์ทั้งหมดสำหรับเมนบอร์ดและโปรแกรมสำหรับเมนบอร์ดของคุณ

    หากคุณประกอบคอมพิวเตอร์จากส่วนประกอบที่แยกจากกัน คุณสามารถมีเอกสารสำหรับอุปกรณ์ที่ซื้อแต่ละเครื่องซึ่งระบุสิ่งที่เราต้องการ - ผู้ผลิตและรุ่น หากไม่มีเอกสารเหลืออยู่โปรแกรมใดโปรแกรมหนึ่งที่กำหนดฮาร์ดแวร์ของคอมพิวเตอร์จะช่วยคุณค้นหารุ่น ฉันแนะนำ Aida64 หรือ Sysinfo Detector จ่ายครั้งแรก แต่คุณสามารถใช้งานได้ฟรี 30 วัน และรุ่นที่สองมีรุ่นฟรีทั้งหมด หากคุณคิดว่าจะเลือกอะไรให้เลือกชั่วคราว - Aida64 เนื่องจากคุณภาพของโปรแกรมนี้จะยังคงสูงขึ้น

    วิธีติดตั้งและใช้งานโปรแกรม Aida64 ได้อธิบายไว้ในบทความ:

    วิธีติดตั้งและใช้ Sysinfo Detector มีอธิบายไว้ในบทความ:

    หากคุณตรวจพบอุปกรณ์ผ่านโปรแกรม Aida64จากนั้นคุณสามารถกำหนดประเภทของอุปกรณ์ที่ไม่มีไดรเวอร์ได้โดยเลือกส่วน "อุปกรณ์\u003e\u003e อุปกรณ์ Windows” จากนั้นทางด้านขวาให้เปิดหมวดหมู่ “ไม่ทราบ” (ไม่ทราบ) ข้อมูลเกี่ยวกับอุปกรณ์ที่เลือกจะปรากฏด้านล่าง:

    ในตัวอย่างของฉัน อุปกรณ์ที่ไม่รู้จักเรียกว่า "Asus ATK-110 ACPI Utility"

    ฉันได้กล่าวไว้ข้างต้นว่าอุปกรณ์ที่ไม่รู้จักมักมีบางอย่างอยู่บนเมนบอร์ด ดังนั้นเรามาพิจารณากันทันทีว่าเมนบอร์ดใดอยู่ในอุปกรณ์ ในการทำเช่นนี้ให้เปิดส่วน "เมนบอร์ด" และไปที่ส่วนย่อยเดียวกัน ทางด้านขวาในหน้าต่างเราจะเห็นผู้ผลิตและรุ่นของเมนบอร์ด: Asus P5KPL-AM EPU

    ตอนนี้มาจัดการกับการ์ดแสดงผล การ์ดแสดงผลมักจะระบุอย่างถูกต้องใน Aida64 ภายใต้ "จอแสดงผล" > "วิดีโอ PCI/AGP" อย่างที่คุณเห็น โปรแกรมตรวจพบการ์ดแสดงผล: NVIDIA GeForceจีที 430":

    หากคุณกำลังดูอุปกรณ์ผ่าน Sysinfo Detectorคุณจะเห็นอุปกรณ์ที่มีไดรเวอร์ที่ถอนการติดตั้งได้ 2 วิธี อันแรกอยู่ในส่วน "การเบี่ยงเบน":

    อย่างที่คุณเห็น อุปกรณ์เดียวกันถูกตรวจพบผ่านโปรแกรม Aida64: ACPI / ATK0110

    และวิธีที่สอง - ในส่วน "อุปกรณ์ PCI" เลือกส่วนย่อย "อุปกรณ์ที่ไม่รู้จัก" ที่นี่โปรแกรมเห็นอุปกรณ์ "ปัญหา" 3 เครื่องทันที และหนึ่งในนั้นมีเพียงเมนบอร์ด: Asus P5KPL-AM EPU

    เป็นการดีกว่าที่จะดูผู้ผลิตและรุ่นของการ์ดแสดงผลในส่วน "อุปกรณ์ PCI" ในรายการ ค้นหาส่วนย่อย "ตัวควบคุมการแสดงผล":

    ตัวอย่างแสดงให้เห็นว่าผู้ผลิตการ์ดคือ NVIDIA และรุ่นคือ GeForce GT 430

    ดังนั้นเราจึงเรียนรู้ข้อมูลที่จำเป็นและตอนนี้เราจะค้นหาไดรเวอร์

    เรากำลังมองหาไดรเวอร์บนเว็บไซต์ของผู้ผลิตอุปกรณ์.

    เราพบว่าไดรเวอร์หายไป เป็นไปได้มากว่าสำหรับอุปกรณ์บางอย่างบนเมนบอร์ด หรืออาจเป็นโปรแกรมเฉพาะสำหรับเมนบอร์ด ผู้ผลิตบอร์ดคือ Asus และรุ่นในตัวอย่างของฉันคือ P5KPL-AM EPU เนื่องจากผู้ผลิตคือ Asus เราจะค้นหาในเว็บไซต์ของเว็บไซต์อย่างเป็นทางการของ Asus

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

    นอกจากไดรเวอร์แล้ว ให้ใส่ใจกับส่วน "ยูทิลิตี้" (สามารถดูได้จากรายการในภาพด้านบน) เพราะบางครั้ง "อุปกรณ์ที่ไม่ระบุชื่อ" เป็นโปรแกรมพิเศษบางประเภทสำหรับเมนบอร์ดที่ไม่ได้ติดตั้ง เป็นการดีกว่าที่จะติดตั้งชุดเมนบอร์ดทั้งหมดที่มีให้บนเว็บไซต์เพื่อตรวจสอบว่านี่เป็นปัญหาหรือไม่

    ตัวอย่างนี้แสดงการค้นหาไดรเวอร์สำหรับเมนบอร์ด หากคุณติดตั้งไดรเวอร์และยูทิลิตี้ทั้งหมด "อุปกรณ์ที่ไม่รู้จัก" จากตัวจัดการอุปกรณ์จะหายไป

    ตอนนี้เรามาหาไดรเวอร์สำหรับการ์ดแสดงผล ตัดสินจากข้อมูลที่นำมาจากโปรแกรม Aida64 และ Sysinfo Detector ผู้ผลิตการ์ดแสดงผลคือ NVIDIA และรุ่นคือ GeForce GT 430 เนื่องจากผู้ผลิตคือ NVIDIA เราจึงกำลังมองหาเว็บไซต์อย่างเป็นทางการของ บริษัท นี้ในที่เดียวกัน ทาง Google:

    บนเว็บไซต์เราจะเห็นส่วน "ไดรเวอร์" ทันทีและในรายการ "ดาวน์โหลดไดรเวอร์" พวกเราเปิด:

    หน้าต่างจะเปิดขึ้นซึ่งคุณต้องระบุข้อมูลเกี่ยวกับการ์ดแสดงผล ประเภทผลิตภัณฑ์ในตัวอย่างของฉันคือ "GeForce" หากรุ่นคือ GeForce GT 430 ซีรีส์ผลิตภัณฑ์คือ "GeForce 400 Series" การหาทิศทางของคุณที่นี่ไม่ใช่เรื่องยาก ถัดไปในรายการ "ตระกูลผลิตภัณฑ์" เลือกรุ่นเฉพาะ - "GeForce GT 430" และยังคงให้เลือกเฉพาะรุ่นของ Windows ที่ติดตั้งบนคอมพิวเตอร์ของคุณและภาษาของไดรเวอร์ จากนั้นคลิก "ค้นหา":

    หน้าสำหรับดาวน์โหลดไดรเวอร์ที่ถูกต้องจะเปิดขึ้น คลิกปุ่ม "ดาวน์โหลดทันที":

    ในหน้าถัดไป เรายอมรับเงื่อนไขของข้อตกลงและคลิกปุ่ม "ยอมรับและดาวน์โหลด":

ในทำนองเดียวกัน คุณสามารถดาวน์โหลดไดรเวอร์สำหรับอุปกรณ์ใด ๆ โดยหลักการแล้ว รู้จักผู้ผลิตและรุ่นของมัน จำเป็นต้องค้นหาเว็บไซต์อย่างเป็นทางการของผู้ผลิตและระบุรุ่นที่นั่นเท่านั้น

เป็นทางเลือกสุดท้าย ตัวอย่างเช่น หากคุณไม่พบไดรเวอร์บนเว็บไซต์อย่างเป็นทางการ คุณสามารถค้นหาไดรเวอร์เหล่านั้นบนเว็บไซต์อื่นได้โดยระบุ ค้นหา Googleคำขอตัวอย่างคือ: "ไดรเวอร์สำหรับ Asus P5KPL-AM EPU" แทนที่จะเป็น Asus P5KPL-AM EPU คุณจะต้องระบุผู้ผลิตและรุ่นของอุปกรณ์ที่คุณต้องการค้นหาไดรเวอร์

โดยสรุปแล้วฉันทราบว่าหากคุณใช้ Windows 8 ขึ้นไปเป็นไปได้มากว่าคุณจะไม่มีปัญหากับไดรเวอร์ ระบบเหล่านี้จะติดตั้งไดรเวอร์ทั้งหมดโดยอัตโนมัติทันทีหลังจากติดตั้ง Windows ฉันพยายามติดตั้ง Windows 8.1 และ Windows 10 ใหม่บนแล็ปท็อปหลายเครื่อง และไดรเวอร์ทั้งหมดได้รับการติดตั้งโดยอัตโนมัติในแต่ละเครื่อง ซึ่งไม่จำเป็นต้องค้นหาด้วยตัวเอง

ในบทความนี้ฉันถือว่าเสร็จสิ้น ตอนนี้คุณสามารถค้นหาไดรเวอร์ที่ถูกต้องได้จากรหัสอุปกรณ์หรือจากผู้ผลิตและรุ่นของมัน ฉันขอเตือนคุณว่าคุณอาจต้องการตัวเลือกการค้นหาไดรเวอร์ดังกล่าว หากคุณเลือกส่วนประกอบสำหรับคอมพิวเตอร์ของคุณโดยอิสระหรือเปลี่ยนแปลงรายละเอียดบางอย่างในคอมพิวเตอร์ที่ซื้อเสร็จแล้ว

นอกจากนี้ยังสามารถติดตั้งไดรเวอร์บนคอมพิวเตอร์โดยอัตโนมัติโดยใช้โปรแกรมพิเศษ ความเป็นไปได้นี้อธิบายไว้ในบทความแยกต่างหาก:

ดีที่สุด! เจอกันใหม่กระทู้หน้าค่ะ :)

วันนี้เราจะดูที่:

มีเหตุผลหลายประการที่คุณต้องการใช้คอมพิวเตอร์ส่วนบุคคล สิ่งนี้ไม่ได้ทำโดยใช้โปรแกรมที่มีการเลือกไดรเวอร์อัตโนมัติเสมอไป

นอกจากนี้อะไร ไดรเวอร์เสียงจำเป็นสำหรับพีซีของคุณ คุณยังต้องทราบสาเหตุของการเสื่อมสภาพของอุปกรณ์เสียงในคอมพิวเตอร์ของคุณด้วย

ไม่พบการ์ดเสียงโดย OS

ลองพิจารณากรณีที่ระบบปฏิบัติการไม่สามารถเลือกไดรเวอร์สำหรับการ์ดเสียงของคอมพิวเตอร์ส่วนบุคคลได้อย่างอิสระ ในกระบวนการติดตั้งระบบใหม่และการรีบูตเพิ่มเติม จะพิจารณาจากการไม่มีสัญญาณเสียง

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

Microsoft ช่วยระบุไดรเวอร์เสียง

ระบบปฏิบัติการของคอมพิวเตอร์ให้ความช่วยเหลือในการพิจารณาไดรเวอร์เสียงที่ถูกต้อง จำเป็นต้องเลื่อนเคอร์เซอร์ไปที่โฟลเดอร์ "My Computer" คลิก ปุ่มขวาเมาส์ (RMB) จากนั้น "คุณสมบัติ" จากนั้น "ฮาร์ดแวร์" คุณสามารถทำให้ง่ายขึ้น: โฟลเดอร์ "My Computer" คลิกขวาไปที่ส่วนตัวจัดการอุปกรณ์

รายการจะเปิดขึ้นในตัวจัดการอุปกรณ์ เลือกการ์ดเสียง (ไม่มีไดรเวอร์ มีเครื่องหมายอัศเจรีย์อยู่ข้างๆ) เราเลือกบรรทัดที่ด้านบนมีตัวเลือก "อัปเดตไดรเวอร์" จากนั้นรายการ "ค้นหาไดรเวอร์" เมื่อทุกอย่างเกิดขึ้นกับผลลัพธ์ที่เป็นบวกหน้าต่าง "ติดตั้ง" จะปรากฏขึ้น

ตัวเลือกด้วยตนเองเพื่อค้นหาไดรเวอร์เสียง

เมื่อการเลือกไดรเวอร์เสียงอัตโนมัติล้มเหลวคุณต้องพยายามค้นหาด้วยตนเองเพื่อไปที่เครื่องมือค้นหาใด ๆ (Google, Yandex) จากนั้นในช่องค้นหาให้ป้อนชื่ออุปกรณ์เสียงของคุณบนพีซีและเพิ่ม "+ ไดรเวอร์" ในหน้าต่างที่เปิดขึ้นให้เลือกสิ่งที่คุณต้องการสำหรับเรา

ไดรเวอร์ใดที่จำเป็นสำหรับคอมพิวเตอร์ส่วนบุคคล มองเห็นได้ง่ายในแท็บ Device Manager ขอแนะนำให้ดาวน์โหลดไดรเวอร์บนเว็บไซต์อย่างเป็นทางการของผู้ผลิตเมนบอร์ดที่ติดตั้ง (เมื่อ การ์ดเสียงฝังอยู่ในนั้น) ขอแนะนำให้ดาวน์โหลดไดรเวอร์จากเว็บไซต์ที่เชี่ยวชาญในการอัปเดตฮาร์ดแวร์พีซีนี้

หลังจากดาวน์โหลดไดรเวอร์แล้วให้กลับไปที่แท็บ "ตัวจัดการอุปกรณ์" เปิด "ค้นหาไดรเวอร์บนพีซี" ระบุตำแหน่งที่บันทึก "ติดตั้ง"

การติดตั้งไดรเวอร์เสียงด้วยโปรแกรม

มีบางครั้งที่ผู้ใช้คอมพิวเตอร์ค้นหาไดรเวอร์เสียงด้วยตนเองและใช้ระบบปฏิบัติการได้ยาก จากนั้นจึงเสนอโปรแกรมพิเศษให้ค้นหา ปัจจุบันมีหลายโปรแกรมสำหรับวัตถุประสงค์เหล่านี้: Driver Checker, Sam Drivers, Device Doctor และโปรแกรมอื่นๆ

ในการทำงานกับอินเทอร์เฟซของโปรแกรมประเภทนี้นั้นชัดเจนในระดับที่ใช้งานง่าย

มีหลายกรณีที่คุณต้องกำหนดไดรเวอร์เสียงสำหรับพีซีของคุณ ผู้เชี่ยวชาญให้คำแนะนำ:

  • กำหนดรุ่นของอุปกรณ์เสียงที่ติดตั้งบนพีซี (อ่านบนคอมพิวเตอร์) อาจไม่มีเสียงเนื่องจากไม่ได้ติดตั้งอุปกรณ์ ห้ามใช้ใน BIOS
  • เมื่อรวมเสียงเข้ากับพีซีแล้ว ขอแนะนำให้ดาวน์โหลดไดรเวอร์เสียงจากเว็บไซต์ของผู้ผลิต "เมนบอร์ด" เท่านั้น หรือในกรณีดังกล่าว การติดตั้งแยกต่างหากการ์ดเสียงเพื่อตัดการทำเครื่องหมายชิปออกจากนั้น ค้นหาไดรเวอร์ที่ต้องการผ่านระบบค้นหาการทำเครื่องหมาย
  • ขอแนะนำให้ใช้โปรแกรม AIDA 64 ไม่เพียง แต่แสดงไดรเวอร์เสียงที่จำเป็น แต่จะแสดงทุกอย่าง อุปกรณ์ที่ติดตั้งคุณสามารถกำหนดเครื่องหมายของชิปได้

ค้นหาวิธีค้นหาไดรเวอร์ที่เหมาะสมเพื่อเรียกใช้อุปกรณ์ใดๆ ที่เชื่อมต่อกับคอมพิวเตอร์ของคุณอย่างง่ายดาย

แม้จะมีความจริงที่ว่าศตวรรษที่ 21 อยู่ในสนามแล้วและเกือบทุกคนมีคอมพิวเตอร์ แต่หลายคนถือว่าพวกเขาเป็นเทคโนโลยีที่ล่วงละเมิดไม่ได้ ยิ่งไปกว่านั้นเชื่อมั่นว่าพวกเขามีพีซีที่ดีที่สุด (เพราะผู้ขายพูดอย่างนั้น :)) ผู้ใช้ดังกล่าวไม่ได้ติดตั้งโปรแกรมใด ๆ บนเครื่องและไม่ต้องตรวจสอบว่าคอมพิวเตอร์ทำงานอย่างถูกต้องหรือไม่ ...

ทำไมฉัน? นอกจากนี้เมื่อเร็ว ๆ นี้ฉันต้องจัดการกับกรณีที่สหายบางคนซื้อคอมพิวเตอร์มาเกือบปีครึ่งแล้วไม่มีไดรเวอร์การ์ดแสดงผลปกติ !!! การร้องเรียนเป็นเรื่องปกติ - "" :) และทำไมเขาถึงไม่ควรช้าลงหากไม่มีคนขับ!

โดยทั่วไปแล้ววันนี้เราจะตรวจสอบพีซีของเราว่ามีไดรเวอร์ที่จำเป็นทั้งหมดอยู่ในนั้นหรือไม่ ...

ไดรเวอร์คืออะไรและจะติดตั้งได้อย่างไร

ไดรเวอร์คือชุดของส่วนประกอบซอฟต์แวร์ที่รับประกันการโต้ตอบตามปกติของคอมพิวเตอร์กับอุปกรณ์ที่เชื่อมต่อและการ์ดเอ็กซ์แพนชัน นี่คือโปรแกรมยูทิลิตี้พิเศษที่สามารถถ่ายโอนคำสั่งจากอุปกรณ์ต่อพ่วงไปยังโปรเซสเซอร์และในทางกลับกัน

หากไม่มีไดรเวอร์ อุปกรณ์ที่เชื่อมต่อจะไม่ทำงานเลย (เครื่องพิมพ์ สแกนเนอร์ และอุปกรณ์สำนักงานอื่นๆ) หรือจะทำงานแต่ไม่อยู่ในโหมดที่เหมาะสมที่สุด (การ์ดแสดงผล ชิปเซ็ต ฯลฯ) นั่นคือเหตุผลสำหรับ ดำเนินการตามปกติการติดตั้งระบบใหม่สำหรับพีซีนั้นไม่เพียงพอ การค้นหาไดรเวอร์สำหรับส่วนประกอบทั้งหมดก็เป็นสิ่งสำคัญเช่นกัน!

ไดรเวอร์สามารถจัดหาได้สามเวอร์ชัน:

  1. การติดตั้ง ไฟล์ EXE(หรือ MSI);
  2. เปลือกกราฟิกที่มีความเป็นไปได้ในการเลือกและติดตั้งจำนวนมาก
  3. ชุดของไลบรารีและไฟล์เซอร์วิส เสริมด้วยไฟล์ INF

ตัวเลือกแรกสำหรับการจัดส่งไดรเวอร์มักพบบนอินเทอร์เน็ตและบนดิสก์การติดตั้งที่มาพร้อมกับอุปกรณ์ที่คุณซื้อ ก็เพียงพอแล้วที่จะดาวน์โหลด (หรือเปิดบนดิสก์) และเรียกใช้ไฟล์ EXE จากนั้นตัวช่วยสร้างการติดตั้งจะปรากฏขึ้นต่อหน้าเราซึ่งจะช่วยให้คุณสามารถกำหนดค่าทุกอย่างทีละขั้นตอนได้ ในกรณีนี้ การติดตั้งไดรเวอร์ก็ไม่ยากไปกว่าการติดตั้งโปรแกรมใดๆ

ตัวเลือกการจัดส่งที่สองสามารถพบได้ในดิสก์ที่มีชุดประกอบต่างๆ ที่มีไดรเวอร์หลายตัว (เช่น ไดรเวอร์สำหรับเมนบอร์ดหรือชุดไดรเวอร์ที่เรียกว่า) แอสเซมบลีดังกล่าวมักจะอนุญาตให้คุณเลือกติดตั้งไดรเวอร์แต่ละตัว (หรือทั้งหมดในครั้งเดียว) และไม่ซับซ้อนกว่าตัวติดตั้งทั่วไป แต่มีขนาดใหญ่

การติดตั้งไดรเวอร์ด้วยวิธีที่สามเป็นสิ่งที่ไม่ชัดเจนที่สุด ไดรเวอร์ดังกล่าวมักพบในเทคโนโลยีเก่าและไม่มีตัวติดตั้งแบบกราฟิก แต่มีไฟล์ (บางครั้งมากกว่าหนึ่งไฟล์) ที่มีนามสกุล INF ซึ่งมีพาธการติดตั้งทั้งหมดสำหรับแพ็คเกจไลบรารีเพื่อให้อุปกรณ์ที่เชื่อมต่อทำงานได้:

ในการติดตั้งไดรเวอร์ด้วยวิธีนี้ คุณต้องเรียกเมนูบริบทใน "ตัวจัดการอุปกรณ์" (ไอคอน "คอมพิวเตอร์" - RMB - "คุณสมบัติ" (ในระบบเก่า แท็บ "ฮาร์ดแวร์")) อุปกรณ์ที่ไม่รู้จักจากนั้นเลือก "อัปเดตไดรเวอร์"

หน้าต่างจะเปิดขึ้นซึ่งเราต้องไปทางนี้ (โดยคลิกที่ปุ่มที่เหมาะสม): "ค้นหาไดรเวอร์ในคอมพิวเตอร์เครื่องนี้" - "เลือกไดรเวอร์จากรายการที่ติดตั้งแล้ว" - "ติดตั้งจากดิสก์" จากนั้น คลิกปุ่ม "เรียกดู" และระบุตำแหน่งของไฟล์ INF ที่คุณต้องการ:

หลังจากยืนยันตัวเลือกไฟล์ INF แล้ว จะมีข้อความปรากฏขึ้นเกี่ยวกับการติดตั้งสำเร็จ หรือไฟล์ที่คุณเลือกไม่เหมาะสม และคุณต้องเลือกไฟล์อื่น (ถ้ามี) หากไม่มีไฟล์ INF ใดที่อนุญาตให้คุณติดตั้งไดรเวอร์ที่ถูกต้อง คุณจะต้องมองหาซอฟต์แวร์ทางเลือกหรือแม้แต่เปลี่ยนฮาร์ดแวร์หรือระบบเพื่อให้อุปกรณ์เข้ากันได้กับพีซีของคุณ

ตอนนี้คุณรู้แล้วว่าไดรเวอร์คืออะไร ทำไมคุณต้องใช้และจะติดตั้งอย่างไร ก็ถึงเวลาค้นหาวิธีค้นหาไดรเวอร์แล้ว

ค้นหาตามชื่ออุปกรณ์

อุปกรณ์ใด ๆ (หากไม่ใช่งานฝีมือจีนที่ไม่มีชื่อ) มีชื่อของตัวเอง การรู้ชื่อนี้และเวอร์ชันของระบบของคุณ ในกรณีส่วนใหญ่ คุณสามารถกำหนดชื่อที่ถูกต้องได้ การค้นหาเพื่อเข้าสู่ เครื่องมือค้นหา. ตัวอย่างเช่น: "ไดรเวอร์ เครื่องพิมพ์แคนนอน IP1500 สำหรับ Windows 7 64 บิต" หรือ "ไดรเวอร์ Radeon HD 8700M Windows 8"

ผลการค้นหาจะมีไซต์ที่คุณสามารถดาวน์โหลดไดรเวอร์ที่คุณต้องการได้ อย่างไรก็ตาม ไม่ใช่ทุกเว็บไซต์ที่สามารถดาวน์โหลดได้ฟรี! เพื่อหลีกเลี่ยงความกังวลที่ไม่จำเป็นเนื่องจากการเงินหรือการติดตั้งซอฟต์แวร์คุณภาพต่ำ ฉันขอแนะนำให้คุณใช้พอร์ทัลภาษารัสเซียที่ได้รับการพิสูจน์แล้ว:

ไซต์นี้มีหนึ่งใน คอลเลกชันที่สมบูรณ์ไดรเวอร์จากทั่วอินเทอร์เน็ตที่มีปริมาณรวมมากกว่า 300 TB! ที่นี่คุณสามารถค้นหาไดรเวอร์ได้ทั้งจากประเภทอุปกรณ์ (รายการหลัก "หมวดหมู่ฮาร์ดแวร์") และตามชื่อผู้ผลิต (ดัชนีตัวอักษรที่ด้านบนของหน้า)

ในหน้าที่มีส่วนประกอบที่จำเป็น จะมีตัวเลือกการดาวน์โหลดจำนวนหนึ่ง ให้ความสนใจกับฟิลด์ "ประเภทโปรแกรม" (ต้องมีคำว่า "ไดรเวอร์" มิฉะนั้นคุณสามารถดาวน์โหลดยูทิลิตี้บริการหรือปลั๊กอินได้) "คำอธิบาย" (มันยังบอกว่าไฟล์นี้มีไว้เพื่ออะไร) และ "ระบบ" ด้วย คุณสามารถดาวน์โหลดไดรเวอร์ได้จากลิงค์หลังคำอธิบาย ยืนยันว่าคุณไม่ใช่หุ่นยนต์ :)

นอกเหนือจากการค้นหาไดรเวอร์ในที่เก็บข้อมูลเฉพาะแล้ว บางครั้งการค้นหาในไซต์ของผู้พัฒนาก็สมเหตุสมผลเช่นกัน! ตัวอย่างเช่นไดรเวอร์สำหรับการ์ดวิดีโอยอดนิยมได้รับการอัปเดตและดาวน์โหลดค่อนข้างบ่อย รุ่นล่าสุดคุณมักจะทำได้เฉพาะบนเว็บไซต์ทางการเท่านั้น ดังนั้นฉันจะให้รายการลิงค์เล็ก ๆ เพื่อดาวน์โหลดหน้าสำหรับไดรเวอร์จากอาการหลงผิดที่พบบ่อยที่สุด

การ์ดแสดงผล:

การ์ดเสียง:

เครื่องใช้สำนักงาน:

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

ค้นหาตามรหัสอุปกรณ์

การค้นหาไดรเวอร์ตามชื่ออุปกรณ์ของคุณนั้นค่อนข้างง่าย อย่างไรก็ตาม หากอุปกรณ์นั้นมาจากผู้ผลิตที่ไม่รู้จัก เราก็ไม่สามารถทราบชื่อได้เช่นกัน! หากคุณประสบกับสถานการณ์ดังกล่าว วิธีการค้นหาทางเลือกจะช่วยคุณได้ - โดยตัวระบุอุปกรณ์

ทุกอุปกรณ์แม้กระทั่งภายใน บล็อกระบบแม้ว่าจะเชื่อมต่อด้วยสายเคเบิลภายนอก แต่ก็มีตัวระบุหรือ ID ของตัวเองในระบบ "ตัวจัดการอุปกรณ์" ที่คุ้นเคยอยู่แล้วโดยเรียก "คุณสมบัติ" ของส่วนประกอบที่ต้องการ ไปที่แท็บ "รายละเอียด" และเลือกรายการ "รหัสฮาร์ดแวร์" หรือ "รหัส" ในเมนูแบบเลื่อนลง "คุณสมบัติ" รายการ:

เริ่มต้นด้วย วินโดว์ วิสต้าคุณสามารถคัดลอกค่าของสตริงตัวระบุไปยังคลิปบอร์ดโดยใช้เมนูบริบท ในเวอร์ชันก่อนหน้า ไม่มีฟังก์ชันการคัดลอก ดังนั้น ID จะต้องเขียนใหม่ด้วยตนเอง

ตอนนี้เมื่อทราบตัวระบุอุปกรณ์ที่เราต้องการแล้ว เราสามารถค้นหาไดรเวอร์ที่เหมาะสมได้โดยใช้บริการพิเศษ ที่นี่อีกครั้ง Driver.ru ที่กล่าวถึงแล้วสามารถช่วยเราได้:

ในการทำเช่นนี้ ให้คลิกปุ่ม "ค้นหา" ที่มุมขวาบน และวางรหัสอุปกรณ์ที่คัดลอกลงในฟิลด์บนหน้าที่เปิดขึ้น จากนั้นตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายที่รายการ "ค้นหาตามรหัส" แล้วคลิกปุ่ม "ค้นหา" ใต้ ช่องป้อนข้อมูล ในผลการค้นหาที่เปิดขึ้น คุณสามารถค้นหาไดรเวอร์ที่เหมาะกับระบบของคุณได้อย่างง่ายดาย และคุณสามารถดาวน์โหลดได้

พอร์ทัลขนาดใหญ่หลายแห่งสำหรับการค้นหาไดรเวอร์ทำงานในลักษณะเดียวกัน สิ่งที่ดีที่สุดคือ DevID.info และ DevID.drp.su อย่างไรก็ตาม บริการทั้งสองมีไคลเอนต์ของตัวเองที่ให้คุณตรวจหาไดรเวอร์ที่คุณต้องการและติดตั้งได้โดยอัตโนมัติ เราจะพูดถึงซอฟต์แวร์พิเศษดังกล่าวต่อไป

โปรแกรมสำหรับค้นหาไดรเวอร์

ข้างต้น เราได้พิจารณากรณีที่คุณต้องค้นหาไดรเวอร์ด้วยตนเอง อย่างไรก็ตามสำหรับสิ่งนี้ยังมีโปรแกรมพิเศษที่ให้คุณค้นหาและดาวน์โหลดทุกอย่างโดยอัตโนมัติ ทั้งหมดสามารถแบ่งออกเป็นสองประเภท

โปรแกรมประเภทแรกมักเป็นโมดูลไคลเอ็นต์ขนาดเล็ก (สูงสุดสิบเมกะไบต์) ที่ให้คุณสแกนคอมพิวเตอร์ของคุณเพื่อหาไดรเวอร์ที่ล้าสมัยหรือถอนการติดตั้ง จากนั้นดาวน์โหลดจากอินเทอร์เน็ตและติดตั้งได้ในไม่กี่คลิก บนเว็บไซต์ของเรา ตัวแทนที่โดดเด่นของโปรแกรมประเภทนี้คือ:

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

ด้วยเหตุนี้ โปรแกรมประเภทนี้จึงสามารถใช้งานได้ฟรีสำหรับการอัปเดตไดรเวอร์เพียงครั้งเดียวเท่านั้น แต่ไม่สามารถใช้ได้กับการติดตั้งแบบแบตช์บน Windows ที่เพิ่งติดตั้งใหม่ หากคุณต้องการทุกอย่างพร้อมกัน ทางเลือกของคุณคือชุดไดรเวอร์!

ชุดไดรเวอร์ (จากภาษาอังกฤษ " ชุดไดรเวอร์"-" ชุดไดรเวอร์ ") ส่วนใหญ่มักจะเป็นชุดของฐานข้อมูลออฟไลน์พร้อมไดรเวอร์ที่เลือกและโปรแกรมเชลล์ โปรแกรมจะสแกนพีซีของคุณ หลังจากนั้นจะเสนอให้ติดตั้งหรืออัปเดตไดรเวอร์จำนวนหนึ่ง คุณเพียงแค่ต้อง เพื่อทำเครื่องหมายที่คุณต้องการและยืนยันการเลือกของคุณ การติดตั้ง จะเกิดขึ้นโดยอัตโนมัติ!

ใน Runet ที่มีอยู่มากมาย ไดร์เวอร์แพ็คที่สมบูรณ์และเป็นที่นิยมที่สุดคือ:

จนถึงปัจจุบัน ขนาดของแพ็คเกจการจัดส่งสูงสุดของแพ็คเกจไดรเวอร์นี้มากกว่า 10 กิกะไบต์ สิ่งนี้ไม่น่าประทับใจเท่าฐานข้อมูล 30 เทราไบต์ของ Driver.ru แต่ถึงกระนั้นจำนวนไดรเวอร์ดังกล่าวก็เพียงพอแล้วดังนั้นหลังจากติดตั้งระบบใหม่แล้วคุณไม่จำเป็นต้องค้นหา ดิสก์การติดตั้งที่มากับ เมนบอร์ด, การ์ดแสดงผล และส่วนประกอบอื่นๆ ของพีซีหรือแล็ปท็อปของคุณ

หากคุณไม่ต้องการดาวน์โหลดไดรเวอร์ 10 กิกะไบต์ คุณสามารถดาวน์โหลด DriverPack Online รุ่น Lite ได้ เป็นเพียงโปรแกรมสแกนเนอร์ที่กำหนดไดรเวอร์ที่คุณต้องการเชื่อมต่อกับฐานข้อมูลออนไลน์และอนุญาตให้คุณดาวน์โหลดเฉพาะสิ่งที่คุณต้องการ

ข้อสรุป

วันนี้การค้นหาไดรเวอร์สำหรับคอมพิวเตอร์และแล็ปท็อปไม่ใช่เรื่องยาก อย่างไรก็ตาม เช่นเดียวกับโปรแกรมอื่น ๆ พวกเขาต้องการการอัปเดตเป็นครั้งคราวซึ่งหลายคนลืมไป และอย่างไรก็ตาม การอัปเดตสามารถช่วยได้มาก!

ตัวอย่างเช่นตั้งแต่ฤดูใบไม้ผลิ "" เริ่มปรากฏขึ้นเป็นครั้งคราวพร้อมกับข้อร้องเรียนเกี่ยวกับไลบรารี DLL บางประเภท บางครั้งฉันทนกับสถานการณ์นี้ แต่แล้วฉันก็เหนื่อยและตัดสินใจที่จะมองหาวิธีแก้ปัญหา ปรากฎว่าผู้ร้ายเป็นข้อผิดพลาดในไดรเวอร์การ์ดแสดงผล หลังจากอัปเดตไดรเวอร์แล้วทุกอย่างก็ดีขึ้นและเป็นเวลาหลายเดือนแล้วที่ "เที่ยวบิน" เป็นปกติ :)

คุณธรรมของทั้งหมดข้างต้นคือ: หากคุณเริ่มมี "ข้อบกพร่อง" ในพีซีของคุณหรือสังเกตเห็นได้ตั้งแต่ซื้อคอมพิวเตอร์ / ติดตั้ง windows ใหม่ตรวจสอบการอัปเดตไดรเวอร์ที่สำคัญ ส่วนประกอบที่สำคัญพีซีของคุณ หากมีให้ลองติดตั้งและบางทีระบบของคุณจะทำงานได้อย่างถูกต้องอีกครั้ง!

ป.ล. อนุญาตให้คัดลอกและอ้างอิงบทความนี้ได้อย่างอิสระโดยมีเงื่อนไขว่ามีการระบุลิงก์ที่ใช้งานเปิดไปยังแหล่งที่มาและการประพันธ์ของ Ruslan Tertyshny นั้นยังคงอยู่

อาจเป็นไปได้ว่าทุกคนที่ติดตั้งระบบปฏิบัติการใหม่ด้วยตัวเองอย่างน้อยหนึ่งครั้งมีคำถามยอดนิยม: จะทราบได้อย่างไรว่าต้องติดตั้งไดรเวอร์ใดในคอมพิวเตอร์เพื่อการทำงานที่เสถียร นี่คือคำถามที่เราจะพยายามตอบในบทความนี้ มาทำความเข้าใจในรายละเอียดเพิ่มเติมกันเถอะ

ตามทฤษฎีแล้ว คุณต้องติดตั้งซอฟต์แวร์สำหรับอุปกรณ์ทั้งหมดที่ต้องใช้บนคอมพิวเตอร์หรือแล็ปท็อป เมื่อเวลาผ่านไป นักพัฒนา ระบบปฏิบัติการขยายฐานข้อมูลของไดรเวอร์ Microsoft อย่างต่อเนื่อง และถ้าใน วินโดวส์ไทม์ XP ต้องติดตั้งไดรเวอร์เกือบทั้งหมดด้วยตนเอง แต่ในกรณีของระบบปฏิบัติการรุ่นใหม่กว่านั้น ไดรเวอร์หลายตัวจะถูกติดตั้งโดยอัตโนมัติอยู่แล้ว อย่างไรก็ตาม มีอุปกรณ์ที่ต้องติดตั้งซอฟต์แวร์ด้วยตนเอง เราแจ้งให้คุณทราบหลายวิธีที่จะช่วยคุณในการแก้ปัญหานี้

วิธีที่ 1: เว็บไซต์อย่างเป็นทางการของผู้ผลิต

ในการติดตั้งไดรเวอร์ที่จำเป็นทั้งหมด คุณต้องติดตั้งซอฟต์แวร์สำหรับบอร์ดทั้งหมดในคอมพิวเตอร์ของคุณ ซึ่งหมายถึงเมนบอร์ด การ์ดแสดงผล และบอร์ดภายนอก ( อะแดปเตอร์เครือข่าย, การ์ดเสียง ฯลฯ) ในขณะเดียวกันใน "ตัวจัดการอุปกรณ์"อาจไม่ระบุว่าฮาร์ดแวร์ต้องการไดรเวอร์ เมื่อติดตั้งระบบปฏิบัติการจะใช้ซอฟต์แวร์มาตรฐานสำหรับอุปกรณ์ อย่างไรก็ตาม ซอฟต์แวร์สำหรับอุปกรณ์ดังกล่าวจะต้องติดตั้งเป็นต้นฉบับ ซอฟต์แวร์ที่ติดตั้งส่วนใหญ่อยู่บนเมนบอร์ดและชิปที่รวมอยู่ในนั้น ดังนั้นก่อนอื่นเราจะมองหาไดรเวอร์ทั้งหมดสำหรับเมนบอร์ดและการ์ดแสดงผล

  1. ค้นหาผู้ผลิตและรุ่นของเมนบอร์ด เมื่อต้องการทำเช่นนี้ ให้กดปุ่ม ชนะ + Rบนแป้นพิมพ์และในหน้าต่างที่เปิดขึ้น ให้ป้อนคำสั่ง ซมเพื่อเปิดบรรทัดคำสั่ง
  2. ใน บรรทัดคำสั่งคุณต้องป้อนคำสั่งทีละรายการ:
    กระดานข้างก้น wmic รับผู้ผลิต
    กระดานข้างก้น wmic รับผลิตภัณฑ์
    อย่าลืมกด "เข้า"หลังจากป้อนคำสั่งแต่ละครั้ง ดังนั้นคุณจะเห็นผู้ผลิตและรุ่นของเมนบอร์ดของคุณบนหน้าจอ
  3. ตอนนี้เรากำลังมองหาเว็บไซต์ของผู้ผลิตบนอินเทอร์เน็ตและไปที่เว็บไซต์นั้น ในกรณีของเรานี่คือ
  4. บนไซต์ เรามองหาช่องค้นหาหรือปุ่มที่เกี่ยวข้องในรูปแบบของแว่นขยาย ตามกฎแล้วเมื่อคลิกที่ปุ่มนี้คุณจะเห็นช่องค้นหา ในฟิลด์นี้ คุณต้องป้อนรุ่นของเมนบอร์ดและคลิก "เข้า".
  5. ในหน้าถัดไป คุณจะเห็นผลการค้นหา คุณต้องเลือกเมนบอร์ดของคุณจากรายการ โดยปกติแล้ว มีหลายส่วนย่อยภายใต้ชื่อรุ่นของบอร์ด ถ้ามีส่วน "ไดรเวอร์"หรือ "ดาวน์โหลด"ให้คลิกที่ชื่อของส่วนดังกล่าวแล้วไปที่ส่วนนั้น
  6. ในบางกรณี หน้าต่อไปนี้อาจแบ่งออกเป็นส่วนย่อยของซอฟต์แวร์ ถ้าเป็นเช่นนั้น ให้มองหาและเลือกส่วนย่อย "ไดรเวอร์".
  7. ขั้นตอนต่อไปคือการเลือกระบบปฏิบัติการและความลึกของบิตจากรายการดรอปดาวน์ โปรดทราบว่าในบางกรณีอาจมีความแตกต่างในรายการไดรเวอร์เมื่อเลือกระบบปฏิบัติการอื่น ดังนั้น ไม่เพียงแต่ดูระบบที่คุณติดตั้งเท่านั้น แต่ยังดูเวอร์ชันด้านล่างด้วย
  8. หลังจากเลือกระบบปฏิบัติการแล้ว คุณจะเห็นรายการซอฟต์แวร์ทั้งหมดที่เมนบอร์ดของคุณต้องการเพื่อโต้ตอบกับส่วนประกอบอื่นๆ ของคอมพิวเตอร์ คุณต้องดาวน์โหลดและติดตั้งทั้งหมด การดาวน์โหลดจะเกิดขึ้นโดยอัตโนมัติหลังจากคลิกที่ปุ่ม ดาวน์โหลดหรือไอคอนที่เกี่ยวข้อง หากคุณดาวน์โหลดไฟล์เก็บถาวรพร้อมไดรเวอร์ ก่อนทำการติดตั้ง อย่าลืมแตกเนื้อหาทั้งหมดลงในโฟลเดอร์แยกต่างหาก หลังจากนั้นให้ติดตั้งซอฟต์แวร์
  9. หลังจากที่คุณติดตั้งซอฟต์แวร์ทั้งหมดสำหรับเมนบอร์ดของคุณแล้ว เรามาต่อที่การ์ดแสดงผลกัน
  10. กดคีย์ผสมอีกครั้ง ชนะ + Rและในหน้าต่างที่ปรากฏขึ้น ให้ป้อนคำสั่ง "dxdiag". คลิกเพื่อดำเนินการต่อ "เข้า"หรือปุ่ม "ตกลง"ในหน้าต่างเดียวกัน
  11. ในหน้าต่างเครื่องมือวินิจฉัยที่เปิดขึ้น ให้ไปที่แท็บ "หน้าจอ". คุณสามารถค้นหาผู้ผลิตและรุ่นของอะแดปเตอร์กราฟิกได้ที่นี่
  12. หากคุณมีแล็ปท็อป คุณต้องไปที่แท็บด้วย "คอนเวอร์เตอร์". คุณสามารถดูข้อมูลเกี่ยวกับกราฟิกการ์ดแยกตัวที่สองได้ที่นี่
  13. หลังจากที่คุณพบผู้ผลิตและรุ่นของการ์ดวิดีโอของคุณแล้ว คุณต้องไปที่เว็บไซต์ทางการของบริษัท นี่คือรายการหน้าดาวน์โหลดของผู้ผลิตกราฟิกการ์ดรายใหญ่
  14. คุณต้องระบุรุ่นของการ์ดแสดงผลและระบบปฏิบัติการของคุณด้วย bitness ในหน้าเหล่านี้ หลังจากนั้น คุณสามารถดาวน์โหลดซอฟต์แวร์และติดตั้งได้ โปรดทราบว่าควรติดตั้งซอฟต์แวร์สำหรับอะแดปเตอร์กราฟิกจากเว็บไซต์อย่างเป็นทางการ เฉพาะในกรณีนี้เท่านั้นที่จะติดตั้งส่วนประกอบพิเศษที่จะเพิ่มประสิทธิภาพของการ์ดแสดงผลและอนุญาตให้ปรับแต่งได้
  15. เมื่อคุณติดตั้งซอฟต์แวร์สำหรับอะแดปเตอร์กราฟิกและเมนบอร์ด คุณต้องตรวจสอบผลลัพธ์ สำหรับสิ่งนี้เราเปิด "ตัวจัดการอุปกรณ์". กดปุ่มต่างๆ รวมกัน ชนะและ "ร"บนแป้นพิมพ์ และในหน้าต่างที่เปิดขึ้น ให้เขียนคำสั่ง devmgmt.msc หลังจากนั้นเราก็กด "เข้า".
  16. ดังนั้นคุณจะเห็นหน้าต่าง "ตัวจัดการอุปกรณ์". ไม่ควรมีอุปกรณ์และอุปกรณ์ที่ไม่ปรากฏชื่อซึ่งอยู่ถัดจากชื่อที่มีการซักถามหรือ เครื่องหมายอัศเจรีย์. หากเป็นกรณีนี้ แสดงว่าคุณได้ติดตั้งไดรเวอร์ที่จำเป็นทั้งหมดแล้ว และถ้ามีส่วนประกอบดังกล่าวอยู่ เราขอแนะนำให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้

วิธีที่ 2: ยูทิลิตี้อัพเดตซอฟต์แวร์อัตโนมัติ

หากคุณขี้เกียจเกินไปที่จะค้นหาและติดตั้งซอฟต์แวร์ทั้งหมดด้วยตนเอง คุณควรพิจารณาโปรแกรมที่ออกแบบมาเพื่ออำนวยความสะดวกในการทำงานนี้ให้ละเอียดยิ่งขึ้น เราได้ตรวจสอบโปรแกรมยอดนิยมสำหรับการค้นหาและอัปเดตซอฟต์แวร์โดยอัตโนมัติในบทความแยกต่างหาก

คุณสามารถใช้โปรแกรมอรรถประโยชน์ใด ๆ ที่อธิบายไว้ แต่เรายังคงแนะนำให้ใช้ DriverPack Solution หรือ Driver Genius นี่คือโปรแกรมที่มีฐานข้อมูลไดรเวอร์และฮาร์ดแวร์ที่รองรับมากที่สุด เราได้บอกคุณเกี่ยวกับวิธีใช้ DriverPack Solution แล้ว

ดังนั้นเราจะบอกวิธีค้นหาและติดตั้งไดรเวอร์ทั้งหมดโดยใช้โปรแกรม Driver Genius มาเริ่มกันเลย

  1. เราเริ่มโปรแกรม
  2. คุณจะพบตัวเองกับเธอทันที หน้าแรก. มีปุ่มสีเขียวตรงกลาง "เริ่มตรวจสอบ". เรากดมันอย่างกล้าหาญ
  3. กระบวนการสแกนคอมพิวเตอร์หรือแล็ปท็อปของคุณจะเริ่มขึ้น หลังจากนั้นไม่กี่นาที คุณจะเห็นรายการอุปกรณ์ทั้งหมดที่คุณต้องดาวน์โหลดและติดตั้งซอฟต์แวร์ เนื่องจากเราไม่ได้มองหาไดรเวอร์เฉพาะ เราจึงตรวจสอบรายการที่มีอยู่ทั้งหมด หลังจากนั้นให้กดปุ่ม "ไกลออกไป"ที่ด้านล่างของหน้าต่างโปรแกรม
  4. ในหน้าต่างถัดไป คุณจะเห็นรายการอุปกรณ์ที่ไดรเวอร์ได้รับการอัปเดตแล้วโดยใช้ยูทิลิตี้นี้ และอุปกรณ์เหล่านั้นที่ยังจำเป็นต้องดาวน์โหลดและติดตั้งซอฟต์แวร์ ประเภทอุปกรณ์สุดท้ายถูกทำเครื่องหมายด้วยวงกลมสีเทาถัดจากชื่อ เพื่อความน่าเชื่อถือ เพียงกดปุ่ม "ดาวน์โหลดทั้งหมด".
  5. หลังจากนั้นโปรแกรมจะพยายามเชื่อมต่อกับเซิร์ฟเวอร์เพื่อดาวน์โหลดไฟล์ที่จำเป็น หากทุกอย่างเป็นไปด้วยดี คุณจะกลับไปที่หน้าต่างก่อนหน้า ซึ่งคุณสามารถติดตามความคืบหน้าของการดาวน์โหลดซอฟต์แวร์ได้ในบรรทัดที่เกี่ยวข้อง
  6. เมื่อดาวน์โหลดส่วนประกอบทั้งหมดแล้ว ไอคอนถัดจากชื่ออุปกรณ์จะเปลี่ยนเป็นสีเขียวพร้อมลูกศรชี้ลง น่าเสียดายที่การติดตั้งซอฟต์แวร์ทั้งหมดด้วยปุ่มเดียวจะไม่ทำงาน ดังนั้นให้เลือกบรรทัดด้วยอุปกรณ์ที่จำเป็นแล้วกดปุ่ม "ติดตั้ง".
  7. หรือสร้างจุดคืนค่า คุณจะได้รับแจ้งในกล่องโต้ตอบถัดไป เลือกคำตอบที่ตรงกับการตัดสินใจของคุณ
  8. หลังจากนั้น กระบวนการติดตั้งไดรเวอร์สำหรับอุปกรณ์ที่เลือกจะเริ่มขึ้น ซึ่งระหว่างนั้นกล่องโต้ตอบมาตรฐานอาจปรากฏขึ้น ในนั้นคุณเพียงแค่ต้องอ่านข้อตกลงใบอนุญาตและกดปุ่ม "ไกลออกไป". คุณไม่น่าจะมีปัญหาอะไรในขั้นตอนนี้ หลังจากติดตั้งซอฟต์แวร์นี้หรือซอฟต์แวร์นั้น คุณอาจได้รับแจ้งให้รีบูตระบบ หากข้อความดังกล่าวปรากฏขึ้น เราขอแนะนำให้คุณทำเช่นนั้น เมื่อติดตั้งไดรเวอร์สำเร็จ โปรแกรมไดรเวอร์ Genius ถัดจากบรรทัดที่มีอุปกรณ์จะเป็นเครื่องหมายถูกสีเขียว
  9. ดังนั้น คุณต้องติดตั้งซอฟต์แวร์สำหรับอุปกรณ์ทั้งหมดจากรายการ
  10. ในตอนท้าย คุณสามารถสแกนคอมพิวเตอร์อีกครั้งเพื่อให้น่าเชื่อถือ หากคุณติดตั้งไดรเวอร์ทั้งหมดแล้ว คุณจะเห็นข้อความที่คล้ายกัน
  11. นอกจากนี้ คุณสามารถตรวจสอบว่ามีการติดตั้งซอฟต์แวร์ทั้งหมดด้วยหรือไม่ "ตัวจัดการอุปกรณ์"ตามที่อธิบายไว้ในตอนท้ายของวิธีแรก
  12. หากยังมีอุปกรณ์ที่ไม่ได้ระบุ ให้ลองวิธีต่อไปนี้

วิธีที่ 3: บริการออนไลน์

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

ในนั้นคุณจะพบข้อมูลโดยละเอียดเกี่ยวกับวิธีค้นหา ID และสิ่งที่ต้องทำต่อไป ตลอดจนคำแนะนำในการใช้บริการค้นหาไดรเวอร์ออนไลน์ที่ใหญ่ที่สุดสองรายการ

วิธีที่ 4: การอัปเดตไดรเวอร์ด้วยตนเอง

วิธีนี้เป็นวิธีที่ไม่มีประสิทธิภาพมากที่สุดจากทั้งหมดข้างต้น อย่างไรก็ตามในกรณีที่หายากมาก เขาคือผู้ที่สามารถช่วยติดตั้งซอฟต์แวร์ได้ นี่คือสิ่งที่ต้องทำ


เหล่านี้มากที่สุด วิธีที่มีประสิทธิภาพกำหนดอุปกรณ์ที่คุณต้องการติดตั้งซอฟต์แวร์ เราหวังว่าหนึ่งในตัวเลือกที่เสนอจะช่วยคุณแก้ไขปัญหานี้ได้ อย่าลืมอัปเดตซอฟต์แวร์สำหรับอุปกรณ์ของคุณให้ทันเวลา หากคุณมีปัญหาในการค้นหาหรือติดตั้งไดรเวอร์ โปรดเขียนความคิดเห็น เราจะแก้ไขทุกอย่างไปด้วยกัน

ดังที่เราทราบในระดับฮาร์ดแวร์ คอมพิวเตอร์สมัยใหม่ประกอบด้วยหน่วยการทำงาน คือ ชิ้นส่วนอิเล็กทรอนิกส์บางชนิด ผู้ใช้ที่หลากหลาย คอมพิวเตอร์ส่วนบุคคลคุ้นเคยกับบล็อกการทำงานเช่น: โปรเซสเซอร์, หน่วยความจำ, การ์ดแสดงผล, การ์ดเสียง, ฮาร์ดดิสก์, คอนโทรลเลอร์ I / O (ให้การทำงานของแป้นพิมพ์, เมาส์, จอยสติ๊ก, สื่อ USB (แฟลชไดรฟ์)), เครื่องพิมพ์, สแกนเนอร์และอื่น ๆ ในระดับกายภาพ อุปกรณ์เหล่านี้โต้ตอบกันผ่านบัสพิเศษและโปรโตคอล สร้างการทำงานร่วมกันกับ symbiosis ของการดำเนินงาน ซึ่งในกรณีทั่วไป ลักษณะการทำงานของคอมพิวเตอร์ แต่เป็นคอมพิวเตอร์เพียงชุดของ ชิ้นส่วนอิเล็กทรอนิกส์? ไม่แน่นอน เพราะหนึ่งในโมดูลฮาร์ดแวร์หลัก ซีพียูได้รับการออกแบบมาเพื่อดำเนินการตามคำสั่งของเครื่อง ตามลำดับที่เราทราบ โปรแกรมประกอบด้วย ในแง่นี้จะเป็นการเหมาะสมที่จะกล่าวถึงอีกหนึ่งระดับ - ซอฟต์แวร์ ตอนนี้ขอย้อนกลับไปในอดีตที่ไม่ไกลนัก ในยุคแรกๆ ของยุคคอมพิวเตอร์ โค้ดโปรแกรม (ซึ่งมักจะเขียนโดยตรงในโค้ดเครื่อง/ภาษาระดับต่ำ) สามารถโต้ตอบกับฮาร์ดแวร์โดยตรงได้อย่างง่ายดาย เนื่องจากสถาปัตยกรรมของฮาร์ดแวร์ค่อนข้างเรียบง่าย อย่างไรก็ตาม เมื่อเวลาผ่านไป เทคโนโลยีได้พัฒนาขึ้น ระดับของฮาร์ดแวร์และซอฟต์แวร์ได้พัฒนาอย่างเชื่อมโยงถึงกัน และอย่างแรกคือการเกิดขึ้นของอุปกรณ์ที่หลากหลาย และประการที่สองคือการเกิดขึ้นของอุปกรณ์ที่หลากหลายอย่างมากมาย โมดูลซอฟต์แวร์ซึ่งต่อมานำไปสู่การเกิดขึ้นของระบบปฏิบัติการ ระบบปฏิบัติการเป็นก้าวสำคัญในประวัติศาสตร์ของการพัฒนาอุตสาหกรรมคอมพิวเตอร์ เหนือสิ่งอื่นใดทำหน้าที่เป็นตัวเชื่อม ผู้ประสานงาน (ตัวส่ง) ที่ช่วยให้มั่นใจถึงการโต้ตอบระหว่างอุปกรณ์และโปรแกรม: ได้รับการยอมรับ คำขอจากเลเยอร์ซอฟต์แวร์ (เช่น โปรแกรมผู้ใช้) สำหรับการแลกเปลี่ยนข้อมูลกับอุปกรณ์นี้หรืออุปกรณ์นั้นและในทางกลับกัน กล่าวคือ จริง ๆ แล้วทำหน้าที่เป็นส่วนต่อประสานระหว่างส่วนฮาร์ดแวร์และซอฟต์แวร์ ระบบปฏิบัติการก็ไม่ได้หยุดนิ่ง และถ้าในตอนแรกการโต้ตอบของระบบปฏิบัติการกับฮาร์ดแวร์คอมพิวเตอร์นั้นค่อนข้างง่าย เมื่อสถาปัตยกรรมมีความซับซ้อนมากขึ้นและมีการนำความสามารถของฮาร์ดแวร์ใหม่มาใช้ โครงสร้างของระบบปฏิบัติการก็ซับซ้อนมากขึ้น ตลอดการพัฒนาระบบปฏิบัติการ นักพัฒนาได้พยายามสร้างรหัสที่ให้การโต้ตอบอย่างเต็มที่กับอุปกรณ์ฮาร์ดแวร์จำนวนสูงสุดที่เป็นไปได้ในตลาด อย่างไรก็ตาม วิธีการดังกล่าวเมื่อสถาปัตยกรรมของคอมพิวเตอร์ส่วนบุคคล x86 มีความซับซ้อนมากขึ้น ทำให้เกิดแนวคิดของเลเยอร์ซอฟต์แวร์แยกต่างหากที่เรียกว่าไดรเวอร์ที่รับผิดชอบในการโต้ตอบกับคลาส / ประเภทของอุปกรณ์เฉพาะ แนวคิดของไดรเวอร์ประสบความสำเร็จอย่างมากนอกเหนือจากทิศทางหลัก - การรองรับอุปกรณ์ทางกายภาพแล้วมันยังถูกอนุมานถึงอุปกรณ์ลอจิคัล / เสมือนบางประเภท ในบทความนี้เราจะพูดถึงว่ามันคืออะไร ไดรเวอร์หน้าต่าง.

ทฤษฎี

ลองย้ายออกจากแนวคิดของไดรเวอร์เล็กน้อยและดูที่ทฤษฎีทั่วไป เพื่อให้เข้าใจว่าไดรเวอร์คืออะไรในระบบ ก่อนอื่นคุณต้องผ่านทฤษฎีขั้นต่ำเกี่ยวกับสถาปัตยกรรม x86-64 ทั่วไป ทำไมต้อง x86 ใช่ เพราะแพลตฟอร์มเฉพาะนี้: ก) ได้รับเลือกจากฉันสำหรับการทดลอง ข) เป็นแพลตฟอร์มที่พบได้บ่อยที่สุดในกลุ่มไคลเอนต์ของการดำเนินงาน ระบบวินโดวส์. คุณสมบัติที่เปล่งออกมาในส่วนนี้จะทำให้เราเข้าใจการทำงานในหลาย ๆ ด้านของทั้งระบบปฏิบัติการเองและตามด้วยไดรเวอร์ในองค์ประกอบของมัน

โหมดการทำงานของโปรเซสเซอร์

โครงสร้างภายในของระบบปฏิบัติการใด ๆ จะขึ้นอยู่กับคุณสมบัติฮาร์ดแวร์ของแพลตฟอร์มที่ใช้งาน ลิงค์กลางคือโปรเซสเซอร์ โปรเซสเซอร์สถาปัตยกรรม x86-64 มีหลายโหมดการทำงาน:

  • โหมดจริง
  • โหมดเสมือนจริง (โหมดเสมือนจริง);
  • โหมดป้องกัน
  • โหมดยาว (โหมดยาว)

ในยุคเริ่มต้นของการพัฒนาคอมพิวเตอร์ส่วนบุคคลสถาปัตยกรรม x86 โปรเซสเซอร์ทำงานในโหมดจริง อย่างไรก็ตาม โหมดจริงค่อยๆ กลายเป็นอดีตไปแล้ว เนื่องจากมีคุณสมบัติหลายประการที่ทำให้ไม่สามารถพัฒนาเทคโนโลยีเพิ่มเติมได้: บัสข้อมูล 16 บิตและแอดเดรสบัส 20 บิต (ข้อจำกัดของแอดเดรส) การกำหนดแอดเดรสเซ็กเมนต์ด้วย ขนาดเซ็กเมนต์ 64 กิโลไบต์ (ไม่สะดวกในการใช้พื้นที่ที่อยู่) ขาดข้อ จำกัด ในการเข้าถึงพื้นที่ที่อยู่ เพื่อลบข้อ จำกัด ที่มีอยู่ โหมดป้องกันได้รับการพัฒนาซึ่งมีคุณสมบัติหลายประการที่สำคัญสำหรับการพัฒนาระบบปฏิบัติการ: "มัลติทาสก์" กลไกการป้องกัน (การเข้าถึงคำสั่งพิเศษ) ซึ่งให้การควบคุมการเข้าถึงรหัสต่างๆ ส่วน (โปรแกรม) ซึ่งกันและกันแบบจำลอง หน่วยความจำเสมือน. ในโหมดป้องกัน โปรเซสเซอร์ของอินเทลสถาปัตยกรรม x86 ใช้สิ่งที่เรียกว่าวงแหวนป้องกันหรือระดับสิทธิ์ มีสี่รายการ: 0 (มีสิทธิ์มากที่สุด), 1, 2 และ 3 (มีสิทธิ์น้อยที่สุด) ระดับสิทธิ์มีไว้เพื่อป้องกันรหัสโหมดเคอร์เนลจากโปรแกรมผู้ใช้และโปรแกรมผู้ใช้จากกันและกัน เนื่องจากอาจนำไปสู่การเสียหายได้ อย่างไรก็ตามระบบปฏิบัติการ Windows ไม่ได้ใช้ระดับที่ระบุไว้ทั้งหมด มีเพียงสองระดับเท่านั้นที่เกี่ยวข้อง: 0 และ 3
เพื่อความชัดเจนในการทำความเข้าใจ เรานำเสนอไดอะแกรมแบบง่ายของการโต้ตอบของส่วนประกอบ Windows:

อย่างที่คุณเห็น สภาพแวดล้อมภายในของระบบปฏิบัติการ Windows แบ่งออกเป็นสองส่วนและรองรับการทำงานสองโหมด:

  • โหมดผู้ใช้- โหมดที่ไม่มีสิทธิพิเศษที่เกี่ยวข้องกับวงแหวนป้องกันตัวประมวลผลตัวที่ 3 ของฮาร์ดแวร์
  • โหมดเคอร์เนลเป็นโหมดสิทธิพิเศษที่เกี่ยวข้องกับวงแหวนป้องกันตัวประมวลผลฮาร์ดแวร์ที่ 0;

คุณลักษณะนี้อาจเป็นจุดที่สำคัญที่สุดในการทำความเข้าใจโครงสร้างภายในของ Windows: โดยรวมแล้ว ระบบปฏิบัติการจะแบ่งออกเป็นสองส่วนหลัก: โหมดผู้ใช้และโหมดเคอร์เนล

มันคุ้มค่าที่จะทำความเข้าใจ ตระหนัก และจดจำทุกครั้ง เพราะอันที่จริงแล้ว นี่เป็นหนึ่งในแนวคิดพื้นฐานพื้นฐานของระบบปฏิบัติการสมัยใหม่มากมาย
โหมดผู้ใช้และโหมดเคอร์เนลมีความแตกต่างดังต่อไปนี้:

  • พื้นที่ที่อยู่เสมือนแยก (ไม่ทับซ้อนกัน): พื้นที่โหมดผู้ใช้ตรงบริเวณส่วนล่าง (ที่อยู่จากถึง) พื้นที่โหมดเคอร์เนลตรงบริเวณส่วนบน (ที่อยู่จากถึง);
  • สิทธิ์การเข้าถึงรหัสที่แตกต่างกันสำหรับทรัพยากร (หน่วยความจำ โปรเซสเซอร์ อุปกรณ์ ฯลฯ)

กระบวนการต่อไปนี้ทำงานในโหมดผู้ใช้:

ระบบย่อย คำอธิบาย
กระบวนการสนับสนุนระบบ
  • กระบวนการเข้าสู่ระบบ Winlogon (winlogon.exe )
  • กระบวนการ เซิร์ฟเวอร์ภายในการตรวจสอบสิทธิ์ lsass (lsass.exe)
  • กระบวนการตัวจัดการการควบคุมบริการ (services.exe )
  • กระบวนการจัดการเซสชัน (smss.exe )
  • กระบวนการคอนโซล (conhost.exe )
  • กระบวนการตัวจัดการเซสชันท้องถิ่น (lsm.exe )
  • . . .
ขั้นตอนการบริการ
  • กระบวนการโฮสต์สำหรับบริการ (svchost.exe )
  • กระบวนการตัวจัดคิว (spoolsv.exe)
  • กระบวนการจัดการบริการ WMI (winmgmt.exe )
  • . . .
แอพพลิเคชั่น
  • แอปพลิเคชันผู้ใช้ (แอปพลิเคชันทั้งหมดไม่รวมอยู่ในหมวดหมู่อื่นๆ)
  • ตัวจัดการงาน (taskmgr.exe )
  • เอ็กซ์พลอเรอร์ (explorer.exe)
  • คอนโซลการจัดการ (mmc.exe)
  • . . .
ระบบย่อยของสิ่งแวดล้อม
  • ระบบย่อย Win32 (csrss.exe , kernel32.dll , advapi32.dll , user32.dll , gdi32.dll , ...)
  • ระบบย่อย Linux (lxss.sys , lxcore.sys )
  • ระบบย่อย POSIX (psxss.exe , psxrun.exe , posix.exe , psxdll.dll )
  • ระบบย่อย OS/2 (os2.exe , os2ss.exe , os2srv.exe )
  • ระบบย่อย WOW/WOW64 ( wow64win.dll , wow64.dll , wow64cpu.dll )
  • . . .
การเชื่อมต่อกับฟังก์ชันเคอร์เนล
  • ให้การถ่ายโอนการควบคุมไปยังเคอร์เนลสำหรับฟังก์ชันที่ต้องการ สนับสนุนโดย ntdll.dll

ในโหมดเคอร์เนล:

ระบบย่อย คำอธิบาย
ระบบผู้บริหาร (ผู้บริหาร)
  • ผู้จัดการ I/O
  • ผู้จัดการกระบวนการ
  • ตัวจัดการเธรด
  • ผู้จัดการหน่วยความจำเสมือน
  • ผู้จัดการวัตถุ
  • ผู้จัดการ พี.เอ็น.พี
  • ผู้จัดการพลังงาน
  • ตัวจัดการหน้าต่าง
  • . . .
เคอร์เนล การเริ่มต้นไดรเวอร์ที่สำคัญสำหรับระบบในระหว่างขั้นตอนการบู๊ต การซิงโครไนซ์ระหว่างโปรเซสเซอร์ การตั้งเวลาและการจัดส่งกระบวนการ/เธรด/การขัดจังหวะ การจัดการ/การส่งข้อยกเว้น/ข้อผิดพลาด และฟังก์ชันอื่นๆ (ntoskrnl.exe , ntkrnlmp.exe , ntkrnlpa.exe , ntkrpamp .exe ).
ไดรเวอร์อุปกรณ์ ไดรเวอร์อุปกรณ์ทางกายภาพ/โลจิคัล/เสมือน: ระบบไฟล์ เครือข่าย ดิสก์ และไดรเวอร์อื่นๆ
ระบบย่อยหน้าต่าง / กราฟิก (ระบบหน้าต่างและกราฟิก) ระบบย่อยรองรับ Windowing และกราฟิกที่ให้การสนับสนุนฟังก์ชันกราฟิก หน้าจอผู้ใช้(ส่วนติดต่อผู้ใช้แบบกราฟิก, GUI) (win32k.sys )
ฮาร์ดแวร์ Abstraction Layer (HAL) ให้ความเป็นอิสระจากฮาร์ดแวร์ของแพลตฟอร์ม แยกส่วนประกอบเคอร์เนลออกจากข้อมูลเฉพาะ ฮาร์ดแวร์. (hal.dll )

เนื่องจากระบบปฏิบัติการใด ๆ จะต้องสามารถทำงานร่วมกับฮาร์ดแวร์ได้ ชุดแจกจ่าย (ชุดการติดตั้ง / ไฟล์ระบบ) จึงมีไดรเวอร์สำหรับส่วนประกอบฮาร์ดแวร์ที่สำคัญ โดยที่ระบบจะไม่สูญเสียการเข้าถึงฮาร์ดแวร์อย่างแท้จริงพร้อมกับปัญหาที่ตามมาทั้งหมด: จะไม่ จะใช้งานได้หรือไม่ก็ผ่านขั้นตอนการติดตั้ง ไดรเวอร์ "ภายใน" เหล่านี้นำเสนอในรูปแบบของไลบรารีไดรเวอร์ในตัวซึ่งมีการเปลี่ยนแปลงองค์ประกอบจากรุ่นหนึ่งไปยังอีกรุ่นหนึ่ง ขึ้นอยู่กับขั้นตอนของวิวัฒนาการฮาร์ดแวร์และแนวโน้มของตลาด หากจำเป็น ไดรเวอร์จากไลบรารีนี้จะถูกติดตั้งในขั้นตอนการติดตั้งระบบปฏิบัติการ ทั้งนี้ขึ้นอยู่กับการตรวจจับ (การระบุ) ของอุปกรณ์บางอย่างในคอมพิวเตอร์ โดยทั่วไป ระหว่างการติดตั้ง โค้ดการตรวจจับฮาร์ดแวร์จะตรวจจับอุปกรณ์ที่ติดตั้งในคอมพิวเตอร์และตรวจสอบไลบรารีเพื่อหาไดรเวอร์ที่เทียบเคียงได้ สำหรับอุปกรณ์ที่มีไดรเวอร์ระบบ การติดตั้งจะดำเนินการในโหมดอัตโนมัติ (พื้นหลัง) ดังนั้น "ที่ทางออก" หลังจากติดตั้งระบบปฏิบัติการแล้ว เราจะได้รับชุดไดรเวอร์ระบบขั้นต่ำที่จำเป็นสำหรับการทำงาน ซึ่งทำให้เราสามารถจัดระเบียบสภาพแวดล้อมการทำงานเริ่มต้นที่ใช้งานได้ แต่ควรจำไว้ว่าคุณไม่ควรจำกัดตัวเองอยู่แค่ไดรเวอร์ที่มีอยู่ในชุดแจกจ่าย เนื่องจากการทำงานเต็มรูปแบบของอุปกรณ์ส่วนใหญ่อาจต้องใช้ไดรเวอร์ที่ผู้ผลิตอุปกรณ์ให้มา

คำถามยังคงอยู่: ส่วนประกอบโหมดเคอร์เนลทั้งหมดโต้ตอบกับฮาร์ดแวร์โดยเฉพาะผ่านเลเยอร์ HAL หรือไม่ มีข้อยกเว้นหรือไม่? บนเว็บ แหล่งที่มาหลายแห่งมีไดอะแกรมซึ่งไดรเวอร์การ์ดแสดงผลโต้ตอบกับการ์ดวิดีโอราวกับว่า "โดยตรง" โดยไม่ผ่าน HAL เท่าที่ฉันจำได้ กราฟิกได้รับความสำคัญสูงสุดใน Windows บางเวอร์ชัน ดังนั้นกราฟิกจึงถูกแยกออกเป็นหมวดหมู่แยกต่างหากของอุปกรณ์ที่ทำงานโดยตรงกับ อะแดปเตอร์กราฟิกและสิ่งนี้ทำขึ้นเพื่อเร่งความเร็ว กุยระบบ

ระดับคำขอขัดจังหวะ (IRQL)

ในบรรดากลไกภายในที่สำคัญที่กำหนดการทำงานของระบบปฏิบัติการ Windows มีหัวข้อที่ค่อนข้างสำคัญสำหรับการทำความเข้าใจหลักการทำงานของไดรเวอร์ซึ่งไม่น่าที่จะข้ามไปได้ กลไกนี้เรียกว่า ระดับการร้องขอการขัดจังหวะ(Interrupt Request Level, IRQ Level, IRQL) และค่อนข้างยากที่จะเข้าใจ ดังนั้นการศึกษาเชิงลึกของมันจึงไปไกลเกินขอบเขตของเนื้อหาที่นำเสนอ อย่างไรก็ตาม ในบทความนี้ เราจะพยายามสรุป (ในอนาคต เรา จะจัดสรรบทความแยกต่างหากให้) ตรงไปตรงมา ตัวฉันเองยังสับสนเกี่ยวกับแนวคิดของ IRQL ดังนั้นฉันจะอธิบายความเข้าใจของฉันเองอย่างเป็นระบบ ทีละขั้นตอน ตามความรู้ที่ได้รับในแต่ละขั้นตอน
คำว่าขัดจังหวะเกี่ยวข้องกับฉันเสมอกับโหมดการทำงานจริงของโปรเซสเซอร์ซึ่งถ่ายโอนไปยังยุคของระบบปฏิบัติการ MSDOS ซึ่งทุกอย่างค่อนข้างง่าย: มีชุดของอินเตอร์รัปต์ 256 ชุดผ่านตารางเวกเตอร์ขัดจังหวะ การขัดจังหวะเหล่านี้บางส่วนเป็นฮาร์ดแวร์ตามลำดับ ซึ่งสร้างขึ้นโดยอิสระจากเหตุการณ์ฮาร์ดแวร์ภายนอกบางอย่าง ในขณะที่เหตุการณ์อื่นเป็นซอฟต์แวร์ ตามลำดับ สามารถเรียกได้จากรหัสแอปพลิเคชัน รายการในตารางอินเตอร์รัปต์สามารถกำหนดใหม่ได้ นั่นคือเวกเตอร์ตัวจัดการอินเตอร์รัปต์พร้อมที่จะเปลี่ยนตามขั้นตอนการประมวลผลของมันเอง ไม่มีแนวคิดเช่นระดับของคำขอขัดจังหวะทุกอย่างเรียบง่ายและชัดเจน อย่างไรก็ตาม ด้วยวิวัฒนาการของโปรเซสเซอร์และระบบปฏิบัติการ โหมดป้องกันแรกก็ปรากฏขึ้น จากนั้นจึงกลายเป็น Windows จากนั้นทุกอย่างก็เริ่มซับซ้อนขึ้นอย่างรวดเร็ว
ทันใดนั้นในเวอร์ชันแรกของ Windows 95 / NT ตารางบางประเภทก็ปรากฏขึ้น (ประกอบด้วยระดับคำขอขัดจังหวะ 32 ระดับ) ระดับที่ให้คะแนนจากต่ำสุด 0 (แบบพาสซีฟ) ถึงสูงสุด 31 (สูง):

ชื่อ ระดับ วัตถุประสงค์ ระดับ Intel x86-64
สูง ฮาร์ดแวร์ ระดับสูงสุด NMI และประเภทอื่นๆ 31
พลัง ฮาร์ดแวร์ เหตุการณ์ไฟฟ้าดับ 30
ไอพีไอ ฮาร์ดแวร์ สัญญาณอินเตอร์โปรเซสเซอร์ สัญญาณของการสื่อสารระหว่างโปรเซสเซอร์ 29
นาฬิกา ฮาร์ดแวร์ รอบการจับเวลาของระบบ 28
ประวัติโดยย่อ ฮาร์ดแวร์ การควบคุมประสิทธิภาพ Kernel profiling timer (กลไกสำหรับการวัดประสิทธิภาพของระบบ) 27
อุปกรณ์ ฮาร์ดแวร์ DIRQL (อุปกรณ์ IRQL) การขัดจังหวะฮาร์ดแวร์ของอุปกรณ์ 3-26
ส่ง โปรแกรม การดำเนินการของตัวกำหนดตารางเวลา/การเรียกขั้นตอนที่เลื่อนออกไป (DPC) 2
เอพีซี โปรแกรม การเรียกขั้นตอนแบบอะซิงโครนัส 1
เรื่อย ๆ โปรแกรม ระดับพาสซีฟ ไม่มีการหยุดชะงัก ระดับการดำเนินการรหัสโหมดผู้ใช้ปกติ 0

อย่างที่คุณเห็น มีคุณสมบัติที่น่าสนใจมากในตารางด้านบน: ทั้งระดับซอฟต์แวร์และฮาร์ดแวร์ถูกนำมารวมกัน (0-2 คือระดับซอฟต์แวร์ และ 3-31 คือระดับฮาร์ดแวร์)

IRQL เป็นแอตทริบิวต์การเขียนโปรแกรมที่เป็นกรรมสิทธิ์ซึ่งแนะนำโดยนักพัฒนาของ Microsoft กลไกนี้ไม่มีฮาร์ดแวร์รองรับจากโปรเซสเซอร์ ระบบจะจัดการการขัดจังหวะทุกประเภทที่เกิดขึ้นโดยอิสระผ่านกลไกการแมประดับการขัดจังหวะของตัวควบคุมการขัดจังหวะฮาร์ดแวร์ (PIC) และระดับซอฟต์แวร์ของตัวเองลงในตารางระดับการขัดจังหวะที่ไม่ขึ้นกับฮาร์ดแวร์ชุดเดียว

จากคำแถลงนี้ระบุว่าโมเดลเป็นของตนเอง ซอฟต์แวร์ และระดับในนั้นไม่ได้เชื่อมโยงกับข้อกำหนดฮาร์ดแวร์ใด ๆ สิ่งนี้ทำให้ระบบสามารถรวบรวมการขัดจังหวะประเภทฮาร์ดแวร์และไม่ใช่ฮาร์ดแวร์เป็นลำดับความสำคัญเดียว ระดับ IRQL ที่ต่ำกว่า (ไม่ใช่ฮาร์ดแวร์/ซอฟต์แวร์) (PASSIVE, APC, DPC/DISPATCH) ใช้เพื่อซิงโครไนซ์ระบบย่อยของซอฟต์แวร์ระบบปฏิบัติการ: ทริกเกอร์การดำเนินการกำหนดเวลา เช่น การสลับเธรดหรือการประมวลผล I/O ให้เสร็จสมบูรณ์ เรามาดูรายละเอียดกัน:

  • ลำดับที่ 0 (ต่ำสุด) IRQL (PASSIVE):คือระดับการร้องขอการขัดจังหวะทั่วไปที่งานเสร็จสิ้นในระบบปฏิบัติการ ทั้งในโหมดผู้ใช้และในโหมดเคอร์เนล รหัส (โปรแกรม) กำลังดำเนินการ ระดับที่กำหนด, สามารถถูกขัดจังหวะ (ยึดครอง) โดยอะไรก็ได้: ตัวอย่างเช่น เธรดที่ดำเนินการด้วยระดับ IRQ PASSIVE จะถูกยึดไว้โดยตัวกำหนดตารางเวลาหลังจากหมดเวลาของควอนตัมเวลาที่จัดสรรให้
  • APC และ DPC/DISPATCH IRQL เป็นระดับการขัดจังหวะของซอฟต์แวร์ที่เกี่ยวข้องกับตัวกำหนดตารางเวลา
  • IRQL ระดับ 1 (APC):ในระดับนี้ โพรซีเดอร์ APC ที่เรียกว่าถูกเรียกใช้งาน นั่นคือ โพรซีเดอร์ที่รันแบบอะซิงโครนัสในบริบทของเธรดเฉพาะ หรือกล่าวอีกนัยหนึ่งคือ จัดระเบียบ I / O แบบอะซิงโครนัส หรือแอดเดรส / รอการเปิดตัวใด ๆ (ภายนอก ทั่วโลก) วัตถุระบบ การใช้ฟังก์ชัน APC (เช่น WaitForSingleObjectEx) ในโค้ดไม่ได้นำไปสู่การเรียกใช้ฟังก์ชันทันที เธรด (ในบริบทที่ฟังก์ชันถูกเรียกใช้งาน) เข้าสู่สถานะพิเศษและมีการขัดจังหวะซอฟต์แวร์ APC แทน การเรียกใช้ฟังก์ชันอยู่ในคิวภายใน ครั้งต่อไปที่เธรดนั้นทำงาน ฟังก์ชัน APC ที่กำหนดเวลาไว้จะถูกเรียกใช้งานที่เลเยอร์ APC ดังนั้น เธรดที่ทำงานที่ชั้น APC จะไม่ได้รับคำขอจากชั้น APC ของตนเอง ซึ่งระบบใช้สำหรับดำเนินการ I/O ให้สมบูรณ์
  • IRQL ระดับ 2 (DPC/DISPATCH):
    • ใช้ในการจัดการการเรียกขั้นตอนที่เลื่อนออกไป (DPC): การเรียกขั้นตอนที่เลื่อนออกไปคือรูทีนการเรียกกลับที่ถูกเลื่อนออกไปเพื่อการดำเนินการจนกว่าจะมีการสลับไปที่ระดับ IRQL DISPATCH เกิดขึ้น โดยทั่วไป DPC จะถูกร้องขอจาก IRQL สูงเพื่อทำงานเพิ่มเติม โดยที่เวลาของ CPU ไม่สำคัญ นี่เป็นขั้นตอนที่ค่อนข้างสำคัญสำหรับการแสดง และตอนนี้ฉันจะอธิบายว่าทำไม ไดรเวอร์อุปกรณ์พยายามดำเนินการให้น้อยที่สุดเท่าที่จะทำได้ภายใน Interrupt Service Routine (ISR) ของตนเอง เพื่อไม่ให้ใช้เวลานานในระดับ DIRQL ดังนั้นจึงไม่ปิดกั้นการขัดจังหวะอื่น ๆ และไม่ทำให้ช้าลง ส่งผลให้ทั้งระบบ .

      ยิ่งระดับ IRQL สูง ความสามารถของกระบวนการก็จะยิ่งต่ำลง สิ่งนี้กระตุ้นให้นักพัฒนา ระดับสูง IRQL เพื่อดำเนินการเฉพาะที่จำเป็นที่สุด และดำเนินการอื่นๆ ทั้งหมดที่ระดับต่ำ

      หากไดรเวอร์เข้าใจว่าจำเป็นต้องมีงานเพิ่มเติมซึ่งใช้เวลาประมวลผลมาก ก็จะร้องขอ DPC และโอนงานนี้ไปให้ เมื่อ IRQL ตกลงไปที่ DISPATCH ฟังก์ชันโปรแกรมควบคุมที่เลื่อนออกไปจะถูกเรียกกลับและทำการประมวลผลส่วนที่เหลือ ด้วยการใช้อัลกอริทึมที่คล้ายกันในระดับ IRQL DISPATCH ไดรเวอร์จะใช้เวลาน้อยลงที่ระดับ DIRQL และด้วยเหตุนี้จึงลดเวลาหน่วงในการประมวลผลการขัดจังหวะของตัวเอง ดังนั้นจึงทำให้อุปกรณ์ระบบอื่นๆ ว่าง

    • ใช้เพื่อรันงานตัวกำหนดตารางเวลา: ดังที่คุณทราบ ระบบปฏิบัติการ Windows NT ใช้การทำงานหลายอย่างพร้อมกันล่วงหน้า ซึ่งหมายความว่าแต่ละกระบวนการที่ทำงานบนระบบปฏิบัติการจะได้รับการจัดสรรเพื่อดำเนินการ เวลาที่แน่นอน. เนื่องจาก IRQL ของตัวกำหนดเวลาเธรดและ DPC คือ 2 จึงสูงกว่าลำดับความสำคัญของเธรดผู้ใช้ (ดำเนินการที่ระดับ 0) ในทางกลับกัน ลำดับความสำคัญของตัวกำหนดตารางเวลาจะต่ำกว่าลำดับความสำคัญของการขัดจังหวะของฮาร์ดแวร์ (การขัดจังหวะจากอุปกรณ์) นั่นคือการขัดจังหวะของฮาร์ดแวร์อาจถูกขัดจังหวะได้

โอเค แต่ฉันยังไม่เข้าใจว่าทำไมจึงเป็นไปไม่ได้ที่จะละทิ้งระดับเหล่านี้ทั้งหมดและสร้างโมเดลคิวแบบ "แบน" หรือดำเนินการงานประเภทนี้ทั้งหมดทันที ลองจำลองสถานการณ์การทำงาน:
ลองนึกภาพโค้ดบางอย่างเช่น โปรแกรมขนาดเล็กเขียนว่า "บนเข่า" ดังนั้นเราจึงเปิดตัวเพื่อดำเนินการ ตามลำดับ กระบวนการถูกสร้างขึ้นในระบบสำหรับโปรแกรมของเรา ในบริบทที่เธรดหลักเริ่มดำเนินการ เธรดทั่วไป (โหมดผู้ใช้หรือโหมดเคอร์เนล) ทำงานที่ระดับ IRQL PASSIVE ต่ำสุด ตลอดการดำเนินการของเธรด นาฬิกา (ชิปตัวจับเวลา) จะสร้างการขัดจังหวะของตัวเองเป็นระยะเพื่อนับช่วงเวลา ซึ่งใช้เพื่อระบุให้ระบบปฏิบัติการทราบว่าได้ผ่านช่วงเวลาที่ระบุไปแล้ว ขั้นตอนการจัดการการขัดจังหวะสัญญาณนาฬิกาดำเนินการที่ระดับ IRQL CLOCK ซึ่ง (หากคุณดูที่ตาราง) มีลำดับความสำคัญสูงกว่าระดับส่วนใหญ่: ทั้งระดับ DISPATCH ซึ่งเรียกใช้ตัวกำหนดตารางเวลา และระดับ PASSIVE ซึ่งเรียกใช้โปรแกรมของเรา ดังนั้นตัวจับเวลาจะแทนที่การทำงานของทั้งตัวกำหนดตารางเวลาและโปรแกรมของเราอย่างต่อเนื่อง เมื่อแต่ละขีดของตัวจับเวลาผ่านไป รูทีนการขัดจังหวะตัวจับเวลาจะลดเวลาที่เหลือของตัวจับเวลาลง ช่วงเวลานี้ควอนตัมเวลาเธรดผู้ใช้ของเรา ในขณะที่การแบ่งส่วนเวลาของเธรดการดำเนินการลดลงเป็นศูนย์ ตัวจัดการการขัดจังหวะนาฬิกาจะสร้างการขัดจังหวะระดับ DISPATCH ซึ่งทำให้ตัวกำหนดเวลาทำงานเพื่อเลือกเธรดถัดไปที่จะดำเนินการ เมื่อสร้างอินเตอร์รัปต์ในระดับ DISPATCH ตัวจัดการอินเทอร์รัปต์ของตัวจับเวลาจะยุติการดำเนินการของโค้ด และการควบคุมจะถูกส่งกลับไปยังเคอร์เนลของระบบ เคอร์เนลค้นหาการขัดจังหวะถัดไปที่มีระดับความสำคัญสูงสุดในคิวคำขอ ซึ่งอยู่ในโหมดรอ การขัดจังหวะแต่ละครั้งจะได้รับบริการตามลำดับ เมื่ออินเตอร์รัปต์ทั้งหมดที่อยู่เหนือระดับ DISPATCH ได้รับการบริการ รูทีนการขัดจังหวะระดับ DISPATCH จะถูกดำเนินการ ตัวจัดการการขัดจังหวะนี้ประมวลผลรายการ DPC แล้วเรียกตัวกำหนดตารางเวลา ตัวกำหนดตารางเวลาตรวจพบว่าควอนตัมเวลาของเธรดปัจจุบันหมดลงแล้ว นั่นคือลดลงเหลือศูนย์ หลังจากนั้นตัวจัดกำหนดการจะดำเนินการอัลกอริทึมการตั้งเวลาเพื่อเลือกเธรดถัดไปที่จะดำเนินการ รหัสของเธรดที่ตั้งค่าให้ดำเนินการจะถูกดำเนินการเมื่อระบบลดลงถึงระดับ IRQL PASSIVE
นี่คือวิธีดำเนินการจัดลำดับความสำคัญ และตามด้วยการทำงานหลายอย่างพร้อมกันล่วงหน้า ลองนึกภาพว่าคุณลบลำดับชั้นของระดับการร้องขอการขัดจังหวะออกจากระบบ ระบบจะทำงานอย่างไรในกรณีนี้ ในสถานการณ์นี้ มันไม่ชัดเจนว่าจะดำเนินการอะไรและเมื่อใด ระบบจะดำเนินการงานที่เข้ามาทั้งหมดตามลำดับ ซึ่งจะนำไปสู่ข้อเท็จจริงที่ว่าเธรดสามารถยึดครองตัวกำหนดตารางเวลาได้อย่างง่ายดาย และด้วยเหตุนี้โดยทั่วไปจึงทำลายหรือปิดใช้งานมัลติทาสก์ที่ยึดไว้ก่อนซึ่งจะทำให้ เบื้องหลังการทำงานที่คาดเดาไม่ได้ของระบบปฏิบัติการ ดังนั้น:

IRQL คือระดับการจัดลำดับความสำคัญของฮาร์ดแวร์-ซอฟต์แวร์ที่ใช้สำหรับการซิงโครไนซ์ในระบบปฏิบัติการของตระกูล Windows กล่าวคือ ระดับ IRQL เป็นวิธีการหลักที่ใช้ในการจัดลำดับความสำคัญการดำเนินการทั้งหมดที่ดำเนินการในระบบปฏิบัติการ Windows ตลอดวงจรการทำงาน

ตามลำดับ:

IRQL ระบุลำดับความสำคัญของรหัสที่ทำงานบนโปรเซสเซอร์ที่เกี่ยวข้องกับการขัดจังหวะและเหตุการณ์อะซิงโครนัส (ฉับพลัน) อื่นๆ

วัตถุประสงค์ของระดับ IRQL ในระบบมีดังนี้:

  1. การปิดบัง: การเพิ่มระดับการขัดจังหวะทำให้คุณสามารถตัด (ปิดบัง) ระดับการขัดจังหวะของฮาร์ดแวร์พื้นฐานบนตัวควบคุม PIC ได้ สิ่งนี้ทำให้คุณสามารถละเว้นการขัดจังหวะที่เกิดขึ้นในระดับที่ต่ำกว่าได้ชั่วคราว ซึ่งจะทำให้มีเวลามากขึ้นในการดำเนินการรูทีนการขัดจังหวะของฮาร์ดแวร์ในระดับนี้
  2. การซิงโครไนซ์ฮาร์ดแวร์: การซิงโครไนซ์ข้อมูลระหว่างเธรดที่ทำงานบนโปรเซสเซอร์/คอร์ที่แตกต่างกันในระบบมัลติโปรเซสเซอร์
  3. เวลาของซอฟต์แวร์: เพื่อกำหนดเวลาที่สามารถให้บริการรูทีน APC/DPC ต่างๆ เพื่อกำหนดว่าเมื่อใดที่สามารถให้บริการแอปพลิเคชันโหมดผู้ใช้ได้

ดังนั้น ในระดับโลก กลไก IRQL ช่วยให้รูทีนย่อยของระบบปฏิบัติการสามารถ:

  • จัดการการกลับเข้าใหม่ (re-entrancy)
  • ตรวจสอบให้แน่ใจว่าสามารถทำงานต่อไปได้โดยไม่ถูกระงับ (ถูกยึดครอง) โดยกิจกรรมอื่น

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

ตกลง แต่สิ่งนี้จะส่งผลต่อไดรเวอร์อย่างไร เราทราบดีว่าไดรเวอร์สามารถอยู่ในโหมดผู้ใช้และโหมดเคอร์เนล ตามลำดับ โดยจะทำงานในโหมดผู้ใช้และในโหมดเคอร์เนล จากนี้เป็นไปตามที่:

รหัสไดรเวอร์สามารถเรียกใช้ในระดับ IRQL ที่แตกต่างกัน

และสิ่งนี้นำไปสู่ข้อสรุปที่สำคัญสองประการ:

  1. รหัสไดรเวอร์นั้นไม่สามารถขัดจังหวะและขัดจังหวะได้ เช่นเดียวกับรหัสอื่น ๆ ในระบบ สามารถถูกขัดจังหวะเมื่อใดก็ได้หลังจากสิ้นสุดการแบ่งเวลาที่จัดสรร
  2. รหัสไดรเวอร์ต้องใช้ชุดบางอย่าง ฟังก์ชั่นระบบขึ้นอยู่กับระดับ IRQL ที่ดำเนินการ

ลองนึกภาพสถานการณ์ที่โค้ดไดรเวอร์รันที่ IRQL ต่ำ แก้ไขออบเจกต์บางอย่าง (เช่น ไฟล์ file.txt ) จากนั้นโค้ดอื่นที่ IRQL สูงกว่าก็ขัดจังหวะการดำเนินการและแก้ไข file.txt เดียวกันด้วยข้อมูลที่แตกต่างกัน เมื่อการควบคุมกลับมาที่ไดรเวอร์ของเรา ตัวควบคุมจะยังคงแก้ไขไฟล์ด้วยข้อมูลของตัวเอง ซึ่งจะเป็นการเขียนทับข้อมูลที่มาจากแหล่งอื่น ดังนั้น ไฟล์จะเข้าสู่สถานะที่ไม่สอดคล้องกัน มีการแนะนำอ็อบเจ็กต์ระบบการซิงโครไนซ์ต่างๆ เพื่อแก้ปัญหาเหล่านี้ เพื่อให้โค้ดระดับเคอร์เนลแก้ไขข้อมูลบางประเภท หรือออบเจกต์ mutex จะต้องได้รับความเป็นเจ้าของล็อกก่อน

แนวคิดของไดรเวอร์

แกนหลักของระบบปฏิบัติการ Windows ไม่ได้ออกแบบมาเพื่อโต้ตอบกับอุปกรณ์ด้วยตัวเอง

ดังนั้น ข้อสรุปต่อไปนี้จากข้อความนี้จึงชัดเจน: จำเป็นต้องมีอินเทอร์เฟซแยกต่างหากสำหรับการโต้ตอบของระบบกับอุปกรณ์ บางทีอาจเป็นการผสมผสานที่ซับซ้อนของอินเทอร์เฟซต่างๆ แนวคิดไดรเวอร์ได้รับการพัฒนาเพื่อแก้ปัญหาการจับคู่และใช้ในโมเดลส่วนใหญ่ ระบบที่ทันสมัยขึ้นอยู่กับการทำงานในพื้นที่ที่อยู่ของเคอร์เนลของรหัสพิเศษที่รับประกันการโต้ตอบของเคอร์เนลระบบกับอุปกรณ์โลจิคัล / ฟิสิคัลประเภทใดก็ได้
จากการวางแนวทางทั่วไปของทรัพยากร ในบทความเราจะกล่าวถึงข้อมูลเฉพาะของไดรเวอร์ระบบปฏิบัติการ Windows เท่านั้น ดังนั้นสำหรับ ไดรเวอร์ Windowsเช่นเดียวกับไดรเวอร์ของระบบปฏิบัติการอื่น ข้อความต่อไปนี้เป็นจริง:

ไดรเวอร์ (ไดรเวอร์) - ซอฟต์แวร์ที่ระบบปฏิบัติการ (โปรแกรมผู้ใช้ เคอร์เนล และส่วนประกอบอื่นๆ) เข้าถึงการทำงานของอุปกรณ์จริงหรืออุปกรณ์โลจิคัลบางอย่าง

เหมือนกัน แต่อีกนัยหนึ่ง:

ไดรเวอร์ - ส่วนต่อประสานระหว่างรหัสโหมดผู้ใช้ รหัสโหมดเคอร์เนล และฟังก์ชันอุปกรณ์ทางกายภาพ/โลจิคัล/เสมือน

หนึ่งในคำจำกัดความข้างต้นเน้นย้ำถึงคุณลักษณะที่สำคัญของไดรเวอร์ นั่นคือความผิดพลาดที่จะคิดว่าไดรเวอร์มีปฏิสัมพันธ์กับอุปกรณ์ทางกายภาพเท่านั้น เนื่องจากไดรเวอร์ไม่จำเป็นต้องให้การเข้าถึงฟังก์ชันของฮาร์ดแวร์ใด ๆ จึงยังสามารถให้ เฉพาะฟังก์ชันซอฟต์แวร์เท่านั้น ตัวอย่างของโซลูชันดังกล่าว ได้แก่ ไดรเวอร์ที่ติดตั้งในระบบโดยโปรแกรมป้องกันไวรัส ระบบเข้ารหัสข้อมูล และระบบตรวจสอบ อัลกอริทึมทั่วไปการทำงานของไดรเวอร์ใด ๆ มีดังนี้: แอปพลิเคชันผ่านฟังก์ชั่นส่วนต่อประสานผู้ใช้พิเศษ (ใน Windows นี่คือ Win32 API) หรือคำขอ I / O เข้าถึงฟังก์ชั่นของไดรเวอร์อุปกรณ์โดยอ้อม / โดยตรง ในทางกลับกัน ไดรเวอร์จะให้การเข้าถึงคุณสมบัติการทำงานของอุปกรณ์ที่สนใจ และยังควบคุมกระบวนการโต้ตอบระหว่างคำขอแอปพลิเคชันและอุปกรณ์เอง โดยปกติแล้วผู้ขับขี่จะต้องกำหนด (อธิบาย) หลักการทั้งหมดของการโต้ตอบกับอุปกรณ์ที่ให้บริการ (ทาส, เป็นเจ้าของ) ต้องมีชุดข้อมูลเกี่ยวกับวัตถุที่จัดการ คำแนะนำ (ชุดคำสั่ง) ด้วยความช่วยเหลือซึ่ง รหัสระบบ / ผู้ใช้สามารถเริ่มต้นอุปกรณ์ได้อย่างถูกต้องและเริ่มโต้ตอบกับเขา

กำลังโหลดไดรเวอร์เมื่อเริ่มต้นระบบปฏิบัติการ

มันน่าสนใจมากที่จะเห็นว่าขั้นตอนใดของระบบปฏิบัติการที่บูตไดรเวอร์ Windows ตัวแรกเริ่มโหลดและเริ่มทำงาน? อย่างไรก็ตาม ในการนำเสนอโดยละเอียด กระบวนการนี้ค่อนข้างไม่สำคัญ และเพื่อความเข้าใจอย่างลึกซึ้ง จำเป็นต้องย้อนกลับโค้ดของคอมโพเนนต์การบู๊ตจำนวนมาก นอกเหนือจากทุกสิ่งแล้ว จำเป็นต้องคำนึงถึงประเด็นที่เกี่ยวข้องมากมาย เช่น: การบู๊ต ลำดับเนื่องจากการพึ่งพาระหว่างไดรเวอร์เนื่องจากสามารถจัดกลุ่มไดรเวอร์ออกเป็น " กลุ่มการโหลด" การโหลดไดรเวอร์นั้นสามารถแบ่งออกเป็นหลายขั้นตอน ฯลฯ ในขณะเดียวกัน ควรสังเกตว่ามีเนื้อหาจำนวนมากบนเว็บเกี่ยวกับระบบปฏิบัติการที่ล้าสมัย ดังนั้นเราจะพยายามอัปเดตกระบวนการดาวน์โหลด ไดรเวอร์ Windowsในตัวอย่างของระบบปฏิบัติการ Windows 7 (ใกล้เคียงกับฉันมากที่สุด) และสำหรับผู้เริ่มต้นการพูดคุยเกี่ยวกับองค์ประกอบหลักจะไม่เจ็บ เคอร์เนลของ Windowsมีส่วนร่วมในกระบวนการโหลดไดรเวอร์:

  • ผู้จัดการ (ผู้จัดการ) อินพุต / เอาท์พุต (ผู้จัดการ I / O)- โมดูลโหมดเคอร์เนลซึ่งเป็นส่วนหนึ่งของระบบย่อยผู้บริหารซึ่งควบคุมกระบวนการอินพุต / เอาท์พุต ให้นามธรรมของอุปกรณ์ทางกายภาพและตรรกะสำหรับแอปพลิเคชันผู้ใช้และ ส่วนประกอบของระบบที่เชื่อมโยงแอปพลิเคชันโหมดผู้ใช้กับไดรเวอร์ ควบคุมขั้นตอนของกระบวนการปฏิสัมพันธ์ของคนขับ การแลกเปลี่ยนข้อมูลทั้งหมดของผู้จัดการ I / O กับไดรเวอร์นั้นดำเนินการโดยการเรียกขั้นตอนการโทรกลับของไดรเวอร์และส่งโครงสร้างข้อมูล IRP ที่ได้มาตรฐานซึ่งอธิบายสาระสำคัญทั้งหมดของการโทรไปยังไดรเวอร์
  • ตัวจัดการ Plug-and-Play (ตัวจัดการ PnP)- โหมดเคอร์เนลและโมดูลโหมดผู้ใช้ ซึ่งเป็นส่วนหนึ่งของระบบย่อยผู้บริหาร รับผิดชอบในการเพิ่ม จดจำ ถอดอุปกรณ์ในระบบปฏิบัติการ ส่วนหนึ่งของโหมดเคอร์เนลจะโต้ตอบกับส่วนประกอบระบบและไดรเวอร์ที่เหลือในระหว่างกระบวนการติดตั้ง (บูต) ซอฟต์แวร์ที่จำเป็นในการให้บริการอุปกรณ์ในระบบ ส่วนโหมดผู้ใช้มีหน้าที่โต้ตอบกับโปรแกรมโหมดผู้ใช้ (สำหรับประสบการณ์ผู้ใช้แบบโต้ตอบ) ในสถานการณ์ที่ต้องติดตั้งไดรเวอร์ใหม่หรือปรับพารามิเตอร์การทำงานในไดรเวอร์ที่มีอยู่ จัดการการกระจายทรัพยากรฮาร์ดแวร์ในระบบ รู้วิธีการจดจำอุปกรณ์ ตอบสนองต่อการเชื่อมต่อ / ตัดการเชื่อมต่อ โหลดไดรเวอร์ที่เหมาะสมเมื่อตรวจพบอุปกรณ์ใหม่
  • ผู้จัดการฝ่ายควบคุมบริการ (SCM)- กระบวนการของระบบที่รับผิดชอบในการสร้าง ลบ เริ่มต้นและหยุดบริการและไดรเวอร์ระบบปฏิบัติการ นอกจากนี้ยังมี: การทำงานของบันทึกเหตุการณ์, การสนับสนุนสำหรับเทคโนโลยีการเรียกขั้นตอนระยะไกล (RPC);

ผู้จัดการสองคนนี้ ซึ่งก็คือผู้จัดการ I/O และผู้จัดการ PnP มีปฏิสัมพันธ์ซึ่งกันและกันอย่างแข็งขัน
ตอนนี้เราจะอธิบายขั้นตอนการโหลดระบบปฏิบัติการ แต่เราจะไม่ทำในรูปแบบที่เราคุ้นเคย แต่จะจดประเด็นสำคัญโดยย่อเกี่ยวกับการทำงานของส่วนประกอบที่อธิบายไว้ของระบบปฏิบัติการพร้อมไดรเวอร์:

  1. Bootmgr(.efi) โหลดโมดูล winload(.efi) และส่งผ่านการควบคุมไปยังมัน
  2. Winload(.efi) สแกนกลุ่มรีจิสทรี HKEY_LOCAL_MACHINE\System\บริการและรับรายการไดรเวอร์ทั้งหมดที่ติดตั้งบนระบบ กลุ่มรีจิสทรีนี้ประกอบด้วยคีย์ที่แมปกับไดรเวอร์เป้าหมาย และมีการตั้งค่าต่างๆ ที่เกี่ยวข้องกับไดรเวอร์ เช่น Group , Start , Type , LoadOrderGroup , DependOnGroup , DependOnServices ซึ่งกำหนดเกณฑ์การโหลดไดรเวอร์บางอย่าง
  3. Winload(.efi) โหลดไดรเวอร์ที่มีความสำคัญต่อระยะเริ่มต้นของการโหลด/การทำงานของระบบปฏิบัติการ เช่น ไดรเวอร์ตัวควบคุมไดรฟ์ ไดรเวอร์ระบบไฟล์ เห็นได้ชัดว่าไดรเวอร์ดังกล่าวมีลำดับความสำคัญสูงสุด เนื่องจากไดรเวอร์เหล่านี้สร้างพื้นฐานสำหรับการโหลดไดรเวอร์อื่น ๆ ดังนั้น ด้วยเหตุผลเหล่านี้และเหตุผลอื่น ๆ ไดรเวอร์เหล่านี้จึงต้องอยู่ในหน่วยความจำเมื่อการควบคุมเวลาถูกถ่ายโอนไปยังเคอร์เนล ดังนั้นจึงมีการทำเครื่องหมายด้วยประเภทพิเศษ SERVICE_BOOT_START ไดรเวอร์สำหรับ ขั้นตอนนี้เริ่มดาวน์โหลดขึ้นอยู่กับกลุ่มที่พวกเขาอยู่
  4. Winload(.efi) โหลดเคอร์เนลโดยตรงจาก ntoskrnl.exe และส่งการควบคุมไปยังเคอร์เนลนั้น
  5. เคอร์เนลจะโหลด I/O Manager และ PnP Manager
  6. ผู้จัดการ I/O สร้างแค็ตตาล็อกส่วนกลาง ไดเร็กทอรีนี้ใช้เพื่อลงทะเบียนวัตถุอุปกรณ์ในภายหลัง
  7. ตัวจัดการ PnP เริ่มต้นไดรเวอร์ที่โหลดไว้ในหน่วยความจำแล้วในขั้นตอนก่อนหน้า (ประเภท SERVICE_BOOT_START) โดยเรียกขั้นตอน DriverEntry ของไดรเวอร์แต่ละตัว ในขั้นตอนนี้ ไดรเวอร์ที่เกี่ยวข้องจะถูกโหลดด้วย
  8. ตัวจัดการ PnP สร้างแผนผังอุปกรณ์ของระบบ สำรวจจากรูท และโหลดไดรเวอร์อุปกรณ์ที่ยังไม่ได้โหลด
  9. ตัวจัดการ PnP จะโหลดไดรเวอร์อุปกรณ์ที่เหลือที่ไม่ได้โหลด โดยไม่คำนึงถึงค่าของพารามิเตอร์ Start ไดรเวอร์เหล่านี้ส่วนใหญ่เป็นประเภท SERVICE_DEMAND_START
  10. ผู้จัดการ PnP โหลดไดรเวอร์การทำงานขั้นสูง ไดรเวอร์เหล่านี้ประกอบด้วยไดรเวอร์อะแดปเตอร์วิดีโอ ไดรเวอร์อุปกรณ์ภายนอก ไดรเวอร์สแต็ก TCP/IP ไดรเวอร์ดังกล่าวเป็นประเภท SERVICE_SYSTEM_START
  11. เคอร์เนลโหลด Session Manager Subsystem Service (SMSS) ซึ่งจะโหลด Service Control Manager (SCM) SCM สแกนกลุ่มรีจิสทรี ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services) และตามข้อมูลที่ได้รับ ติดตั้งฐานข้อมูลภายในของบริการ/ไดรเวอร์ สร้างอินเทอร์เฟซการเขียนโปรแกรมสำหรับการให้บริการบริการ/ไดรเวอร์ที่ติดตั้ง SCM โหลดไดรเวอร์ "autostart" ที่ไม่ใช่ PnP (ประเภท SERVICE_AUTO_START) และไดรเวอร์ใดๆ ที่ไดรเวอร์เหล่านั้นใช้

จากอัลกอริทึมทั้งหมดนี้สำหรับการโหลดไดรเวอร์ เราจำเป็นต้องเข้าใจกฎพื้นฐานต่อไปนี้: สามารถโหลดไดรเวอร์ได้ (ขึ้นอยู่กับระยะ / คลาสของไดรเวอร์) โดยใช้ตัวจัดการ PnP หรือใช้ SCM แต่ตัวจัดการ I / O มีส่วนร่วมอย่างแข็งขัน ในขั้นตอนการทำงานของไดรเวอร์

โครงสร้างไดรเวอร์ Windows

ไดรเวอร์อาจมีลักษณะอย่างไรในแง่ของโครงสร้าง มันเป็นโปรแกรมพิเศษบางประเภทที่จัดในลักษณะเฉพาะเจาะจงหรือไม่? ฉันก็เคยคิดอย่างนั้นอย่างไร้เดียงสาเช่นกัน แต่ถ้าคุณคิดเกี่ยวกับมัน ทำไมนักพัฒนาระบบปฏิบัติการถึงต้องทำให้ชีวิตของพวกเขายุ่งยากและคิดค้นรูปแบบพิเศษใหม่ของอิมเมจไฟล์ปฏิบัติการสำหรับส่วนประกอบนิวเคลียร์บางอย่าง มันง่ายกว่ามากที่จะดัดแปลงอันเก่าซึ่งได้รับการดีบั๊กและพิสูจน์แล้วร้อยครั้ง

ไดรเวอร์คือ "ไลบรารีโหมดเคอร์เนล" ชนิดหนึ่ง ซึ่งเป็นเรื่องปกติ ไฟล์ DLLซึ่งมีส่วนหัว PE (struct IMAGE_NT_HEADERS , substructure OptionalHeader) มีค่าของฟิลด์ Subsystem = 1 (IMAGE_SUBSYSTEM_NATIVE)

สามารถตั้งค่าประเภทระบบย่อยได้ที่บิลด์ โมดูลปฏิบัติการ. ระบบย่อยดั้งเดิมนั้นเป็นเรื่องปกติสำหรับแอปพลิเคชันที่ทำงานตามกฎอื่นที่ไม่ใช่ระบบดั้งเดิม: ในขั้นตอนของการเตรียมอิมเมจสำหรับการดำเนินการ พวกเขาไม่จำเป็นต้องเริ่มต้นระบบย่อย Win32 เหนือสิ่งอื่นใด ระบบย่อยแบบเนทีฟใช้สำหรับโค้ดโหมดเคอร์เนล ซึ่งเป็นไดรเวอร์เกือบทั้งหมด

โดยการเปรียบเทียบกับ DLL เราสามารถคิดง่ายๆ ว่าโปรแกรมควบคุมเป็นชุดของขั้นตอน (เรียกโดยแอปพลิเคชันภายนอก) ซึ่งแต่ละชุดได้รับการออกแบบมาเพื่อจัดการกับประเภทการเรียกไปยังโปรแกรมควบคุมเฉพาะ

มาพูดนอกเรื่องเล็กน้อยและพูดคุยเกี่ยวกับแนวคิดเช่นวัตถุ ความจริงก็คือกระบวนการทำงานทั้งหมดของไดรเวอร์ Windows เช่นเดียวกับโมดูลอื่น ๆ ของระบบปฏิบัติการขึ้นอยู่กับโครงสร้างข้อมูลระบบที่หลากหลาย โครงสร้างเหล่านี้ได้รับการจัดการโดยเคอร์เนล และสามารถมีเธรด เหตุการณ์ คำขอ I/O อุปกรณ์ และเอนทิตีอื่นๆ

  • วัตถุ บล็อกข้อมูลที่ประกอบด้วยบันทึกคุณสมบัติของเอนทิตีเฉพาะของระบบปฏิบัติการ จัดการโดยผู้มอบหมายงาน (ผู้จัดการ) ของวัตถุ วัตถุจำนวนมากมีคำอธิบาย (ตัวอธิบาย) ที่ทำให้วัตถุพร้อมใช้งานสำหรับแอปพลิเคชัน
  • โครงสร้างข้อมูล บล็อกข้อมูลที่ประกอบด้วยบันทึกคุณสมบัติของเอนทิตีเฉพาะของระบบปฏิบัติการ จัดการโดยเคอร์เนล แตกต่างจากวัตถุ แต่ (เนื่องจากความเฉื่อย) จะเรียกว่าวัตถุ

ด้วยเหตุนี้โครงสร้างภายในทั้งหมดของระบบปฏิบัติการ Windows จึงถูกเรียกว่าวัตถุ
ตอนนี้กลับไปที่ขั้นตอนของไดรเวอร์ ในความเป็นจริงสิ่งที่เรียกว่า "ขั้นตอน" ของไดรเวอร์คือวัตถุ COM เรียกกลับที่ประมวลผลเหตุการณ์ที่มาจากวัตถุโครงสร้างพื้นฐานของระบบปฏิบัติการที่สอดคล้องกัน กล่าวกันว่าไดรเวอร์จัดเตรียมเคอร์เนลระบบปฏิบัติการด้วย COM อินเทอร์เฟซที่ระบุโดยชุดของขั้นตอนที่ดำเนินการโดยไดรเวอร์ การส่งออกนั่นคือการเผยแพร่ (ประกาศ) ของขั้นตอนไดรเวอร์สำหรับการเข้าถึงเพิ่มเติมจากภายนอกดำเนินการโดยการลงทะเบียนในขั้นตอนไดรเวอร์หลัก (มาตรฐานสำหรับไดรเวอร์ทั้งหมด) ที่เรียกว่า DriverEntry

วัตถุประสงค์หลักของฟังก์ชัน DriverEntry คือเพื่อให้นักพัฒนาไดรเวอร์นำไปใช้ในการเติมวัตถุ (ระเบียน struct) ของไดรเวอร์ด้วยตัวชี้ไปยังขั้นตอนภายในของไดรเวอร์ต่างๆ ที่ให้การทำงานอย่างใดอย่างหนึ่ง ในขั้นตอน DriverEntry คุณสามารถตั้งค่า (เปลี่ยน) ชื่อของออบเจกต์อุปกรณ์ ซึ่งจากนั้นแอปพลิเคชันจะใช้เพื่อเปิดการจัดการอุปกรณ์และส่งแพ็กเก็ตคำขอ I/O (IRP)

จริง ๆ แล้ว ฟังก์ชัน DriverEntry เป็นฟังก์ชันเริ่มต้นส่วนกลาง และทำงานเพียงครั้งเดียวระหว่างการโหลดไดรเวอร์ ฟังก์ชันนี้อาจเรียบง่ายที่สุดเท่าที่จะเป็นไปได้ หรือมีฟังก์ชันขั้นสูง (รูทีนย่อยเพิ่มเติม) เช่น การสร้างวัตถุอุปกรณ์เพิ่มเติม การสำรวจอุปกรณ์ ขั้นตอนเพิ่มเติมของการกำหนดค่า และการเริ่มต้นอุปกรณ์
หลังจากเผยแพร่ฟังก์ชันของตัวเองแล้ว ไดรเวอร์จะกลายเป็นเคอร์เนล "ที่มองเห็นได้" ของระบบปฏิบัติการ เพื่อไม่ให้ทฤษฎีที่ซับซ้อนอยู่แล้วซับซ้อน เราจะถือว่าจากมุมมองของเคอร์เนลของ Windows อุปกรณ์ใดๆ เป็นนามธรรมประเภท "อุปกรณ์เสมือน" ที่ทำงานด้วยชุดคำสั่งมาตรฐานและสามารถเข้าถึงได้ผ่านอินเทอร์เฟซภายใน . ดังกล่าวข้างต้นในเคอร์เนลของระบบปฏิบัติการ Windows มีโมดูลพิเศษของระบบผู้บริหารที่เรียกว่า ผู้จัดการ I/Oซึ่งมีอินเทอร์เฟซการทำงานร่วมกันเดียวสำหรับไดรเวอร์โหมดเคอร์เนลทั้งหมด รวมถึงไดรเวอร์อุปกรณ์จริง ไดรเวอร์อุปกรณ์เชิงตรรกะ และไดรเวอร์ระบบไฟล์ ดังนั้นระบบเคอร์เนล I/O จะจัดการไดรเวอร์ หรืออาจกล่าวได้ว่าไดรเวอร์ใช้อินเทอร์เฟซตัวจัดการ I/O เพื่อทำงานในระบบปฏิบัติการ ในทางกลับกัน ไดรเวอร์ให้การแปลง (การแปลง) ของ "คำสั่งมาตรฐาน" ที่มาจากระบบปฏิบัติการเป็นคำสั่งที่ "เข้าใจ" โดยอุปกรณ์ที่ควบคุมโดยมัน (ถ้ามี) และในทางกลับกัน ตัวจัดการ I/O กำหนดชุด (ชุด) ของรูทีนที่สามารถใช้งานในไดรเวอร์ได้เนื่องจาก:

ไดรเวอร์ประกอบด้วยชุดของรูทีนการเรียกกลับที่ให้ขั้นตอนต่างๆ ของกระบวนการ I/O

เพื่อความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับฟังก์ชันการทำงานของโปรแกรมควบคุม เรามาอธิบายขั้นตอนทั่วไปของโปรแกรมควบคุมหลักกัน:

ที่จริงแล้วเมื่อดูที่ไดอะแกรมด้านบนจะชัดเจนว่าการโต้ตอบประเภทใด ได้แก่ กลุ่มของขั้นตอน ไดรเวอร์ Windows ที่เป็นนามธรรมควรนำไปใช้ มาดูขั้นตอนต่อไปนี้:

  • การเริ่มต้น - ตัวจัดการ I/O เริ่มขั้นตอนการเริ่มต้น (เรียกว่า DriverEntry) ซึ่งมีจุดประสงค์เพื่อดำเนินการกับ ตั้งค่าเริ่มต้นวัตถุไดรเวอร์ ลงทะเบียนรูทีนไดรเวอร์อื่น ๆ ทั้งหมด กำหนดค่าสลาฟ และดำเนินการอื่น ๆ ในนามของผู้พัฒนา
  • เพิ่มอุปกรณ์ - เพิ่มวัตถุอุปกรณ์ (ทางเลือก) ในขั้นตอนนี้ โดยทั่วไปแล้วไดรเวอร์จะสร้างวัตถุอุปกรณ์สำหรับแต่ละอุปกรณ์ที่ไดรเวอร์ให้บริการ โดยทั่วไปใช้สำหรับไดรเวอร์ Plug-and-Play
  • การประมวลผล - ชุดของขั้นตอนการจัดส่ง (การประมวลผลของสถานะต่างๆ) การเปิด การปิด การอ่าน การเขียนไปยังอุปกรณ์ สถานะกำลังการประมวลผล เหตุการณ์ PnP และสถานะของระบบ ตลอดจนการโต้ตอบประเภทอื่นๆ ได้อธิบายไว้ในขั้นตอนการจัดส่ง อันที่จริงแล้ว ขั้นตอนเหล่านี้เป็นขั้นตอนหลัก เนื่องจากการดำเนินการ I/O ทั่วไปจะได้รับการประมวลผลผ่านขั้นตอนการจัดส่ง
  • การเริ่มต้น (เริ่มต้น) I/O เป็นขั้นตอนที่สองของการประมวลผลคำขอ I/O ไปยังอุปกรณ์ โดยเริ่มต้น I/O ของอุปกรณ์โดยตรง ขั้นตอนนี้สามารถใช้เพื่อเริ่มการถ่ายโอนข้อมูลไปยัง/จากอุปกรณ์
  • ขั้นตอนบริการขัดจังหวะ - เมื่ออุปกรณ์สร้างการขัดจังหวะ ตัวจัดการการขัดจังหวะจะถ่ายโอนการควบคุมไปยังขั้นตอนนี้
  • การจัดการการโทรตามขั้นตอนที่รอการตัดบัญชี - รูทีน DPC จะเข้าควบคุมการจัดการการขัดจังหวะจำนวนมากหลังจากดำเนินการ ISR การเรียกโพรซีเดอร์ที่เลื่อนออกไปจะทำงานที่ระดับ IRQL (DPC/DISPATCH) ที่ต่ำกว่าโพรซีเดอร์ ISR เอง มีการใช้อัลกอริทึมที่คล้ายกันเพื่อหลีกเลี่ยงการบล็อกการขัดจังหวะอื่น ๆ
  • I/O Completion Routine - โปรแกรมควบคุมหลายระดับอาจมี I/O Completion Routines ที่แจ้งการเสร็จสิ้นการประมวลผล IRP โดยโปรแกรมควบคุมระดับต่ำ
  • ขั้นตอนการยกเลิก I/O - หากการดำเนินการ I/O สามารถขัดจังหวะได้ คนขับอาจกำหนดขั้นตอนดังกล่าวตั้งแต่หนึ่งขั้นตอนขึ้นไป เมื่อไดรเวอร์ได้รับ IRP สำหรับคำขอ I/O ที่สามารถยกเลิกได้ จะกำหนดขั้นตอนการยกเลิก IRP และ IRP จะผ่านขั้นตอนการประมวลผลต่างๆ ซึ่งขั้นตอนนั้นสามารถเปลี่ยนหรือลบออกได้หากการดำเนินการปัจจุบันไม่สามารถยกเลิกได้
  • รูทีนการส่งด่วน - ไดรเวอร์ที่ใช้ตัวจัดการแคชอย่างหนัก เช่น ไดรเวอร์ระบบไฟล์ โดยทั่วไปจะมีรูทีนที่คล้ายกันเพื่อให้เคอร์เนลข้ามอัลกอริทึมการจัดการ I/O ทั่วไป
  • ขั้นตอนการยกเลิกการโหลดต้องดำเนินการในทุกไดรเวอร์ที่ทำงาน (ว่าง/ยืม) กับทรัพยากรระบบ เพื่อให้ I/O Manager ยกเลิกการโหลดไดรเวอร์จากหน่วยความจำ
  • ขั้นตอนการแจ้งเตือนการปิดเครื่อง - อนุญาตให้ไดรเวอร์ปล่อยทรัพยากรที่ถูกครอบครองทั้งหมดเมื่อระบบปิดตัวลง

เห็นได้ชัดว่าในกระบวนการพัฒนาไดรเวอร์ Windows ไม่จำเป็นต้องดำเนินการตามขั้นตอนทั้งชุดที่อธิบายไว้ข้างต้น ไดรเวอร์แต่ละตัวจะไม่ซ้ำกัน และผู้พัฒนามีอิสระที่จะจัดเตรียมชุดการใช้งานของตนเองที่สนับสนุนโดยไดรเวอร์ เมื่อไดรเวอร์ถูกโหลดเข้าสู่ระบบโดยใช้ตัวจัดการ PnP หรือ SCM ตัวจัดการ I/O จะสร้างอ็อบเจ็กต์ไดรเวอร์ในเนมสเปซและเรียกรูทีนการเริ่มต้นของไดรเวอร์ (โดยปกติคือ DriverEntry) ซึ่งดำเนินการขั้นตอนการเริ่มต้นเพิ่มเติม

วัตถุไดรเวอร์แสดงภาพของไดรเวอร์ที่โหลดในหน่วยความจำเคอร์เนล และระบบควบคุมไดรเวอร์ผ่านวัตถุนี้

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

  • ไดรเวอร์ PnP สร้างวัตถุอุปกรณ์ผ่านรูทีนการเพิ่มอุปกรณ์เมื่อผู้จัดการ PnP แจ้งให้พวกเขาทราบว่ามีอุปกรณ์ที่พวกเขาจัดการอยู่
  • ไดรเวอร์ที่ไม่ใช่ PnP สร้างวัตถุอุปกรณ์เมื่อผู้จัดการ I/O เรียกรูทีนการกำหนดค่าเริ่มต้น

เมื่อสร้างวัตถุประเภท "อุปกรณ์" (อุปกรณ์) ไดรเวอร์จำเป็นต้องกำหนด วัตถุนี้ชื่อ. วัตถุที่สร้างขึ้นใหม่นี้จะถูกวางไว้ในเนมสเปซ ผู้จัดการวัตถุ(ตัวจัดการวัตถุ) ซึ่งเหมือนกับตัวจัดการ I/O (ตัวจัดการ) เป็นส่วนหนึ่งของระบบย่อยการบริหารเคอร์เนล ตัวจัดการออบเจกต์ได้รับการออกแบบมาเพื่อรักษาฐานข้อมูลของทรัพยากรระบบปฏิบัติการทั้งหมดที่แสดงเป็นอ็อบเจ็กต์ ชื่อออบเจกต์สามารถกำหนดได้อย่างชัดเจนโดยไดรเวอร์เอง หรือสร้างขึ้นโดยอัตโนมัติโดยผู้จัดการ I/O ตามแบบแผน วัตถุอุปกรณ์ต้องอยู่ในไดเรกทอรี \Device ของเนมสเปซของตัวจัดการวัตถุ ซึ่งไม่สามารถเข้าถึงแอปพลิเคชันผ่าน Win32 API และเพื่อให้วัตถุ "อุปกรณ์" พร้อมใช้งานสำหรับแอปพลิเคชัน ไดรเวอร์จะต้องสร้างใน \GLOBAL?? ลิงก์สัญลักษณ์ไปยังชื่อของวัตถุนี้ในไดเร็กทอรี \Device ไดรเวอร์ที่ไม่ใช่ Plug-and-Play และระบบไฟล์มักจะสร้างลิงก์สัญลักษณ์ด้วยชื่อที่รู้จักกันดี (เช่น \Device\VMwareKbdFilter) หลังจากดำเนินการตามรายการทั้งหมดแล้ว ไดรเวอร์จะ "มองเห็นได้" ในระบบและพร้อมใช้งานสำหรับการโทรโดยแอปพลิเคชันของผู้ใช้

ปฏิสัมพันธ์ของคนขับ

โปรแกรมผู้ใช้สามารถโต้ตอบกับไดรเวอร์ในระบบได้อย่างไร? มีสองวิธีในการทำเช่นนี้:

  1. โดยนัย - เรียกใช้ฟังก์ชัน Win32 API ทั่วไป
  2. Explicit -- คำขอ I/O โดยตรงไปยังไดรเวอร์

ในกรณีแรกทุกอย่างค่อนข้างง่ายใน โปรแกรมประยุกต์ฟังก์ชัน Win32 API ทั่วไปบางอย่างถูกเรียก (เช่น CreateFile) ซึ่งขึ้นอยู่กับวัตถุเป้าหมาย (ไฟล์ ไดเร็กทอรี) สามารถเรียกใช้ฟังก์ชันการแลกเปลี่ยนกับไดรเวอร์ในห่วงโซ่ของการโทรได้ ในความเป็นจริง ในกรณีนี้ โค้ดแอปพลิเคชันไม่ได้ตั้งค่าให้ตัวเองทำงานโต้ตอบกับไดรเวอร์ใด ๆ เพียงตามสายการเรียกโพรซีเดอร์ ในขั้นตอนหนึ่ง การดำเนินการจะเข้าสู่โหมดเคอร์เนล และฟังก์ชันไดรเวอร์จะถูกเรียกที่นั่น ทั้งหมดนี้ยังคงถูกซ่อนไว้จากผู้พัฒนา แต่สามารถติดตามการโต้ตอบโดยใช้เครื่องมือดีบั๊กได้
กรณีที่สองน่าสนใจกว่า มันเกิดขึ้นเมื่อการเรียกใช้ไดรเวอร์ไม่ได้หมายถึงการโทรทางอ้อม (โดยการเรียกใช้ฟังก์ชันทั่วไป) แต่เป็นการถ่ายโอนโดยใช้ฟังก์ชันพิเศษ (เช่น DeviceIoControl) ของคำขอควบคุม I / O ที่เรียกว่า ซึ่งจะเริ่มต้นการก่อตัวของบล็อกข้อมูลที่เรียกว่าแพ็กเก็ตคำขอ I / O

I/O Request Packet (IRP) เป็นโครงสร้างข้อมูลเคอร์เนลของ Windows ที่มีข้อมูลที่อธิบายถึงคำขอ I/O

อย่างเป็นทางการ IRP เป็นแพ็คเกจ แต่ในความเป็นจริงมันเป็นวัตถุเคอร์เนลนั่นคือโครงสร้างข้อมูล (บล็อก) พร้อมชุดของขั้นตอนสำหรับตัวจัดการ I / O ซึ่งให้การแลกเปลี่ยนข้อมูลระหว่างโปรแกรมและไดรเวอร์หรือระหว่าง คนขับและคนขับ ดังที่เราได้กล่าวไปแล้ว สถาปัตยกรรมของ Windows ถูกสร้างขึ้นในลักษณะที่ไม่อนุญาตให้มีการโต้ตอบโดยตรงระหว่างโปรแกรมโหมดผู้ใช้และไดรเวอร์ ดังนั้นการแลกเปลี่ยนดังกล่าวจึงลดลงเหลือเพียงการส่งรหัส IOCTL โดยโปรแกรม ซึ่งนำไปสู่ ผู้จัดการ I/O สร้างแพ็กเก็ตคำขอ IRP เป็นผู้จัดการ I/O ซึ่งมีหน้าที่รับผิดชอบในการโต้ตอบกับไดรเวอร์ ซึ่งเป็นผู้ดำเนินการ IRP ผู้จัดการ I/O ได้รับคำขอ I/O จากโปรแกรมผู้ใช้ จากนั้นสร้าง IRP และส่งต่อไปยังไดรเวอร์ที่เหมาะสม
แพ็คเกจ IRP ประกอบด้วยสองส่วน:

  • ส่วนถาวร
  • สแต็กตำแหน่ง I/O

ในส่วนค่าคงที่ IRP ประกอบด้วยรหัสฟังก์ชันหลักและ (ไม่เสมอไป) รอง старшиеоыо: irp_mj_create, irp_mj_close, irp_mj_read, irp_mj_write, irp_mj_cleanup, irp_mj_device_control, irp_mj_internal_device_control แพ็คเกจยังมีสแต็กตำแหน่ง I/O ซึ่งเป็นโครงสร้าง IO_STACK_LOCATION พิเศษที่มีพารามิเตอร์บางอย่าง: นี่คือชุดของอุปกรณ์ที่จะประมวลผลแพ็กเก็ต IRP นี้ ยิ่งกว่านั้น แพ็กเก็ตนี้จะถูกส่งตามลำดับจากอุปกรณ์หนึ่งไปยังอีกอุปกรณ์หนึ่งตามสแต็ก การจัดวางสแต็กมากกว่าหนึ่งตำแหน่งบ่งชี้ว่าไดรเวอร์หลายตัวสามารถจัดการ IRP ได้ "เซลล์สแต็ก" ของ IRP ได้รับการออกแบบมาเพื่อเก็บข้อมูล "ตัวแปร" เมื่อแพ็กเก็ต IRP เคลื่อนที่ผ่านสแต็กไดรเวอร์ IRP จะผ่านขั้นตอนที่เผยแพร่ของไดรเวอร์แต่ละตัว ซึ่งแต่ละขั้นตอนจะดึงข้อมูลที่ต้องการจากตำแหน่งสแต็กตำแหน่ง I/O "ของมัน" ขั้นตอนของไดรเวอร์เรียกตามธรรมเนียมว่า "ขั้นตอนการโทรกลับ" ดังที่เราได้กล่าวไปแล้ว ฟังก์ชันการเริ่มต้นของ DriverEtnry จะบอกเคอร์เนล (เผยแพร่) ชื่อของโพรซีเดอร์เหล่านี้ และในภายหลังเคอร์เนลเองจะเรียกโพรซีเดอร์นี้หรือโพรซีเดอร์นั้นภายใต้สถานการณ์บางอย่าง
ซึ่งแตกต่างจากโปรแกรมมาตรฐาน ไดรเวอร์ไม่ใช่กระบวนการแบบดั้งเดิมที่มีพื้นที่ที่อยู่ของตัวเองและไม่มีเธรดของการดำเนินการ ฟังก์ชันไดรเวอร์จะดำเนินการในบริบทของเธรดและกระบวนการที่ถูกเรียกใช้แทน บริบท (พื้นที่ดำเนินการโค้ด) ของไดรเวอร์ขึ้นอยู่กับว่าใครกำลังเรียก (เรียก) ไดรเวอร์ สามารถเริ่มการอุทธรณ์ได้:

  1. โปรแกรมแอ็พพลิเคชัน (โปรแกรมโหมดผู้ใช้) ในกรณีนี้ จะทราบบริบทการดำเนินการของไดรเวอร์อย่างแน่นอน และตรงกับบริบทของโปรแกรมแอปพลิเคชัน
  2. ไดรเวอร์อื่น (บุคคลที่สาม) ในกรณีนี้ บริบทการดำเนินการจะกำหนดได้ยากขึ้น อาจทราบหรือสุ่มก็ได้ ขึ้นอยู่กับบริบทการดำเนินการของฟังก์ชันไดรเวอร์ที่เรียกใช้
  3. การหยุดชะงักของฮาร์ดแวร์/ซอฟต์แวร์ ในกรณีนี้ บริบทการดำเนินการเป็นแบบสุ่ม เนื่องจากการขัดจังหวะ (และดังนั้น การสลับไปใช้รหัสไดรเวอร์) สามารถเกิดขึ้นได้เมื่อมีการดำเนินการรหัสใด ๆ ในระบบปฏิบัติการ

อีกครั้ง ซึ่งแตกต่างจากโปรแกรมมาตรฐาน ไดรเวอร์ไม่สามารถเรียกใช้ฟังก์ชัน Win32 API มาตรฐานได้ มันสามารถทำงานบนฟังก์ชันที่มีอยู่ในเคอร์เนลที่ขึ้นต้นด้วยคำนำหน้าเท่านั้น เช่น.. , Hal.. , Io.. , Ke.. , Ks.. , อืม.. , อบ.. , ปอ.. , ปล.. , Rtl.. , Se.. , Zw.. และอื่นๆ

ประเภท (ประเภท) ของไดรเวอร์ Windows

ในกระบวนการวิวัฒนาการและตามด้วยความซับซ้อนของแนวคิดไดรเวอร์ ไดรเวอร์เริ่มถูกแบ่งออกเป็นหมวดหมู่ (หรือประเภท) ขึ้นอยู่กับวัตถุประสงค์ นี่คือรายการหลัก:

  • ไดรเวอร์คลาส(ไดรเวอร์คลาส) - ไดรเวอร์ที่พัฒนาโดย Microsoft สำหรับอุปกรณ์บางประเภท
  • ไดรเวอร์ระบบไฟล์(ไดรเวอร์ระบบไฟล์) - ไดรเวอร์ที่ใช้งาน ระบบไฟล์บนสื่อต่างๆ
  • ไดรเวอร์ดั้งเดิม(ไดรเวอร์รุ่นเก่า) - "ล้าสมัย" (โครงสร้างที่เข้ากันได้กับ OS เวอร์ชันเก่ากว่า) ไดรเวอร์โหมดเคอร์เนลที่ควบคุมอุปกรณ์สลาฟโดยตรงอย่างอิสระโดยไม่มีไดรเวอร์อุปกรณ์เพิ่มเติม ทำไมพวกเขาถึงมีชื่อเช่นนี้? เนื่องจากเป็นไดรเวอร์ประเภทหนึ่งที่ได้รับการเก็บรักษาไว้จากระบบปฏิบัติการ Windows NT เวอร์ชันแรก
  • ไดรเวอร์บัส - ไดรเวอร์ที่ให้การทำงานของบัสคอมพิวเตอร์ (ISA, PCI, USB, IEEE1394 และอื่น ๆ )
  • ไดรเวอร์ตัวกรอง(ไดรเวอร์ตัวกรอง) - ไดรเวอร์ที่ใช้ในการตรวจสอบ / เปลี่ยนลอจิกของไดรเวอร์อื่นโดยทำงานกับข้อมูลที่ส่งผ่าน
    • ไดรเวอร์ตัวกรองยอดนิยม(ไดรเวอร์ตัวกรองด้านบน) - ประเภทย่อยของไดรเวอร์ตัวกรองที่อยู่เหนือไดรเวอร์การทำงานในสแต็ก คำขอทั้งหมดผ่านไดรเวอร์ตัวกรองด้านบน ซึ่งหมายความว่าสามารถเปลี่ยนแปลงและ/หรือกรองข้อมูลไปยังไดรเวอร์ที่ใช้งานได้ จากนั้นอาจไปที่อุปกรณ์ ตัวอย่างจะเป็นไดรเวอร์ตัวกรองที่ตรวจสอบ/กรองทราฟฟิก เข้ารหัส/สกัดกั้นคำขออ่าน/เขียน ไดรเวอร์ดังกล่าวใช้ในไฟร์วอลล์
    • ไดรเวอร์ตัวกรองด้านล่าง(ไดรเวอร์ตัวกรองด้านล่าง) - ประเภทย่อยของไดรเวอร์ตัวกรองซึ่งอยู่ด้านล่างไดรเวอร์การทำงานในสแต็ก ตามกฎแล้ว คำขอที่ผ่านไดรเวอร์ตัวกรองที่ต่ำกว่าดังกล่าวน้อยกว่าไดรเวอร์ตัวกรองอื่นๆ เนื่องจากคำขอส่วนใหญ่ดำเนินการและเสร็จสิ้นโดยไดรเวอร์การทำงานเอง
  • ไดรเวอร์ที่ใช้งานได้(ไดรเวอร์ฟังก์ชั่น) - ไดรเวอร์ที่ทำงานอย่างอิสระและกำหนดทุกด้านที่เกี่ยวข้องกับอุปกรณ์
  • ไดรเวอร์ PnP (ไดรเวอร์ PnP) - ไดรเวอร์ที่รองรับเทคโนโลยี Plug-and-Play
  • มินิไดรเวอร์ (มินิพอร์ต, มินิคลาส)(ไดรเวอร์มินิพอร์ต, ไดรเวอร์มินิ, ไดรเวอร์มินิคลาส) - ไดรเวอร์ที่จัดการงานที่เกี่ยวข้องกับอุปกรณ์เป้าหมายและใช้ไดรเวอร์คลาสเพื่อควบคุมอุปกรณ์ ทำหน้าที่เป็นส่วนหนึ่งของคู่ของไดรเวอร์ ซึ่งในหมวดหมู่นี้ทำหน้าที่เป็นไดรเวอร์อุปกรณ์ปลายทางที่ทำงานเฉพาะของอุปกรณ์

ตามระดับขององค์ประกอบ ไดรเวอร์คือ:

  • ระดับเดียว - การประมวลผล I / O ถูกนำมาใช้ภายในโมดูลปฏิบัติการเดียว (ไดรเวอร์)
  • หลายระดับ - การประมวลผล I / O กระจายไปตามไดรเวอร์หลายตัว

ไดรเวอร์ PnP ใน Windows แบ่งออกเป็น:

  • ไดรเวอร์ฟังก์ชั่น
  • คนขับรถบัส (คนขับรถบัส)
  • ไดร์เวอร์-ฟิลเตอร์ (ฟิลเตอร์-ไดร์เวอร์)

ตามโหมดการดำเนินการ ไดรเวอร์ Windows จะถูกให้คะแนน:

  • โปรแกรมควบคุมโหมดผู้ใช้
  • โปรแกรมควบคุมโหมดเคอร์เนล

รุ่นไดรเวอร์

ตลอดการมีอยู่ของระบบปฏิบัติการ นักพัฒนาพยายามสร้างมาตรฐานและทำให้การพัฒนาไดรเวอร์ง่ายขึ้น เป็นผลให้แบบจำลองปรากฏขึ้น

รุ่น WDM

กาลครั้งหนึ่ง มีสองทิศทางหลักในการพัฒนาแนวคิดไดรเวอร์ Windows:

  1. Windows 95/98 ใช้รุ่น VxD (Virtual Device Driver);
  2. ใน Windows NT3.51 ไดรเวอร์รุ่น NT (ไดรเวอร์สไตล์ NT, ไดรเวอร์ NT) พัฒนาขึ้นพร้อมกัน

อย่างไรก็ตาม เริ่มจากเวอร์ชัน Windows 98/NT4.0 นักพัฒนาพยายามรวม (สากล) การพัฒนาไดรเวอร์ ซึ่งเป็นผลมาจากการที่โมเดลดังกล่าวถูกแทนที่ด้วยโมเดล WDM ใหม่

WDM (รุ่นไดรเวอร์ Windows, ไดรเวอร์ Windows Model) เป็นสภาพแวดล้อมการพัฒนาที่เป็นหนึ่งเดียว (เฟรมเวิร์ก) สำหรับไดรเวอร์อุปกรณ์ของระบบปฏิบัติการ Windows มันถูกสร้างขึ้นเพื่อลดข้อกำหนดมาตรฐานรหัสสำหรับไดรเวอร์

รุ่น WDM เป็นขั้นตอนในการกำหนดสแต็กไดรเวอร์ Windows แบบคลาสสิกใหม่เพื่อรองรับเทคโนโลยี Plug-and-Play และ ACPI ที่ปฏิวัติวงการในขณะนั้น โมเดลทำให้สามารถโหลด/ยกเลิกการโหลดไดรเวอร์ได้ทันที โดยไม่จำเป็นต้องรีสตาร์ทระบบปฏิบัติการ พัฒนาไดรเวอร์เป็นส่วนขยาย (ตัวกรอง) ให้เป็นมาตรฐาน ไดรเวอร์ระบบจัดการการประหยัดพลังงานและการกำหนดค่าอุปกรณ์ได้อย่างยืดหยุ่นมากขึ้น และอื่นๆ
ภายในกรอบของโมเดล WDM อะไรก็ได้ อุปกรณ์ฮาร์ดแวร์รองรับโดยไดรเวอร์อย่างน้อยสองตัว:

  • ไดรเวอร์ฟังก์ชั่น (ไดรเวอร์ฟังก์ชั่น) - รับผิดชอบคุณสมบัติการทำงานเกือบทั้งหมดของอุปกรณ์ที่ให้บริการ: การทำงานของ I / O, การจัดการการขัดจังหวะและการควบคุมอุปกรณ์
  • ไดรเวอร์บัส - รับผิดชอบในการบำรุงรักษาการเชื่อมต่อระหว่างอุปกรณ์และคอมพิวเตอร์ อันที่จริงแล้วรองรับบัสสื่อสาร (เช่น PCI, USB เป็นต้น)

ดับเบิลยูดีเอฟ โมเดล

ตลอดการพัฒนา โมเดล WDM ได้ผ่านการเปลี่ยนแปลงมากมาย และเติบโตขึ้นอย่างมาก เริ่มต้นด้วย Windows Vista มีความพยายามอีกครั้งในการพัฒนาแนวคิดไดรเวอร์ Windows โดยพื้นฐานแล้วเป็นรุ่น WDM ที่มีอยู่แล้วในขณะนั้น ส่งผลให้มีรุ่นใหม่ (ส่วนเสริมของ WDM) ที่เรียกว่า WDF

WDF (Windows Driver Foundation, Windows Driver Foundation) คือสภาพแวดล้อมการพัฒนา (ชุดเครื่องมือ) ที่อำนวยความสะดวกในการพัฒนาไดรเวอร์อุปกรณ์สำหรับระบบปฏิบัติการ Windows (Windows 2000 และใหม่กว่า)

นี่เป็นเพราะข้อเท็จจริงที่เถียงไม่ได้ว่านักพัฒนาล้มเหลวในการบรรลุนามธรรมของโมเดล WDM ในระดับที่เพียงพอ กล่าวคือ การรวมระบบย่อย I / O เข้ากับเทคโนโลยี Plug-and-Play และการจัดการพลังงานไม่เพียงพอ สิ่งนี้ทำให้นักพัฒนาไดรเวอร์มีภาระมหาศาลในการซิงโครไนซ์คำขอ I/O เดียวกันนี้กับเหตุการณ์ Plug-and-Play และคำขอพลังงาน เห็นได้ชัดว่าจำเป็นต้องทำให้โมเดลไดรเวอร์ง่ายขึ้น WDF เข้ามาแทนที่ WDM และถือเป็นรุ่นที่ทันสมัยที่สุด
WDF ใช้คุณลักษณะต่อไปนี้:

  1. "การลบ" ไดรเวอร์บางคลาสที่ไม่สำคัญต่อโหมดการดำเนินการให้อยู่ในโหมดผู้ใช้ ซึ่งลดจำนวนการหยุดทำงานทั้งหมดในเคอร์เนล
  2. การจัดการการโต้ตอบของระบบย่อย I/O ด้วย Plug-and-Play และการจัดการพลังงานส่วนใหญ่ได้รับการจัดการโดยกลไกในตัวของโมเดล WDF
  3. จัดเตรียมอินเตอร์เฟสภายในใหม่ให้กับโมเดล WDF ที่ช่วยให้สามารถแยกแยะจากอินเตอร์เฟสระบบที่เข้าใจยากขึ้นได้ ในโมเดล WDM / เดิม ค่อนข้างยากที่จะนำตรรกะของการโต้ตอบกับไดรเวอร์บางส่วนไปใช้โดยไม่ได้เรียนรู้พื้นฐานทั้งหมดของสถาปัตยกรรมเคอร์เนลที่ซับซ้อน ในขณะที่ WDF ช่วยให้คุณสามารถโต้ตอบได้หลายประเภทโดยอัตโนมัติ โค้ดจำนวนมากเมื่อพัฒนาไดรเวอร์ WDM สามารถแทนที่ได้ด้วยการเรียกขั้นตอน WDF
  4. ความสามารถในการสร้างไดรเวอร์ "canonical" การมีเทมเพลตที่ให้นักพัฒนาบุคคลที่สามสามารถลบล้างเกณฑ์เฉพาะของไดรเวอร์ได้ ซึ่งจะช่วยลดเวลาในการพัฒนา

โมเดล WDF แบ่งออกเป็นสองส่วน:

  • UMDF (Kernel-Mode Driver Framework) เป็นสภาพแวดล้อมการพัฒนาไดรเวอร์โหมดเคอร์เนล
  • KMDF (User-Mode Driver Framework) เป็นสภาพแวดล้อมการพัฒนาไดรเวอร์ในโหมดผู้ใช้

การแบ่งสภาพแวดล้อมออกเป็นโหมดผู้ใช้และเคอร์เนลในโมเดล WDF นั้นค่อนข้างไม่มีกฎเกณฑ์ เนื่องจากจุดประสงค์หลักของความแตกต่างนี้คือเพื่อจัดประเภทการพัฒนาไดรเวอร์สำหรับอุปกรณ์บางประเภท



กำลังโหลด...
สูงสุด