Kiến trúc 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 111 - 112)

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

3.Kiến trúc WDF

Do WDF là một mô hình theo đối tƣợng, do đó kiến trúc WDF cũng là một kiến trúc theo đối tƣợng và có dạng phân tầng. Nhìn chung, WDF có 5 tầng đối tƣợng cơ bản.

Hình 0-3 – Kiến trúc WDF Applications

Ứng dụng thông thƣờng có một handle thiết bị và gọi các hàm Windows API tƣơng ứng để gửi các lệnh request tới thiết bị. Ứng dụng hầu nhƣ không biết và không cần biết là nó đang giao tiếp với một driver WDM hay WDF.

Kernel Subsystems

Bao gồm bộ phận quản lý nhập xuất (I/O manager), bộ phận quản lý Plug and Play (PnP manager), v.v….Kernel subsystem có thể đƣợc xem nhƣ là một dịch vụ của hệ thống. Kernel Subsystem sẽ nhận các lệnh request từ ứng dụng và đóng gói thành các IRPs và dùng nó để giao tiếp với framework. Khi các request từ ứng dụng đƣợc hoàn tất, từ đây, kernel subsystem sẽ gửi trả kết quả về cho ứng dụng

112

The Framework's Upper Edge

Góc trên của framwork đƣợc xem nhƣ là một lớp trừu tƣợng giữa Windows và Driver. Framwork bao gồm 3 mô hình chính sau:

Mô hình đối tƣợng cung cấp cách thức cho framework tạo và quản lý các đối tƣợng. Mô hình I/O cung cấp cách quản lý các request I/O

Đối với đọc, ghi, và điều khiển thiết bị, framework nhận gói IRP từ Windows, tiến hành đóng gói lại theo định dạng dữ liệu của đối tƣợng và đƣa gói IRP tới driver WDF để xử lý. Khi driver hoàn tất xử lý, nó sẽ hoàn trả request về cho framwork. Và khi lệnh request đƣợc hoàn tất, framework sẽ hoàn tất xử lý gói request và trả kết quả về cho I/O manager trong kernel-subsystem.

Mô hình Plug and Play cung cấp cách quản lý các trạng thái nguồn Plug and Play khi chúng thay đổi.

Framework Objects

Các đối tƣợng của framework là một khối các đối tƣợng đƣợc xây dựng sẳn cho một driver WDF. Chúng thƣờng đại diện cho các đối tƣợng cơ bản của driver nhƣ thiết bị, bộ nhớ, các hàng đợi I/O…Các đối tƣợng này thƣờng đƣợc tạo ra bởi framework và đƣợc đƣa xuống driver hoặc đƣợc tạo ra bởi driver thông qua việc gọi các hàm do framework cung cấp.

Driver Callbacks

Để điều khiển các sự kiện mà driver muốn xử lý, driver sẽ override lại các hàm xử lý chuẩn của framework và cung cấp các xử lý sự kiện tƣơng ứng. Để override một hàm xử lý chuẩn của framework cho một sự kiện, driver phải cài đặt và đăng ký một hàm callback. Khi sự kiện xảy ra, framework sẽ gọi tới sự kiện đã đƣợc đăng ký trƣớc đó. Sau đó, driver sẽ điều khiển sự kiện và trả kết quả về cho framewok.

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 111 - 112)