Các kiểu Driver Các kiểu Driver Bởi: Khoa CNTT ĐHSP KT Hưng Yên Một số loại mẫu trình điều khiển hệ thống XP Windows đầy đủ Hình 1-4 sơ đồ riêng biệt chúng Hình 1-4 Các kiểu trình điều khiển thiết bị Windows XP • Một trình điều khiển thiết bị ảo(VDD) thành phần user-mode điều cho phép ứng dụng MS-DOS-based truy cập phần cứng tảng Intel x86 Một VDD tin vào mặt nạ cho phép vào/ra để bẫy truy nhập cổng, thực chất mô thao tác phần cứng cho lợi ích ứng dụng điều trực tiếp trước chương trình hóa để nói tới phần cứng máy tối thiểu Đừng nhầm lẫn Windows XP VDD với Windows 98/Me VxD Cả hai gọi điều khiển thiết bị thực tế, họ phục vụ mục đích phần cứng thực tế, họ thuê công nghệ phần mềm hoàn toàn khác • Những loại trình điều khiển thiết bị kernel-mode bao gồm số loại Một trình điều khiển PnP trình điều khiển kernel-mode mà hiểu giao thức Plug and Play Windows XP Để hoàn toàn xác, sách liên quan trình điều khiển PnP khác • Một trình điều khiển WDM trình điều khiển PnP mà đồng thời hiểu giao thức power-management nguồn thích hợp với Windows 98/Me Windows 2000/XP Bên phạm trù trình điều khiển WDM, bạn phân biệt lớp trình điều khiển (mà quản lý thiết bị thuộc lớp định nghĩa kỹ thiết bị) trình điều khiển nhỏ 1/5 Các kiểu Driver (trợ giúp vendor-specific nhà cung cấp tới lớp phận điều khiển), trình điều khiển chức nguyên khối (mà gồm thứ chức cần hỗ trợ thiết bị phần cứng) lọc trình điều khiển (Những thao tác vào/ra “lọc” cho thiết bị đặc biệt thứ tự để thêm hay sửa đổi hành vi) • Những trình điều khiển tập tin hệ thống thực thi mẫu tệp tin hệ thống PC chuẩn (mà bao gồm khái niệm cấu trúc thư mục phân cấp việc chứa đặt tên tệp tin) đĩa cứng địa phương hay qua kết nối mạng Đây cũng, trình điều khiển kernel-mode • Những điều khiển thiết bị kế thừa trình điều khiển kernel-mode mà trực tiếp kiểm soát thiết bị phần cứng trợ giúp từ trình điều khiển khác Phạm trù thực chất bao gồm trình điều khiển cho phiên trước Windows NT mà chạy thay đổi Windows XP Có số thiết bị, bạn không cần viết trình điều khiển Microsoft cung cấp trình điều khiển chung mà làm việc với thiết bị bạn Đây vài ví dụ: • Thiết bị tồn trữ tin lớn SCSI-compatible ATAPI-compatible • Bất kỳ thiết bị nối tới cổng USB mà hoàn toàn thích hợp với thuyết minh phê chuẩn, cung cấp bạn hạnh phúc với hạn chế trình điều khiển Microsoft tiêu chuẩn • Cổng chuẩn hay cổng chuột PS/2 • Bàn phím chuẩn • Card điều hợp video gia tốc hay tính đặc biệt • Cổng song song hay chuẩn • Ổ đĩa mềm chuẩn WDM Drivers Cho đa số thiết bị mà Microsoft không trực tiếp hỗ trợ, bạn cần viết trình điều khiển WDM Bạn viết trình điều khiển chức nguyên khối, trình điều khiển lọc, hay đơn giản trình điều khiển nhỏ WDM minidrivers Nếu Microsoft viết trình điều khiển cho thiết bị, bạn cố gắng cho thiết bị để hỗ trợ, bạn cần phải viết Minidriver để làm việc với trình điều khiển lớp Minidriver bạn danh nghĩa việc phụ trách của, bạn gọi chương trình trình điều khiển lớp mà lấy lại quản lý phần cứng gọi quay trở lại bạn để làm thứ device-dependent khác Số lượng công việc bạn cần để làm minidriver thay đổi ghê gớm từ lớp thiết bị đến thiết bị khác 2/5 Các kiểu Driver Ở số ví dụ lớp thiết bị mà bạn cần phải lập kế hoạch để viết minidriver: • Các HID Non-USB, bao gồm chuột, bàn phím, cần điều khiển, bánh lái, vân vân Nếu bạn có thiết bị USB (cho) hành vi chung HIDUSB.SYS (những trình điều khiển Microsoft cho thiết bị USB HID thiếu, bạn nên viết minidriver HIDCLASS minidriver Phần chủ yếu điển hình thiết bị họ báo cáo người sử dụng nhập vào phương pháp báo cáo mà mô tả cấu trúc liệu mô tả Cho thiết bị vậy, phục vụ HIDCLASS.SYS trình điều khiển lớp thực nhiều chức điều Direct-Input lớp bậc cao khác phần mềm tiếp tục phụ thuộc, bạn’re tương đối bị kẹt nhiều với việc sử dụng IDCLASS.SYS Đây đủ khó khăn để dành cho không gian đáng kể tận tâm tới sau sách Như nói riêng, HIDUSB.SYS HIDCLASS minidriver • Những thiết bị Windows Image Acquisition (WIA), bao gồm scanner camera Bạn viết WIA minidriver mà thực chất thực vài mạch ghép nối COM-style tới diện mạo hỗ trợ vendor-specific phần cứng bạn • Những thiết bị Luồng, âm thanh, DVD, thiết bị video, lọc software-only cho dòng liệu đa phương tiện Bạn viết dòng minidriver • Những thiết bị giao diện Mạng bus không truyền thống, USB hay 1394 Cho thiết bị vậy, bạn viết một trình điều khiển miniport Network Driver Interface Specification (NDIS) “với khía cạnh thấp WDM,” tới sử dụng cụm từ giống tài liệu DDK chủ đề Một trình điều khiển không chắtrinhflinh động hệ điều hành, bạn cần phải lập kế hoạch ghi riêng biệt họ với khác nhỏ đối phó với phần phụ thuộc tảng • Những card Video Những thiết bị yêu cầu video minidriver mà làm việc với điều khiển lớp cổng video • Những máy in, mà đòi hỏi thay cho DLL user-mode trình điều khiển kernel-mode • Những nguồn pin, Microsoft cung cấp trình điều khiển lớp chung Bạn viết minidriver (DDK gọi trình điều khiển miniclass, thứ nó) để làm việc với BATTC.SYS Những trình điều khiển lọc WDM Một thiết bị vận hành cho gần tới tiêu chuẩn thừa nhận trình điều khiển Microsoft chung gần thích hợp Trong số hoàn cảnh, bạn có khả để viết trình điều khiển lọc mà sửa đổi hành vi trình điều khiển chung đủ phải làm công việc phần cứng bạn Điều xảy thường xuyên, nhân tiện, 3/5 Các kiểu Driver thường dễ dàng để thay đổi cách mà trình điều khiển chung truy nhập phần cứng Những trình điều khiển chức WDM nguyên Với số ngoại lệ ghi chép mục tiếp theo, đa số kiểu khác (của) thiết bị yêu cầu Tôi có gọi cho trình điều khiển chức WDM nguyên khối Một trình điều khiển thực chất đứng xử lý tất chi tiết kiểm soát phần cứng bạn Khi kiểu trình điều khiển thích hợp, Tôi khuyến cáo cách tiếp cận sau mà bạn kết luận với bit nhị phận làm việc việc tảng Intel x86 tất hệ điều hành Đầu tiên, xây dựng với nhiều DDK gần — Tôi sử dụng phiên beta DDK NET cho ví dụ tiêu biểu nội dung sách hướng dẫn Bạn sử dụng IoIsWdmVersionAvailableto định hệ điều hành mà bạn tình cờ sử dụng Nếu bạn tình cờ chạy Windows 2000 hay Windows XP, bạn gọi MmGetSystemRoutineAddress để có trỏ tới chức Windows XP-only Tôi gợi ý hải cảng WDMSTUB.SYS, mà bàn luận Phụ lục A, để định nghĩa MmGetSystemRoutineAddress hàm nhân then chốt khác Windows 98/Me; cách khác, trình điều khiển bạn đơn giản không tải Windows 98/Me nhập không xác định Đây số ví dụ thiết bị mà cho bạn có lẽ viết chức trình điều khiển WDM nguyên khối: • Bất loại SmartCard loại ngoại trừ loại gán cho cổng • Bộ biến đổi Digital-to-analog • Card ISA hỗ trợ quyền xác minh sở hữu thẻ đọc/ghi chuyển đổi Những kiểu trình điều khiển khác Vài vị trí tồn trình điều khiển chức WDM nguyên khối không chiến thắng đủ khác kiến trúc Windows 98/ Me Windows 2000/ XP Trong trường hợp sau đây, bạn cần viết hai trình điều khiển: trình điều khiển WDM cho Windows 2000/XPvà trình điều khiển VxD cho Windows 98/ Me: • Một trình điều khiển cho cổng nối tiếp Trình điều khiển Windows 98/ Me VxD mà đưa giao diện trình điều khiển cổng VCOMM cạnh nó, mà trình điều khiển Windows 2000/ XP trình điều khiển WDM đề xuất hay nghiêm khắc rõ giao diện IOCTL mép Hai thuyết minh upper-edge chung 4/5 Các kiểu Driver • Một trình điều khiển cho thiết bị nối tới cổng nối tiếp Trình điều khiển Windows 98/Me VxD mà gọi VCOMM để nói chuyện với cổng Trình điều khiển Windows 2000/XP trình điều khiển WDM mà nói chuyện với SERIAL.SYS hay vài trình điều khiển cổng nối tiếp khác mà thực giao diện IOCTL • Một trình điều khiển cho thiết bị trữ tin lớn USB không tiêu chuẩn Dành cho Windows 98/Me, bạn viết VxD mà điều chỉnh vào phân cấp giám sát viên Vào/ra trình điều khiển phân tầng Dành cho Windows 2000/XP, bạn viết trình điều khiển chức WDM nguyên khối khối yêu cầu SCSI chấp nhận cạnh giao tiếp với thiết bị USB mép thấp Dành cho hai lớp thiết bị, Microsoft định nghĩa kiến trúc trình điều khiển di động dài trước WDM: • Những điều hợp Computer System Interface (SCSI) nhỏ sử dụng trình điều khiển " SCSI miniport ", không sử dụng chức hỗ trợ nhân tiêu chuẩn tin cậy thay vào API đặc biệt xuất SCSIPORT.SYS hay SCSIPORT.VXD, trường hợp Miniport di động hệ thống • Những card giao diện Mạng sử dụng “NDIS miniport driver,” mà tin cậy riêng API đặc biệt xuất NDIS.SYS hay NDIS.VXD, trường hợp Tại thời gian, trình điều khiển NDIS miniport di động hệ thống, tính di chuyển nhiều bị Những trình điều khiển giao thức mạng gọi trình điều khiển " trung gian " mà cung cấp chức lọc theo quỹ đạo xung quanh NDIS 5/5 ... bạn cần để làm minidriver thay đổi ghê gớm từ lớp thiết bị đến thiết bị khác 2/5 Các kiểu Driver Ở số ví dụ lớp thiết bị mà bạn cần phải lập kế hoạch để viết minidriver: • Các HID Non-USB, bao... tiện, 3/5 Các kiểu Driver thường dễ dàng để thay đổi cách mà trình điều khiển chung truy nhập phần cứng Những trình điều khiển chức WDM nguyên Với số ngoại lệ ghi chép mục tiếp theo, đa số kiểu khác.. .Các kiểu Driver (trợ giúp vendor-specific nhà cung cấp tới lớp phận điều khiển), trình điều khiển chức