Thứ Ba, 4 tháng 6, 2013

Device Drivers [Windows Internal]

Device drivers là loadable kernel-mode modules (thường kết thúc với đuối .sys) giao tiếp giữa I/O manager và phần cứng liên quan. Chúng run trong kernel mode trong một trong 3 bối cảnh sau:

  • Trong bối cảnh user thread bắt đầu một hàm I/O
  • Trong bối cảnh của một kernel-mode system thread
  • Như là một kết quả của một ngắt (và do đó không trong bối cảnh của bất cứ process cụ thể nào -- bất cứ process hay thread nào lưu hành khi ngắt xảy ra )

Device drivers không thao tác trực tiếp phần cứng, nhưng chúng gọi các hàm trong HAL để giao tiếp với phần cứng. Drivers thường được viết trong C (thỉnh thoảng là C++) và do đó, với việc sử dụng thích hợp các HAL routines, có thể là source code portable thông qua các kiến trúc CPU hỗ trợ bởi Windows và binary portable bên trong cùng một họ kiến trúc.

Có một vài kiểu device drivers:
  • Hardware device drivers (sử dụng HAL) write output hoặc lấy input từ các thiết bị vật lý hoặc mạng. Có nhiều kiểu hardware device drivers, ví dụ như bus drivers, human interface drivers, mass storage drivers, và tương tự.
  • File system drivers  là Windows drivers chấp nhận các requests I/O hướng file (file-oriented) và chuyển chúng vào trong I/O requests cho các thiết bị cụ thể.
  • File system filter drivers, những drivers kiểu này thực hiện giám sát đĩa (disk monitoring ) và mã hóa (encrytion), phân giải I/Os và thực hiện một vài quá trình thêm giá trị trước khi passing I/O đến tầng tiếp theo.
  • Network redirectors and servers là file system drivers thực hiện chuyển file system I/O requests đến một máy trên mạng và nhận các requests như vậy. 
  • Protocol drivers implement một giao thức mạng ví dụ như TCP/IP, NetBEUI, và IPX/SPX.
  • Kernel streaming filter drivers được xâu chuỗi cùng nhau để thực hiện xử lí tín hiệu trên các luồng dữ liệu, nhưu là recording hoặc displaying audio và video. 

Không có nhận xét nào:

Đăng nhận xét