Khái quát về WDM và WDF

Một phần của tài liệu thiết kế xây dựng thiết bị usb dongle - bảo vệ phần mềm có bản quyền (Trang 109)

: Driver và các khái niệm liên quan

2.Khái quát về WDM và WDF

WDM – Windows Driver Model, đƣợc xem là một mô hình, một bộ khung phát triển driver do Microsoft phát triển dành riêng cho hệ điều hành Windows.

WDF – Windows Driver Foundation là tập hợp các công cụ và mô hình thiết kế driver của Microsoft và đƣợc kế thừa lại từ WDM, và đƣợc xem là đứa con của WDM. Hiện nay, Microsoft đã release bản WDF 1.7 và kèm theo đó là bộ công cụ phát triển Driver

Windows Driver Kit do chính hãng cung cấp.

Hình 0-2 – Mô hình phát triển Driver của Windows

Để có thể hiểu đƣợc chính xác các khái niệm một cách xuyên suốt trong quá trình thiết kế Driver, cần phải lƣu ý 2 vấn đề cơ bản sau:

110 WDF đƣợc thiết kế dựa trên mô hình driver sơ khai ban đầu, đó là WDM, bằng cách WDF tạo nên các lớp trừu tƣợng và đóng gói lại thành các đối tƣợng. Do đó, để hiểu đƣợc WDF, chúng ta cần phải nắm rõ một số định nghĩa từ WDM.

Ở mức trừu tƣợng, các driver WDF và WDM có cùng một cấu trúc và điều khiển các lệnh truy xuất dữ liệu nhƣ nhau. Hầu hết các phần thảo luận trong các phần sau đều áp dụng đƣợc cho cả WDF và WDM, chỉ có phần cài đặt là có sự khác biệt.

WDF là một mô hình theo đối tƣợng (object model), nhƣ đối tƣợng Driver (Driver Object), đối tƣợng thiết bị (Device Object), bộ nhớ, v.v…Nghĩa là việc lập trình driver trên WDF hầu hết chủ yếu thông qua các đối tƣợng. Đồng thời, các đối tƣợng trong WDF đều có sự kế thừa, do đó, nếu cần ta có thể kế thừa và tạo ra các đối tƣợng mới tùy vào nhu cầu của thiết bị cần cung cấp những chức năng và yếu tố vật lý nhƣ thế nào.

Mỗi đối tƣợng trong WDF đều có các thuộc tính, phƣơng thức, sự kiện và chu kỳ sống riêng của đối tƣợng, trong đó:

Thuộc tính: Đƣợc xem nhƣ là các đặc điểm mô tả về đối tƣợng.

Phƣơng thức: Các phƣơng thức thực hiện trên chính đối tƣợng hay thực hiện trực tiếp lên các đối tƣợng khác.

Sự kiện: Sự kiện là các xử lý biến cố mà driver WDF chọn ra để thực hiện xử lý biến cố khi sự kiện đó đƣợc xảy ra. Trong driver KMDF, đó là các hàm sự kiện callback. Ví dụ nhƣ việc tạo ra đối tƣợng Driver hay các sự kiện thay đổi nguồn cung cho thiết bị sẽ làm phát sinh ra các biến cố của sự kiện và ta có thể cài đặt các xử lý biến cố đó (nếu cần).

Mô hình WDF cung cấp hầu hết các loại mô hình driver cho một lƣợng lớn các loại thiết bị hiện nay. Tuy nhiên, nhìn chung WDF cũng chỉ có 2 dạng Framework cơ bản dùng cho việc phát triển driver, đó là:

UMDF – User-Mode Driver Framework. KMDF – Kernel-Mode Driver Framework.

Thông thƣờng, khi tiến hành thiết kế Driver cho một loại thiết bị, đứng ở góc độ ngƣời phát triển driver, ta thƣờng chọn Driver KMDF, vì nó cho phép ta can thiệp và xử lý ở mức độ kernel, mức nhân hệ thống, đồng thời việc can thiệp và giao tiếp với phần cứng sẽ tốt hơn.

111 Trong phần sau, khi đề cập đến Driver, chúng tôi chỉ đề cập trọng tâm chủ yếu vào Driver dạng KMDF.

Một phần của tài liệu thiết kế xây dựng thiết bị usb dongle - bảo vệ phần mềm có bản quyền (Trang 109)