2009-05-18 40 views
18

Có ai có bất kỳ cuốn sách/hướng dẫn nào có thể hữu ích khi bắt đầu phát triển trình điều khiển thiết bị Windows không?Bắt đầu phát triển trình điều khiển

Để phát triển đồng đều Win32/GUI, sách của Petzold có vẻ là tài liệu tham khảo cần thiết. Hiện có như vậy cho các trình điều khiển?

Tôi muốn lưu ý rằng tôi không thực sự nói chuyện với phần cứng - Tôi thực sự muốn mô phỏng một phần cứng trong phần mềm, nhưng tôi muốn xem mọi thứ hoạt động như thế nào trước tiên.

Billy3

Trả lời

11

Một điều cần cảnh giác là sự phát triển điều khiển thiết bị (kiến trúc và các công cụ) thay đổi nhiều hơn sự phát triển Win32 ... như vậy trong khi cuốn sách Petzold từ những năm 1990 là tốt cho Win32 và có thể được coi là một cổ điển vượt thời gian , kiến ​​trúc cho nhiều loại trình điều khiển (trình điều khiển máy in, trình điều khiển mạng, vv) đã thay đổi trong các bản phát hành O/S khác nhau.

Đây là mục nhập blog đánh giá các sách khác nhau: Windows Device Drivers Book Reviews.

Đừng quên tài liệu microsoft đi kèm với DDK: và quan trọng nhất là trình điều khiển mẫu (mã nguồn) đi kèm với DDK. Khi tôi muốn viết một trình điều khiển cổng nối tiếp giả, ví dụ, tôi thấy tài liệu trình điều khiển nối tiếp mẫu kết hợp với tài liệu DDK là vô giá (và đủ).

+0

Tôi cũng muốn thêm rằng bạn nên đăng ký vào danh sách gửi thư ntdev (http://www.osronline.com/cf.cfm?PageURL=showlists.CFM?list=NTDEV) vì nó có thể là một nguồn thông tin tuyệt vời, cũng như chỉ ra những sai lầm phổ biến. – BCran

+0

Trước bất cứ điều gì bạn phải quen thuộc với khái niệm hệ điều hành và sau đó bạn phải quen thuộc với hệ điều hành windows (đọc cửa sổ Mark Russinovich nội bộ) – AminM

1

Tôi sẽ tìm kiếm các hướng dẫn với các ví dụ phong phú, như this one. Bản chất trong phát triển trình điều khiển cửa sổ là để có được hình ảnh về lớp và IRP, IRQL, và cũng để biết các điều khoản như trình điều khiển lọc. Nếu bạn đang tìm kiếm mã ví dụ, đây là mã trình điều khiển Spodek của tôi: sf.net link. Bạn sẽ tìm thấy có một trình điều khiển lọc (cho bàn phím, keyb.c), hàng đợi không gian hạt nhân (queue.c) và các kỹ thuật để ẩn sự hiện diện trong hệ thống. Đó là một trình điều khiển di sản (sys) mặc dù.

6

Để tìm hiểu về phát triển hạt nhân tốt:

a. rất nhiều các chương trình hạt nhân mẫu:

của Windows DDK mẫu:

mẫu

http://social.msdn.microsoft.com/Forums/en-US/softwaretesting/thread/08690203-1757-4129-b59a-6bae10bcdce8/

WDK:

http://msdn.microsoft.com/en-us/windows/hardware/gg487428

Hoặc chỉ cần tìm kiếm:

http://www.google.com/search?q=windows+ddk+samples

(vì URL trên có thể thay đổi, nhưng Google có thể sẽ trả về u thích hợp nhất/có thể truy cập được)

b.nhiều kỹ thuật gỡ lỗi, và trong đó tôi thấy tốt nhất là VMware (hoặc VirtualBox) + windbg + cổng nối tiếp gỡ lỗi:

http://www.google.com/search?q=windbg+vmware+kernel+debug

và giấy này là cổ điển cho việc sử dụng VMWare + windbg (Chúa tể của những Ring0) :

http://silverstr.ufies.org/lotr0/windbg-vmware.html

c. cũng như công cụ quản trị hệ thống mà những người khác đã xây dựng:

http://technet.microsoft.com/en-us/sysinternals/bb545021

(Trong SysInternals qua gọi xây dựng bởi Mark Russinovich, đồng tác giả của "Windows nội bộ" - PHẢI ĐỌC !!)

http://technet.microsoft.com/en-us/sysinternals/bb963901

từ các công cụ này u sẽ có các tùy chọn gỡ lỗi bao la.

d. Tham gia vào danh sách gửi thư OSR (ntdev đặc biệt là rất tích cực, nhưng có những người khác như windbg):

http://www.osronline.com/page.cfm?name=ListServer

e. Xem rất nhiều video liên quan đến cửa sổ + kernel tại channel9 (google trở hơn 1000 liên kết):

http://www.google.com/search?q=site:channel9.msdn.com+kernel+video&num=100

f. Diễn đàn thảo luận như:

http://social.microsoft.com/Forums/en-us/kernel/threads

http://social.msdn.microsoft.com/Forums/en-US/wdk/threads

đang theo dõi với tạp chí OSR miễn phí quá (hardcopy). Tôi đã nhận được của tôi từ năm 1998 đến nay - và nó được giao nửa vòng quanh trái đất!

1

Cá nhân, cách tốt nhất để bắt đầu phát triển là tiếp xúc với thực tế. Có điều này trong tâm trí tôi recomment cuốn sách này

The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System

The Rootkit Arsenal Cover

Nó nên là đủ để giúp bạn bắt đầu có một số mã đang chạy mà không "cái gì đó", sau đó sau khi bạn có bức tranh chung bạn có thể tập trung vào các chủ đề như - Sự khác biệt giữa các phương pháp đệm/không/trực tiếp và các đặc thù liên kết với chúng.

"Lập trình mô hình trình điều khiển cửa sổ, ấn bản thứ hai" cũng là một trợ giúp tuyệt vời khi bạn cần chi tiết về một số chủ đề cụ thể. Nhưng trước tiên tôi tin rằng điều quan trọng nhất là đưa mọi thứ vào bối cảnh và sau đó xây dựng trên đó.

Các vấn đề liên quan