การทำงานแบบครบวงจรกับอุปกรณ์ทั้งหมดของคอมพิวเตอร์ส่วนบุคคลใน Windows รวมถึงฟังก์ชันอื่น ๆ ของระบบปฏิบัติการมีให้โดยชุดไดรเวอร์ ในการเขียนไดรเวอร์ คุณต้องมีความเข้าใจในการเขียนโปรแกรม หลักการของเคอร์เนล และระบบย่อยต่างๆ ของ Windows เป็นอย่างดี
จำเป็น
ชุดพัฒนาไดรเวอร์ Windows
คำแนะนำ
ขั้นตอนที่ 1
ดาวน์โหลดการแจกจ่าย Windows Driver Development Kit (DDK) จาก microsoft.com (มีให้สำหรับสมาชิก MSDN) และติดตั้งลงในคอมพิวเตอร์ของคุณ แพ็คเกจนี้ประกอบด้วยเครื่องมือที่จำเป็นทั้งหมดสำหรับการพัฒนาและสร้างไดรเวอร์ (คอมไพเลอร์, ตัวเชื่อมโยง, ไฟล์ส่วนหัว, ไลบรารี) รวมถึงเอกสารประกอบที่ครอบคลุม
ขั้นตอนที่ 2
ศึกษารายละเอียดเอกสารทั้งหมดที่มีเกี่ยวกับการเขียนไดรเวอร์สำหรับ Windows ใช้ข้อมูลอ้างอิงจากหัวข้อ DDK และ MSDN ที่เกี่ยวข้อง (msdn.microsoft.com) คุณต้องเข้าใจทุกแง่มุมของ Windows Driver Model (WDM) อย่างถ่องแท้ และเข้าใจแนวคิดสถาปัตยกรรมพื้นฐาน คุณต้องเข้าใจความแตกต่างระหว่างไดรเวอร์โหมดผู้ใช้และโหมดเคอร์เนล ไดรเวอร์อุปกรณ์ และไดรเวอร์ระบบไฟล์อย่างชัดเจน คุณจำเป็นต้องทราบคุณสมบัติของไดรเวอร์ประเภทต่างๆ ประเภท (ไดรเวอร์บัส ตัวกรอง ไดรเวอร์ที่ใช้งานได้) และประเภทย่อย (ไดรเวอร์จอแสดงผล โมเด็ม อุปกรณ์เครือข่าย พอร์ตขนานและพอร์ตอนุกรม อุปกรณ์จัดเก็บข้อมูล) ให้ความสนใจเป็นพิเศษกับหลักการของ Packet-Driven I / O ที่มี IRP แบบใช้ซ้ำได้ การจัดการหน่วยความจำ การจัดการข้อยกเว้น และการใช้ออบเจกต์การซิงโครไนซ์ที่ถูกต้อง
ขั้นตอนที่ 3
กำหนดฟังก์ชันการทำงานของไดรเวอร์ที่กำลังพัฒนาให้ชัดเจน จากสิ่งนี้ ให้กำหนดประเภทและคลาสที่เป็นของ
ขั้นตอนที่ 4
เลือกภาษาโปรแกรม ตามเนื้อผ้า ไดรเวอร์โหมดเคอร์เนลถูกนำมาใช้ใน C ไดรเวอร์โหมดผู้ใช้มักจะได้รับการพัฒนาใน C ++ มีข้อยกเว้นหลายประการสำหรับกฎเหล่านี้ ตัวอย่างเช่น ไคลเอ็นต์มินิไดรเวอร์สำหรับสตรีมเสียงและวิดีโอ ไดรเวอร์เสียง WDM สำหรับมินิพอร์ตโหมดเคอร์เนล ไดรเวอร์ WIA และบางครั้งไดรเวอร์แสดงผลจะเขียนด้วยภาษา C ++
ขั้นตอนที่ 5
สร้างโครงการที่ใช้สตับไดรเวอร์ สำรวจไดเร็กทอรี DDK พร้อมตัวอย่าง ค้นหาโครงการสาธิตไดรเวอร์ที่ถูกต้อง หากคุณไม่พบตัวอย่างที่เหมาะสม ให้สร้างไฟล์ด้วยตัวเองที่มีซอร์สโค้ดที่จำเป็นและสร้างไฟล์สคริปต์ ตัวอย่างเช่น เมื่อพัฒนาไดรเวอร์โหมดเคอร์เนล คุณต้องใช้ฟังก์ชัน DriverEntry ซึ่งประกอบด้วยโค้ดการเริ่มต้นและรูทีนมาตรฐานบางอย่าง (เช่น AddDevice, StartIo เป็นต้น)
ขั้นตอนที่ 6
ใช้ฟังก์ชั่นไดรเวอร์ เพิ่มโค้ดให้กับฟังก์ชันที่สร้างในขั้นตอนก่อนหน้า เพิ่มตรรกะในการจัดการคำขอ I / O ฯลฯ