Tự ngắt thiết bị (thường) được xử lý bởi bất kỳ chuỗi nào có CPU đã ngắt, nhưng trong vòng 0 và ở mức bảo vệ khác. Điều này giới hạn một số hành động mà một trình xử lý ngắt có thể thực hiện, bởi vì hầu hết thời gian luồng hiện tại sẽ không liên quan đến luồng đang đợi sự kiện xảy ra khi ngắt đang cho biết.
Bản thân hạt nhân là nguồn đóng và chỉ được ghi lại thông qua API nội bộ của nó. API đó được tiếp xúc với các tác giả trình điều khiển thiết bị và được mô tả trong các bộ phát triển trình điều khiển.
Một số nguồn lực để giúp bạn bắt đầu:
Bất kỳ ấn bản của Microsoft Windows Internals bởi Solomon và Russinovich. Hiện tại dường như là phiên bản thứ 4, nhưng ngay cả một phiên bản cũ cũng sẽ giúp ích cho bạn.
DDK của Windows, hiện được đổi tên thành WDK. Tài liệu của nó là available online. Hãy nhớ đọc số Kernel Mode Design Guide ...
Sysinternals có các công cụ và bài viết để thăm dò và giải thích hành vi của hạt nhân. Đây từng là một trang web độc lập cho đến khi Microsoft cảm thấy mệt mỏi vì Mark Russinovich dường như biết nhiều hơn về hạt nhân hoạt động như thế nào. ;-)
Lưu ý rằng mã nguồn cho nhiều trình điều khiển thiết bị chung được bao gồm trong DDK trong các mẫu. Mặc dù các phiên bản sản xuất gần như chắc chắn khác nhau, đọc các trình điều khiển mẫu có thể trả lời một số câu hỏi ngay cả khi bạn không muốn tự mình thực hiện một trình điều khiển.
Thực ra đó là IRQL (Ngắt kết nối lại cấp độ). Có 32 trong số đó. Mã chế độ người dùng hoạt động ở mức PASSIVE (0). Thiết bị IRQL/DIRQL cao hơn mức DISPATCH (2). – dragonfly
Bạn có thể đã nhớ rằng biểu diễn bên trong của cuộc gọi hệ thống được gửi đến trình điều khiển thiết bị được gọi là IRP (Gói Yêu cầu I/O) ... – RBerteig
Tôi không nên trả lời câu hỏi quá muộn vào ban đêm.Tôi đã nhớ từ hệ điều hành VMS, nơi chúng được gọi là IPL - Interrupt Priority Levels. Trở lại thời thơ ấu kỹ thuật của tôi. –