Chúng tôi tạo bộ phân phối Windows XP với một bộ trình điều khiển đã chọn

Mọi người dùng máy tính sớm hay muộn đều sẽ phải đối mặt với vấn đề tìm kiếm, cài đặt và gỡ cài đặt trình điều khiển. Nguyên nhân là do mua máy mới, cài đặt lại hệ điều hành, mong muốn tăng hiệu suất hoặc cải thiện các đặc điểm khác của hệ thống - điều đó không thành vấn đề. Trong bài viết này tôi muốn cung cấp một số thông tin lý thuyết về trình điều khiển và cũng thảo luận về một số điều phức tạp và kỹ thuật để xử lý chúng.

Nó là gì
Bộ điều khiển tiện ích, cho phép hệ điều hành (OS) hoạt động với một thiết bị máy tính cụ thể. Nhiệm vụ của nó là xử lý các yêu cầu đến từ ứng dụng và chương trình hệ thống, dịch chúng sang ngôn ngữ mà thiết bị vật lý có thể hiểu được, quản lý các quá trình khởi tạo, cài đặt tham số, trao đổi dữ liệu, chuyển từ trạng thái này sang trạng thái khác, v.v. Trình điều khiển cho phép hệ điều hành giao tiếp với thiết bị cụ thể bởi vì giao diện chung, không tính đến các tính năng của thiết bị này. Nói cách khác, trình điều khiển dịch các yêu cầu cấp độ caođến các yêu cầu cấp thấp ngôn ngữ máy, truy cập trực tiếp vào tài nguyên phần cứng của máy tính.

Không phải mọi thiết bị đều yêu cầu trình điều khiển. Nếu có một tiêu chuẩn nghiêm ngặt mô tả tập hợp các lệnh, trình tự và thời gian hoạt động cũng như các tính năng khác khi làm việc với một loại thiết bị nhất định thì có thể không cần đến trình điều khiển vì hệ điều hành đã bao gồm tất cả các quy trình cần thiết cho cái này. Về nguyên tắc, đây có thể được gọi là trình điều khiển tích hợp. Ví dụ - bàn phím, bộ hẹn giờ, cổng giao tiếp, modem (bên ngoài). Nhưng nếu thiết bị có thể được thay thế bằng một thiết bị khác có chức năng khác thì cần phải cài đặt trình điều khiển cho thiết bị đó.

Trình điều khiển cũng có thể được bao gồm trong bản phân phối hệ điều hành. Thế thì câu hỏi tìm kiếm nó tự nó biến mất. Tuy nhiên, các thiết bị xuất hiện sau khi hệ điều hành được phát hành chính thức sẽ yêu cầu cài đặt trình điều khiển riêng biệtđược phát triển bởi nhà sản xuất. Ngoài ra, bộ driver đi kèm hệ điều hành rất nhỏ và chỉ có cover. Một phần nhỏ các thiết bị phổ biến nhất hoặc hoàn toàn tiêu chuẩn.

Trình điều khiển và cửa sổ
Trong phòng mổ hệ thống microsoft Trình điều khiển windows bao gồm một số tệp, thường được lưu trữ trong hệ thống, thư mục system32 và các thư mục con của chúng. Lõi trình điều khiển được lưu trữ trong các tệp có phần mở rộng .vxd, .drv, .sys và một số phần mở rộng khác, đồng thời các quy trình bổ sung được thu thập trong thư viện động.dll. Ngoài ra, trình điều khiển có thể bao gồm các tệp trợ giúp, tiện ích, mô-đun gỡ cài đặt, v.v.

Trình tự các thao tác cài đặt và gỡ cài đặt trình điều khiển được lưu trữ trong một tệp thông tin đặc biệt.inf. Với anh ấy sử dụng cửa sổ xác định loại, nhà sản xuất, kiểu thiết bị, loại trình điều khiển, nguồn lực cần thiết và các tập tin. Tệp này cũng mô tả các hoạt động giải nén, chạy, sao chép, xóa, đổi tên tệp, thêm và xóa khóa trong sổ đăng ký, v.v. Tất cả các tệp .inf được lưu trữ trong thư mục inf và các trình điều khiển đã cài đặt có nguồn gốc không phải của Microsoft (không được cung cấp cùng với HĐH) được lưu trữ trong một thư mục con riêng biệt inf/other.

Windows có thể tự động tìm trình điều khiển cho thiết bị. Để làm được điều này, nó sử dụng công nghệ plug&play, hay chính xác hơn là phần chịu trách nhiệm tự nhận dạng thiết bị. Đặc biệt, các thiết bị PCI được bios phát hiện và liệt kê trong một escd vùng đặc biệt (hệ thống mở rộng dữ liệu cấu hình). Windows có thể sử dụng nó hoặc nó có thể thăm dò bus pci một cách độc lập và tìm ra từ mỗi thiết bị mã của nhà sản xuất, kiểu máy và phiên bản, các tài nguyên cần thiết và thông tin khác. Tiếp theo, cơ sở dữ liệu (tệp drvdata.bin và drvidx.bin) được kiểm tra đối với tất cả các thiết bị đã biết và tìm thấy tệp .inf cần thiết. Nếu có tệp mới trong thư mục .inf, chúng sẽ tự động được lập chỉ mục và nhập vào cơ sở dữ liệu.

Cũng nên nhớ rằng hệ điều hành Windows 98 se và Windows 2000, cũng như các hệ điều hành tiếp theo của chúng, đều hỗ trợ người mẫu mới trình điều khiển, được gọi là wdm ( trình điều khiển windows người mẫu). Đây là một nỗ lực nhằm thực hiện hỗ trợ đầy đủ plug&play và acpi, tức là cho phép tải và dỡ trình điều khiển “khi đang di chuyển” mà không cần khởi động lại hệ thống, kết nối chúng dưới dạng tiện ích mở rộng bộ lọc với trình điều khiển tiêu chuẩn microsoft, quản lý tiết kiệm năng lượng và cấu hình thiết bị linh hoạt hơn... Trình điều khiển wdm được lưu trữ trong thư mục system32/drivers. Đặc biệt, giao diện usb và ieee-1394 (firewire) thế hệ mới chỉ hoạt động dưới sự điều khiển của trình điều khiển wdm.

“Tham khảo” hay “thương hiệu”?
Thông thường, chức năng của mỗi thiết bị máy tính được xác định bởi bộ điều khiển của nó. Bộ điều khiển trông giống như mạch tích hợpđược cài đặt trên bảng mạch in. Sự tương tác của thiết bị với các thành phần hệ thống khác được giảm xuống bằng việc trao đổi dữ liệu và lệnh giữa bộ điều khiển thiết bị và bộ xử lý trung tâm(hoặc bộ điều khiển khác, ví dụ: bộ điều khiển bus, bộ điều khiển dma, v.v.). Chúng ta có thể nói rằng trình điều khiển là một chương trình cho phép bộ xử lý “nói chuyện” với bộ điều khiển.

Rất thường xuyên, các nhà phát triển chip (còn gọi là chipset) tự viết trình điều khiển cho thiết bị mà bộ điều khiển của họ sẽ điều khiển. Thông thường, những trình điều khiển như vậy được gọi là trình điều khiển “tham chiếu”. Chúng có thể được cung cấp công khai và đăng trên Internet trên trang web của nhà phát triển hoặc được cung cấp riêng cho các nhà sản xuất thiết bị để sửa đổi và điều chỉnh. Rõ ràng, trong trường hợp đầu tiên, bạn có thể và nên cài đặt trình điều khiển tham chiếu cho thiết bị, những trình điều khiển này được cập nhật thường xuyên hơn nhiều so với những trình điều khiển “có thương hiệu” và chứa các bản sửa lỗi cũng như các tính năng mới. Tuy nhiên, bạn có thể mất quyền truy cập vào một số tính năng dành riêng cho thiết bị.

Trình điều khiển “độc quyền” của nhà sản xuất thiết bị có thể khá lỗi thời, nhưng đồng thời tính đến một số tính năng của thiết bị mà các nhà phát triển chipset không hề biết tới. Trong mọi trường hợp, bạn nên thử trình điều khiển "tham chiếu" trước (nếu nó có sẵn để tải xuống) và nếu vì lý do nào đó nó không hoạt động, hãy quay lại trình điều khiển "có thương hiệu".

Phiên bản trình điều khiển
Giống như bất kỳ phần mềm nào khác, trình điều khiển có phiên bản riêng. Định dạng phiên bản là miễn phí - mỗi nhà phát triển tự quyết định mình cần bao nhiêu chữ số để đánh số và chúng sẽ xuất hiện theo trình tự nào. Trong một số trường hợp, vẫn có một hệ thống: Trình điều khiển Windows dành cho các thiết bị thú vị nhất theo quan điểm của chúng tôi, chẳng hạn như video chơi game và card âm thanh, hỗ trợ directx, được đánh số theo một cách nào đó. Chữ số đầu tiên là số phiên bản của hệ điều hành Windows. 4 = win9x/winnt, 5 = win2000. Tiếp theo sau dấu chấm đến phiên bản directx. 12 = dx7, 13 = dx8. Các chữ số cuối cùng là số phiên bản của trình điều khiển. Ví dụ: trình điều khiển hiển thị trong ảnh chụp màn hình cho card màn hình nvidia có phiên bản 4.13.01.1241, nghĩa là được thiết kế cho win9x và directx8, phiên bản của nó là 1241.

Để tìm ra phiên bản trình điều khiển, hãy giải nén nó thành các tệp .vxd và .dll riêng biệt. Tiếp theo, bạn cần nhấp vào bất kỳ tệp nào trong Explorer (tốt nhất là có phần mở rộng .vxd) click chuột phải chuột, chọn “Thuộc tính”, sau đó chọn tab “Phiên bản” (xem ảnh chụp màn hình). Phiên bản trình điều khiển sẽ được đánh dấu bằng màu sắc.

Đôi khi các nhà sản xuất đi kèm trình điều khiển với trình cài đặt riêng của họ (setup.exe, install.exe, v.v.). Sau đó không thể xem được file driver. Hãy tìm readme.txt, version.txt, Release.txt hoặc nội dung tương tự vì chúng thường liệt kê các phiên bản của tệp hoặc toàn bộ gói.

Điều đáng nói là cái gọi là trình điều khiển beta. Các nhà phát triển chipset và thiết bị thường cố gắng kích thích sự quan tâm đến bản thân bằng cách đăng các trình điều khiển thử nghiệm lên trang web của họ. Một kỹ thuật nổi tiếng khác là cung cấp trình điều khiển cho chủ sở hữu các trang Internet chuyên đề khác nhau dưới vỏ bọc là trang bị đánh cắp hoặc vô tình để lại trên các trang nội bộ của công ty (cái gọi là trình điều khiển "bị rò rỉ"). Tất nhiên, các nhà phát triển từ chối chúng trước và không hứa hẹn hỗ trợ kỹ thuật trong trường hợp có vấn đề, nhưng đối với tôi, có vẻ như họ vẫn phân tích luồng thư từ người dùng và từ đó tiết kiệm quá trình tìm lỗi và gỡ lỗi.

Để ngăn chặn sự cố hệ thống do trình điều khiển beta, Microsoft đã giới thiệu một chứng nhận đặc biệt. Trình điều khiển được kiểm tra trong phòng thí nghiệm chất lượng phần cứng Microsoft Windows (whql) và sau khi hoàn thành thành công tất cả các quy trình, họ sẽ nhận được chứng chỉ. Nó có dạng tệp "danh mục bảo mật" (phần mở rộng .cat), liệt kê tất cả các thành phần trình điều khiển được chứng nhận. Nếu tệp như vậy không được bao gồm trong gói trình điều khiển thì khả năng rất cao đây là phiên bản beta.

Nhân tiện, hãy kiểm tra các tệp .cat bằng cách chạy chúng nhấn đúp chuột chuột, vì chúng có thể là hình nộm (trống).

Cách xác định nhà sản xuất và kiểu dáng của thiết bị
Tất nhiên, tốt hơn hết bạn nên mua linh kiện từ các nhà sản xuất nổi tiếng, may mắn thay ngày nay có cơ hội như vậy. Khi đó câu hỏi cần tìm trình điều khiển nào sẽ không nảy sinh. Nhưng đôi khi người dùng không biết gì về kiểu máy hoặc thậm chí là nhà sản xuất thiết bị - ví dụ: nếu máy tính không quá mới và có người khác lắp ráp nó. Trước khi bắt đầu tìm kiếm, bạn sẽ phải xác định tên chính xác của thiết bị hoặc chipset của nó.

Sẽ dễ dàng hơn để tìm thấy nhà sản xuất thiết bị. Đầu tiên, tất cả các thông tin cần thiết phải được ghi trên bảng mạch in. Ngay cả khi bạn chưa tìm thấy tên, vẫn có cơ hội xác định được tên đó bằng số fcc của nó. Hãy tìm dòng “fcc id:”, dòng này sẽ cho biết Mã đăng ký, được gán cho nhà sản xuất thiết bị. Sau đó, bạn cần truy cập trang web fcc và nhập mã vào thanh tìm kiếm.

Thứ hai, ở đâu đó chắc chắn sẽ có một mẫu thiết bị được ghi lại, sử dụng mẫu này bạn có thể thử tìm trang web của nhà sản xuất trên Internet.

Thứ ba, nếu thiết bị được cài đặt ở khe cắm pci hoặc agp, sau đó sử dụng các tiện ích bạn có thể xác định mã nhà sản xuất của thiết bị hoặc chipset này. Tôi có thể giới thiệu Sandra, powerstrip. Nguyên tắc nhận dạng cơ bản dựa trên việc phân tích thông tin do thiết bị PCI tạo ra. Tối thiểu, bạn có thể lấy mã nhà sản xuất (id nhà cung cấp) và kiểu máy (id thiết bị), có thể được giải mã bằng cách sử dụng bảng. Đặc biệt, bảng sandra chứa hơn 6 nghìn mã cho nhiều thiết bị khác nhau.

Lấy tài xế ở đâu
Tất nhiên, bạn không phải lo lắng và cài đặt tất cả các trình điều khiển trực tiếp từ đĩa CD đi kèm với thiết bị. Quyết định này khá chính đáng nhưng chỉ là lần đầu tiên. Trình điều khiển (đặc biệt đối với thiết bị nội bộ) có xu hướng được cập nhật thường xuyên, vì vậy việc thỉnh thoảng tìm kiếm trên Internet các phiên bản mới sẽ rất hữu ích. Nếu không, khả năng cao là thiết bị sẽ không tương thích với phần mềm mới hoặc các thành phần khác.

Nếu bạn biết chắc chắn Tên miền trang web của nhà sản xuất (hoặc đoán xem - www.manufacturer.com, www.manufacturer.com.tw), sau đó bạn có thể bắt đầu tìm kiếm. TRÊN trang tiêu đề hãy tìm nút “tải xuống”, “trình điều khiển”, “hỗ trợ” hoặc nút tương tự. Tiếp theo, bạn cần chọn chính xác thiết bị mà bạn có từ danh sách. Rất có thể bạn sẽ thấy một số thiết bị có cùng tên, sự khác biệt giữa chúng sẽ chỉ ở hậu tố hoặc thậm chí là số sửa đổi. Hãy chú ý đến điều này, nếu không trình điều khiển có thể không hoạt động. Tiếp theo, nếu có thể, hãy tải xuống trình điều khiển không chỉ cho hệ điều hành bạn đã cài đặt mà còn cho các hệ điều hành khác: trong quá trình cài đặt cửa sổ mới Sẽ thật khó chịu khi phát hiện ra rằng trình điều khiển cần thiết bị thiếu.

Nếu bạn không thể tìm thấy trang web mình cần, hãy liên hệ với các trang web chuyên về trình điều khiển (http://www.windrivers.com/, http://www.driverhq.com/, http://www.drv.ru/, v.v. .) d.). Bạn chỉ có thể tải xuống các tệp trình điều khiển trực tiếp từ đó trong một trường hợp: công ty phát triển đã không còn tồn tại và trang web của họ không có trên Internet. Sẽ tốt hơn nhiều nếu bạn không sử dụng tìm kiếm trình điều khiển mà trên trang web của nhà sản xuất hoặc trang hỗ trợ kỹ thuật của họ.

Cài đặt thế nào
Quá trình cài đặt trình điều khiển như sau: Windows phát hiện tệp .inf, tìm kiếm các chuỗi nhận dạng thiết bị plug&play trong đó và nếu chúng khớp với thông tin do chính thiết bị cung cấp, hệ thống sẽ thực hiện các hành động được quy định để sao chép tệp, thêm mục nhập vào sổ đăng ký , vân vân. Bạn phải cung cấp vị trí của tệp khi được Trình hướng dẫn cập nhật phần cứng nhắc. Trình hướng dẫn sẽ tự động khởi động sau khi thông báo về thiết bị được tìm thấy xuất hiện hoặc theo cách thủ công. Trong trường hợp sau, hãy chuyển đến “Thuộc tính hệ thống” (nhấn I+pause), chọn tab “Quản lý thiết bị”, sau đó chọn thuộc tính thiết bị mong muốn, tab “Trình điều khiển”, “Cập nhật trình điều khiển”.

Nếu trình điều khiển đi kèm với trình cài đặt riêng thì tốt hơn nên sử dụng nó. Để thực hiện việc này, sau khi thông báo về thiết bị được tìm thấy xuất hiện, hãy nhấn “esc”, tải Windows mà không cần trình điều khiển và chạy trình cài đặt. Nó sẽ sao chép tất cả các tập tin trình điều khiển vào thư mục windowsinother, nơi trình điều khiển sẽ được tìm thấy sau khi khởi động lại. Ngoài ra, nó sẽ được cài đặt chương trình bổ sung, bao gồm trong bộ sản phẩm. Điều quan trọng nữa là trong hầu hết các trường hợp, trình cài đặt có thể loại bỏ trình điều khiển một cách chính xác mà không để lại dấu vết về sự hiện diện của nó (Bảng Điều khiển/Thêm hoặc Xóa Chương trình).

Cách xóa thủ công
Nếu trình điều khiển bạn đã cài đặt không hoạt động được các chức năng của nó, thậm chí gây ra lỗi và treo máy, bạn cần phải xóa nó. Chỉ cần nhấn “del” trong danh sách thiết bị, sau đó đợi thông báo về thiết bị mới?.. Đôi khi điều này có ích, đôi khi không. Thực tế là lần sau Windows có thể không yêu cầu bạn cung cấp trình điều khiển mà chỉ cần thông báo cho bạn về thiết bị mà nó đã tìm thấy và ngay lập tức trả mọi thứ về vị trí của nó. Để xóa thông tin về trình điều khiển, bạn cũng cần thoát khỏi dos, đi tới thư mục windows/inf và tìm ở đó tệp .inf của trình điều khiển được yêu cầu (hay đúng hơn là không cần thiết) và xóa nó. Sau đó, bạn có thể gửi các tệp .vxd, thường nằm trong windows/system, nhưng ở đây bạn cần phải cẩn thận, vì bạn có thể lạm dụng nó. Bây giờ sau khởi động lại windows sẽ cập nhật cơ sở dữ liệu của nó và sẽ không tìm thấy trình điều khiển cũ, có nghĩa là bạn có thể cài đặt trình điều khiển mới hoặc trả lại trình điều khiển cũ, trình điều khiển này hoạt động tốt trước khi bạn bắt đầu sửa chữa những gì không bị hỏng.

Việc đầu tiên người dùng phải làm sau Cài đặt Windows- cái này là để tìm kiếm trình điều khiển. Thông thường, bộ đi kèm với Windows XP là không đủ, vì đã nhiều năm trôi qua kể từ khi hệ điều hành này phát hành và trong thời gian này các nhà sản xuất Thiết bị máy tính Chúng tôi đã cố gắng cập nhật sản phẩm của mình nhiều lần. Vì vậy, bạn phải tìm kiếm và cài đặt driver riêng cho từng thiết bị.

Câu hỏi làm thế nào để có được một bộ trình điều khiển cho máy tính của bạn khiến nhiều người lo lắng, bởi vì sự hiện diện của một bộ như vậy sẽ giảm đáng kể thời gian cần thiết để cài đặt hệ thống. Dưới đây là một số tùy chọn:

  • Tải xuống lắp ráp xong Windows XP, vốn đã bao gồm trình điều khiển cho nhiều thiết bị thông dụng;
  • tải xuống một bộ trình điều khiển riêng, may mắn thay, có rất nhiều trình điều khiển trên Internet (tốt hơn là lấy chúng từ trang web của các nhà sản xuất thiết bị).
  • làm của riêng bạn Lắp ráp cửa sổ với các trình điều khiển đã có trên PC của bạn và sử dụng nó trong các lần cài đặt tiếp theo.

Các bộ lắp ráp sẵn rất thuận tiện cho người dùng thiếu kinh nghiệm, nhưng chúng có thể không bao gồm tất cả các trình điều khiển hiện có. Vì vậy, tốt nhất là học cách thêm vào Phân phối Windows tất cả mọi thứ bạn cần một mình. Đây là những gì chúng tôi sẽ làm.

Vì vậy chúng ta cần:

  • bất kỳ tiện ích nào để sao lưu trình điều khiển Windows;
  • chương trình nLite.

Người sở hữu máy tính xách tay có Windows được cài đặt sẵn XP có thể thêm trình điều khiển vào tập hợp, được lưu trữ trong một phân vùng ẩn phục hồi khó khănđĩa.

Chuẩn bị một bộ driver cho máy tính của bạn

Sao lưu trình điều khiển, nghĩa là lưu bản sao của chúng vào thư mục riêng hoặc kho lưu trữ là cần thiết khi tất cả các thiết bị trên máy tính của bạn đã được cài đặt, nhận diện chính xác và hoạt động ổn định. Chúng ta sẽ thực hiện thao tác này bằng tiện ích Tài xế thiên tài chuyên nghiệp. Đối với mục đích của chúng tôi, phiên bản dùng thử là khá đủ.

Cập nhật

Điều đầu tiên bạn cần làm trước khi đặt chỗ là cập nhật driver cho Windows XP. Tài xế thiên tài sẽ giúp bạn xác định những gì cần cập nhật cũng như tải xuống và cài đặt trình điều khiển cần thiết chúng ta có thể tự làm được (chức năng cập nhật trong Driver Genius chỉ có ở phiên bản đã đăng ký).

  • Cài đặt và khởi chạy Driver Genius, chọn “Update Drivers” và hệ điều hành của bạn (Windows XP) từ menu, nhấp vào “Next”.


  • Chương trình sẽ quét mọi thứ Phân vùng Windows, nơi lưu trữ các trình điều khiển và sẽ xác định những trình điều khiển đã lỗi thời. Tất cả những gì chúng ta phải làm là tải xuống và cài đặt các phiên bản mới.


Sự đặt chỗ

  • Chọn tùy chọn “Sao lưu trình điều khiển” từ menu. Trong phần “Chọn trình điều khiển bạn muốn sao lưu” của cửa sổ, hãy kiểm tra xem bạn muốn sao lưu những gì (trình điều khiển do người dùng và Windows sở hữu đều có sẵn để chọn).


  • Nếu bạn có một máy tính xách tay với phần ẩn recovery, để chương trình có quyền truy cập vào nó, bạn phải gán một ký tự cho ổ đĩa này trong Disk Management. Bạn có thể truy cập vào “Quản lý đĩa” thông qua bảng điều khiển - “Quản trị” - “Quản lý máy tính”.


  • Tiếp theo trong Driver Genius, trong phần “Loại dự phòng” và sao lưu Vị trí", chọn loại lưu trữ (thư mục, kho lưu trữ zip, kho lưu trữ tự giải nén hoặc lưu trữ cài đặt tự động).
  • Chỉ định nơi lưu bộ trình điều khiển sao lưu. Theo mặc định, các bản sao được lưu trong thư mục Driver Genius, nhưng bạn có thể chọn bất kỳ vị trí nào khác.


  • Bằng cách nhấp vào nút “Tiếp theo”, hãy bắt đầu quá trình đặt chỗ. Sau này, bạn sẽ nhận được một bộ trình điều khiển Windows XP hoàn chỉnh phù hợp với máy tính của mình.



Tích hợp trình điều khiển vào bản phân phối Windows XP

Để thực hiện cài đặt Đĩa Windows Sẽ cần có XP với bộ trình điều khiển riêng chương trình miễn phí nLite, có thể tải xuống từ trang web chính thức và bản phân phối Windows (trên đĩa hoặc dưới dạng ảnh ISO)

Thủ tục

  • Tải xuống và cài đặt nLite trên máy tính của bạn.
  • Đặt đĩa Windows vào ổ đĩa hoặc gắn hình ảnh của nó vào lái xe mô phỏng sử dụng trình giả lập ( ISO siêu cao, Cồn 120%, v.v.).


  • Khởi chạy nLite. Chọn vị trí phân phối Windows (ổ đĩa vật lý hoặc ảo).
  • Chọn vị trí nơi chúng sẽ được trích xuất Tệp Windows, có thể thay đổi (tốt hơn là tạo một thư mục mới).


  • Sau khi sao chép, đĩa phân phối không còn cần thiết nữa. Bằng cách nhấp vào nút “Tiếp theo”, cửa sổ cài sẵn nLite sẽ mở ra. Nếu bạn sử dụng chương trình lần đầu tiên, cửa sổ này sẽ trống, vì vậy hãy bỏ qua và tiếp tục.


  • Trong cửa sổ tiếp theo, từ danh sách tác vụ, hãy chọn “Tích hợp” và “Trình điều khiển”.


  • Tiếp theo, bằng cách nhấp vào nút “Thêm”, bạn cần chọn trình điều khiển cần thiết(như bạn nhớ, chúng được lưu trong thư mục do Driver Genius tạo ra). Chương trình sẽ nhắc bạn thêm một trình điều khiển hoặc thư mục. Để thêm một trình điều khiển, bạn cần chỉ định đường dẫn đến tệp .inf của nó (những tệp này chứa dữ liệu cài đặt).


  • Sau khi chọn thư mục trình điều khiển, chỉ cần trỏ tới nó trong Explorer.


  • Thao tác thêm có thể được lặp lại nhiều lần. Sau khi kiểm tra mọi thứ bạn cần, hãy nhấp vào “Tiếp theo”. NLite sẽ bắt đầu quá trình tích hợp dữ liệu bạn đã chọn vào bản phân phối.


  • Giờ đây, gói phân phối cùng với bộ trình điều khiển của bạn có thể được ghi vào đĩa hoặc có thể tạo ảnh ISO cài đặt. Đặt một đĩa DVD trắng vào ổ đĩa, chọn nó trong danh sách "Thiết bị" của cửa sổ nLite tiếp theo, cài đặt thông số bắt buộc ghi đĩa và nhấp vào nút "Ghi".
  • Nếu bạn định thêm thứ gì đó khác vào bản phân phối đã tạo sau này, hãy nhấp vào “Tiếp theo”. Bằng cách này, chẳng hạn, bạn có thể cập nhật trình điều khiển trong bộ cài đặt bất kỳ lúc nào.


Sau tất cả các bước này, bạn sẽ nhận được bản dựng Windows XP với bộ trình điều khiển bạn cần. Bất cứ lúc nào, bạn có thể thêm các trình điều khiển khác vào đó mà bạn tải xuống lần đầu từ Internet.

Rõ ràng, mỗi người dùng máy tính cá nhân, Đôi khi, bạn cần kết nối một số thiết bị với máy tính. Lý do tại sao điều này xảy ra hiện không được chúng tôi quan tâm nhiều; nó có thể là một bản nâng cấp được nhiều người biết đến nhằm tăng hiệu suất của từng nút riêng lẻ và kết quả là Tổng hiệu suất hệ thống, điều này có thể chỉ đơn giản là thêm thiết bị mới để mở rộng chức năng của cấu hình hiện có, chẳng hạn như trong trường hợp kết nối một hệ thống mới người điều khiển trò chơi, đây cũng có thể là nhu cầu sử dụng dữ liệu từ ổ flash. Bất kể chúng ta kết nối một thiết bị mới chính xác như thế nào, hệ điều hành Windows buộc phải phản ứng với sự xuất hiện của phần cứng mới bằng cách thực hiện một số thao tác để đảm bảo hỗ trợ cho phần cứng mới trên cấp độ chương trình. Trên nhiều hệ điều hành, để cung cấp tương tác phần mềm các thiết bị sử dụng giao diện giữa phần cứng và lớp phần mềm được gọi là trình điều khiển, vì vậy hệ điều hành sẽ cố gắng bằng mọi cách có sẵn để cài đặt trình điều khiển cho thiết bị mới nhằm cung cấp cho thiết bị quyền truy cập vào các chương trình ở chế độ người dùng và mã chế độ kernel , bởi vì nếu không có người lái xe khét tiếng này, thiết bị trong hệ thống sẽ không thể hoạt động được.

Trình điều khiển - phần mềm mà hệ điều hành và những phần mềm hoạt động trong đó sử dụng module phần mềm, có quyền truy cập vào phần cứng.

Nhưng ai có thể ngạc nhiên khi cài đặt trình điều khiển bây giờ? Quá trình này đã quá quen thuộc với tất cả người dùng PC qua nhiều năm sử dụng và tôi chắc chắn rằng một số người có thể thực hiện việc này với nhắm mắt lại:) Nhưng bạn đã nghĩ đến chi tiết của quá trình này chưa, bạn đã bao giờ nghĩ tới thuật toán cài đặt trình điều khiển? Bạn đã bao giờ tự hỏi hệ điều hành thực hiện những hành động gì khi kết nối một thiết bị mới và cài đặt trình điều khiển chưa?

Đồng ý rằng theo quan điểm của người dùng, quá trình cài đặt trình điều khiển trong Windows, trong hầu hết các trường hợp, trông khá nhàm chán. Biểu tượng trình hướng dẫn cài đặt hoạt hình thông thường xuất hiện trong khay hệ thống và sau một thời gian, hệ thống có thể đưa ra báo cáo về việc hoàn thành thành công hoặc không thành công quy trình cài đặt cho trình điều khiển thiết bị mới trong hệ thống. Hơn nữa, thông thường, trình hướng dẫn cài đặt, ngoài chính biểu tượng này trong khay, không cung cấp bất kỳ xác nhận trực quan nào về nỗ lực cài đặt thiết bị mới, đồng thời “lặng lẽ” thêm thiết bị mới vào danh sách thiết bị và đánh dấu nó bằng một biểu tượng đặc biệt trong người quản lý thiết bị, cung cấp cho người dùng chế độ thủ công tiếp tục cấu hình thiết bị. Tất cả các quy trình bên ngoài này, đã được cả bạn và tôi biết đến, đều hiện diện ở dạng này hay dạng khác trong tất cả các phiên bản hệ điều hành Windows gần như kể từ khi hệ điều hành này xuất hiện, chỉ khác nhau một chút về chi tiết. Chúng trở nên quen thuộc và quen thuộc đến mức tôi thậm chí chưa bao giờ nghĩ đến chuyện gì đang xảy ra “ở phía bên kia màn hình”, trong sâu thẳm hệ điều hành, điều gì ẩn giấu dưới sự tưởng chừng như tầm thường này? Như bạn sẽ thấy bên dưới, việc cài đặt Trình điều khiển Windowsđối với một thiết bị vật lý hoặc logic ẩn giấu khá thú vị và quá trình phức tạp. Thuật toán cài đặt trình điều khiển trong Windows có thể được chia thành các nhiệm vụ chung chính sau:

  • Sao chép tệp nhị phân trình điều khiển vào thư mục thích hợp trên hệ thống;
  • Đăng ký lái xe tại Hệ thống Windows chỉ ra phương pháp tải;
  • Phép cộng thông tin cần thiết vào sổ đăng ký hệ thống;
  • Sao chép/cài đặt các thành phần hỗ trợ liên quan từ gói trình điều khiển;

Ngoài các tác vụ chính được thực hiện như một phần của thuật toán cài đặt trình điều khiển trong Windows, sẽ rất tốt nếu phân loại các điều kiện mà quá trình cài đặt trình điều khiển Windows bắt đầu:

  • Người dùng cài đặt một thiết bị mới vào một máy tính đã tắt. Trong trường hợp này, quá trình phát hiện thiết bị mới và cài đặt trình điều khiển đã bắt đầu ở giai đoạn tải hệ điều hành.
  • Người dùng có quyền quản trị viên cục bộ, sử dụng phần đính vào Trình quản lý Thiết bị, sẽ bắt đầu cài đặt hoặc cập nhật trình điều khiển cho thiết bị đã được cài đặt.
  • Người dùng “đang di chuyển” kết nối thiết bị mới với máy tính đang chạy. Trong trường hợp này Chúng ta đang nói về về một danh mục thiết bị nhất định có thể kết nối nhanh chóng, chẳng hạn như các thiết bị có kết nối bên ngoài giao diện eSata, USB, v.v. Rốt cuộc, bạn sẽ không lắp card màn hình bên trong khi cấp nguồn cho các khe cắm PCIe? Cá nhân tôi chưa làm điều này :)
  • Người dùng khởi chạy chương trình cài đặt gói trình điều khiển một cách độc lập từ bên dưới tài khoản với quyền quản trị viên cục bộ. Phương pháp này có thể được sử dụng vừa để cài đặt trình điều khiển cho các thiết bị vật lý hỗ trợ tiêu chuẩn Plug and Play, vừa cài đặt trình điều khiển không phải PnP (cũ) mà hệ thống không thể tự động phát hiện và không thể cài đặt ngoại trừ ở chế độ thủ công. Một ví dụ điển hình là phần mềm diệt virus hoặc máy ảo ai cài đặt trình điều khiển của họ thiết bị logic vào hệ thống.
  • Người dùng nhấp chuột phải vào tệp .inf trong thư mục trình điều khiển và chọn Cài đặt từ tài khoản có quyền quản trị viên cục bộ.

Nhưng bản thân gói trình điều khiển là gì? Rốt cuộc, như chúng ta đã thấy hơn một lần, đây là cả một tập hợp các tệp với mục đích thoạt nhìn hoàn toàn khác nhau. Nếu không xem xét sâu hơn về cấu trúc của gói cài đặt trình điều khiển, chúng ta sẽ khó có thể hiểu được chính thuật toán cài đặt trình điều khiển nên chúng tôi sẽ trình bày các thành phần chung:

  • (các) tệp .inf. Một tập tin mô tả quá trình cài đặt trình điều khiển. Thành phần chính của gói cài đặt trình điều khiển. inf bao gồm các hướng dẫn cho Windows biết chính xác cách cài đặt trình điều khiển: mô tả thiết bị sẽ được cài đặt, vị trí nguồn và đích của tất cả các thành phần trình điều khiển, các thay đổi khác nhau phải được thực hiện đối với sổ đăng ký khi cài đặt trình điều khiển Windows, thông tin về trình điều khiển sự phụ thuộc, v.v. liên kết tập tin .inf thiết bị vật lý có tài xế điều khiển thiết bị này.
  • (Các) tệp nhị phân trình điều khiển. Gói này tối thiểu phải chứa tệp .sys hoặc .dll cho lõi trình điều khiển.
  • Các tệp thực thi cài đặt. Thông thường đây là những tiện ích cài đặt đã nổi tiếng, có tên setup.exe, install.exe và một số tiện ích khác.
  • Loại bỏ các tệp thực thi. Đây thường là các tiện ích gỡ cài đặt được đặt tên là uninstall.exe.
  • Các tập tin) thủ tục bổ sung và thư viện. Thông thường đây là các thư viện phụ trợ ở định dạng .dll, các trình đồng cài đặt.
  • (các) tệp .cat. Tệp danh mục được ký điện tử. Các tệp này chứa chữ ký thư mục kỹ thuật số và hoạt động như chữ ký cho các tệp gói mà người dùng có thể xác định nguồn gốc của gói và xác minh tính toàn vẹn của các tệp gói trình điều khiển. Bắt buộc ở phiên bản 64-bit Phiên bản Windows, bắt đầu với Vista trở lên và được đề xuất cho những người khác.
  • Mô-đun điều khiển chế độ người dùng. Thông thường, đây là các ứng dụng lệnh khác nhau chạy trong chế độ người dùng, chẳng hạn như ATI Catalist Trung tâm điều khiển, Bàn âm thanh VIA HD, Realtek HD Kiểm soát âm thanh Bảng điều khiển và tương tự.
  • Tập tin trợ giúp. Chúng ta sẽ ở đâu nếu không có họ?

Điều khoản và định nghĩa

Trong bài viết này, tôi sẽ chỉ mô tả một phương pháp cài đặt, trong mọi trường hợp, mô tả hầu hết tất cả các giai đoạn của thuật toán cài đặt trình điều khiển trong Windows, cũng có thể áp dụng cho các phương pháp khác. Và bây giờ chúng ta sẽ nói về tình huống khi người dùng lắp thiết bị mới, chẳng hạn như card màn hình, vào đầu nối bên trong của máy tính đã tắt. Nhưng trước tiên hãy giới thiệu một số định nghĩa mà chúng ta cần trong quá trình nghiên cứu thuật toán cài đặt driver.
Trình quản lý (người điều phối) Plug and Play (Trình quản lý PnP, Trình quản lý PnP)- đám mây chế độ kernel và mã chế độ người dùng, chịu trách nhiệm thêm, nhận dạng, xóa thiết bị trong hệ thống. Khối chế độ kernel tương tác với phần còn lại của hệ thống trong quá trình khởi động/cài đặt phần mềm cần thiết để phục vụ các thiết bị có sẵn trong hệ thống. Khối chế độ người dùng ( %Windir%\System32\umpnpmgr.dll, chạy trong ngữ cảnh chính quy trình hệ thống svchost.exe) chịu trách nhiệm tương tác với người dùng trong các tình huống yêu cầu cài đặt trình điều khiển mới hoặc điều chỉnh các thông số vận hành trong những trình điều khiển đã được cài đặt. Chịu trách nhiệm phân công và phân bổ tiếp theo các tài nguyên phần cứng như ngắt (IRQ), cổng I/O, kênh truy cập bộ nhớ trực tiếp (DMA) và địa chỉ bộ nhớ. Có chức năng xác định driver cần hỗ trợ thiết bị cụ thể và chức năng tải xuống/cài đặt của người lái xe này. Có khả năng nhận dạng các thiết bị mới, phản hồi kết nối và ngắt kết nối của chúng. Là một phần của mã điều hành Hệ thống con Windows.

Đếm số thiết bị

Không có ích gì khi mô tả toàn bộ giai đoạn tải ngay từ đầu và chúng tôi sẽ chỉ bắt đầu với giai đoạn mà chúng tôi quan tâm, tại đó mô-đun Winload(.efi) tải kernel của hệ điều hành Windows 7 từ tệp ntoskrnl .exe. Hạt nhân được khởi chạy bởi trình quản lý PnP, là một phần của hệ thống con điều hành. Trình quản lý PnP bắt đầu quá trình liệt kê các thiết bị từ thiết bị gốc, trình điều khiển bus ảo có tên ROOT, đại diện cho toàn bộ hệ thống và là trình điều khiển bus cho tất cả các thiết bị PnP và không phải PnP, cũng như HAL (trừu tượng hóa cấp độ phần cứng) . HAL ở giai đoạn này hoạt động như một trình điều khiển xe buýt liệt kê các thiết bị được kết nối trực tiếp với bo mạch chủ. Tuy nhiên, HAL, thay vì thực sự liệt kê nó, lại dựa vào mô tả phần cứng đã có trong sổ đăng ký. Mục tiêu của HAL là ở giai đoạn này- phát hiện các xe buýt chính như PCI. Trình điều khiển chính Xe buýt PCI, lần lượt liệt kê các thiết bị được kết nối với xe buýt này, tìm các xe buýt khác mà người quản lý PnP tải ngay trình điều khiển. Những tài xế xe buýt này lần lượt phát hiện các thiết bị trên xe buýt của họ. Quá trình liệt kê đệ quy, tải trình điều khiển và sau đó liệt kê tiếp tục cho đến khi tất cả các thiết bị trên hệ thống được phát hiện và định cấu hình. Trong quá trình liệt kê, trình quản lý PnP xây dựng cây thiết bị mô tả duy nhất mối quan hệ giữa tất cả các thiết bị trong hệ thống. Các nút trong cây này, được gọi là devnodes (viết tắt của nút thiết bị), chứa thông tin về một đối tượng thiết bị, từ đó mô tả chi tiết về thiết bị.
Bản ghi của tất cả các thiết bị đã được phát hiện kể từ khi cài đặt hệ thống được lưu trữ trong trung tâm đăng ký HKLM\HỆ THỐNG\CurrentControlSet\Enum. Các plugin của tổ ong này mô tả các thiết bị trong định dạng sau:

HKLM\SYSTEM\CurrentControlSet\Enum\Enumerator\DeviceID\InstanceID

HKLM\HỆ THỐNG\CurrentControlSet\Enum\

  • Điều tra viên - tên của tài xế xe buýt. Có thể lấy các giá trị: ACPI, DISPLAY, HDAUDIO, HID, HDTREE, IDE, PCI, PCIIDE, Root, STORAGE, SW, UMB, USB, USBSTOR và các giá trị khác;
  • ID thiết bị - mã định danh duy nhất cho thuộc loại này thiết bị;
  • InstanceID - mã định danh duy nhất cho các phiên bản khác nhau của cùng một thiết bị.

Thực tế là người điều khiển xe buýt mà thiết bị được kết nối sẽ yêu cầu thiết bị thông số khác nhau(mã định danh của nhà sản xuất, thiết bị, bản sửa đổi, v.v.) và tạo thành cái gọi là mã định danh phần cứng (HardwareID), mô tả duy nhất thiết bị và là một chuỗi các tham số được phân tách bằng dấu & và bao gồm các phần sau:

  • Tiền tố mô tả bus mà thiết bị được kết nối.
  • ID thiết bị. Bao gồm một số phần, chẳng hạn như mã nhận dạng nhà sản xuất, mã nhận dạng sản phẩm (kiểu máy), bản sửa đổi thiết bị.

HardwareID là một chuỗi nhận dạng phụ thuộc vào các thông số thiết bị (nhà sản xuất, kiểu máy, bản sửa đổi, phiên bản, v.v.) mà Windows sử dụng để khớp thiết bị với tệp .inf trình điều khiển.

Cấu trúc HardwareID điển hình:

PCI\VEN_10DE&DEV_1341&SUBSYS_2281103C&REV_A2

Ngoài HardwareID, thiết bị được gán (các) tham số Tương thíchID, có định dạng tương tự, nhưng chỉ chứa các giá trị chung hơn không chứa các tham số dành riêng cho thiết bị (một số mã định danh thiết bị) và cần thiết để khởi tạo một phạm vi rộng hơn của thiết bị tương thích.

HardwareID và FutureID được mã điều hành Windows sử dụng để tìm trình điều khiển thiết bị.

Phát hiện trình điều khiển

Nếu, trong giai đoạn liệt kê thiết bị và tải trình điều khiển, trình quản lý PnP ở chế độ kernel gặp một thiết bị không có trình điều khiển được liên kết với nó, nó sẽ truy vấn trình điều khiển của bus mà thiết bị mới được kết nối và lấy HardwareID và, tùy chọn , ID tương thích của thiết bị. Trình quản lý PnP chế độ kernel thông báo cho trình quản lý PnP chế độ người dùng một sự kiện đặc biệt rằng thiết bị này yêu cầu cài đặt, chuyển cho nó các mã định danh đã nhận. Trình quản lý PnP ở chế độ người dùng trước tiên sẽ cố gắng cài đặt thiết bị tự động mà không cần sự can thiệp của người dùng. Để thực hiện việc này, trình quản lý PnP ở chế độ người dùng chạy tiện ích rundll32.exe để khởi chạy Trình hướng dẫn cài đặt trình điều khiển thiết bị (%Windir%\System32\Newdev.dll).

Trình hướng dẫn cài đặt trình điều khiển thiết bị bắt đầu tìm kiếm trình điều khiển phù hợp cho thiết bị bằng cách sử dụng thông tin từ tất cả các tệp inf hệ thống nằm ở các vị trí hệ thống đáng tin cậy sau:

  • Kho lưu trữ trình điều khiển;
  • Cập nhật hệ điều hành Window;
  • Thư mục hệ thống của các tệp INF;

Với mục đích tìm kiếm và cài đặt trình điều khiển nêu trên, các chức năng của thư viện setupapi.dll (chức năng hỗ trợ cài đặt) và cfgmgr32.dll (trình quản lý cấu hình) được sử dụng. Trong quá trình tìm kiếm, những thứ đã thu được sẽ được sử dụng. khoảnh khắc này Mã định danh HardwareID và (tùy chọn) Tương thíchID, các giá trị mô tả mọi thứ những lựa chọn khả thi nhận dạng phần cứng trong tệp cài đặt trình điều khiển, tức là tệp inf. Các giá trị định danh của thiết bị đã cài đặt được so sánh với các giá trị được mô tả trong phần Mô hình của tệp inf đã đăng ký trong hệ thống. Danh sách các mã định danh được sắp xếp sao cho các bộ mô tả phần cứng cụ thể hơn sẽ được trình bày đầu tiên trong danh sách. Nếu tìm thấy kết quả trùng khớp ID trong nhiều tệp inf thì kết quả khớp chính xác hơn sẽ được ưu tiên hơn kết quả khớp ít hơn. kết hợp chuẩn xác, các tệp inf đã ký được ưu tiên hơn các tệp chưa được ký và các tệp inf đã ký sau này được ưu tiên hơn các tệp đã ký trước đó. Nếu không tìm thấy kết quả khớp dựa trên HardwareID thì tất nhiên, FutureID sẽ được sử dụng, nếu có. Nếu không tìm thấy kết quả khớp dựa trên ID tương thích, Trình hướng dẫn Thêm phần cứng có thể nhắc bạn chỉ định vị trí tài xế mới thiết bị. Chúng ta hãy xem xét kỹ hơn tất cả các nguồn thông tin về trình điều khiển này.

Kho trình điều khiển

Trình hướng dẫn cài đặt trình điều khiển cố gắng định vị tệp inf phù hợp trong kho trình điều khiển hệ thống, nằm trong thư mục %Windir%\System32\DriverStore, chứa tất cả, không có ngoại lệ, trình điều khiển hệ thống có trong bản phân phối Windows, có được thông qua "dịch vụ" cập nhật hệ điều hành Window", hoặc được người dùng cài đặt vào hệ thống.

Kho driver là một vị trí hệ thống an toàn, một thư mục được thiết kế để lưu trữ tất cả các gói driver đã từng được cài đặt trên hệ thống.

Kho trình điều khiển được giới thiệu lần đầu tiên vào năm Windows Vista. Trước khi cài đặt bất kỳ trình điều khiển nào vào hệ thống, đầu tiên mã chuyên dụng sẽ kiểm tra chữ ký số của trình điều khiển, sau đó là cú pháp của tệp inf trình điều khiển, sau đó là các đặc quyền người dùng hiện tại, chỉ sau đó mới đưa tất cả các thành phần trình điều khiển vào kho trình điều khiển hệ thống. Nhưng khi đó driver nằm trong kho driver có thể được sử dụng để cài đặt các thiết bị trên hệ thống. Vì quy trình đặt trình điều khiển vào kho lưu trữ khá phức tạp nên kho lưu trữ trình điều khiển là nguồn thông tin đáng tin cậy nhất về trình điều khiển.

Thư mục hệ thống của tập tin INF

Song song, hệ thống tìm kiếm trình điều khiển ở vị trí hệ thống được mô tả bằng giá trị của tham số DevicePath nằm trong nhánh đăng ký HKLM\Software\Microsoft\Windows\CurrentVersion. Thông thường, giá trị là %SystemRoot%\inf, giá trị này trên hầu hết các hệ thống tương đương với vị trí C:\Windows\inf.

Tệp INF

Tôi muốn lạc đề một chút và nói riêng về tập tin thông tin gói trình điều khiển. inf là một trong những thành phần chính của bộ trình điều khiển. Nó lưu trữ trình tự các thao tác cài đặt và gỡ cài đặt trình điều khiển, được mô tả bằng các chỉ thị đặc biệt cho biết vị trí của các tệp trình điều khiển chức năng. Tệp chứa các lệnh thêm thông tin vào sổ đăng ký chịu trách nhiệm liệt kê (Enum) trình điều khiển và lớp (Lớp) của nó và có thể chứa các hướng dẫn để Trình hướng dẫn cài đặt phần cứng khởi chạy cái gọi là trình cài đặt chính (Trình cài đặt lớp) và các trình cài đặt bổ sung ( CoInstaller, Co-installer) cho lớp thiết bị và chính thiết bị đó. Ngoài ra, tệp inf còn xác định loại, nhà sản xuất, kiểu thiết bị, loại trình điều khiển, tập tin cần thiết và tài nguyên.

Trình đồng cài đặt (có cấu trúc DLL thông thường) là trình cài đặt bổ sung được gọi ở giai đoạn cài đặt, thực hiện các bước cài đặt cụ thể cho lớp con hoặc thiết bị, chẳng hạn như chuẩn bị cơ sở hạ tầng để trình điều khiển hoạt động trong hệ thống (ví dụ: cài đặt NET.Framework), xuất cấu hình những hộp thoại, cho phép người dùng chỉ định cài đặt cho một thiết bị cụ thể.

Một tính năng quan trọng của trình đồng cài đặt là, nếu cần, chúng liên kết các phiên bản của thiết bị mới với các giao thức cần thiết để hoạt động. Ví dụ, điều này có thể liên quan đến nhiều loại thiết bị liên lạc, yêu cầu nhiều giao thức và phương thức vận chuyển khác nhau để hoạt động, chẳng hạn như ndis, pppoe, tcpip, tcpip6, smb, netbt.
Tệp .inf còn mô tả thêm các hoạt động giải nén, sao chép, chạy, đổi tên tệp, thêm và xóa khóa trong sổ đăng ký, v.v.
Tuy nhiên, hãy quay lại thuật toán chính để cài đặt trình điều khiển trong Windows. Nếu trình cài đặt trình điều khiển thiết bị không tìm thấy trình điều khiển phù hợp ở các vị trí được liệt kê ở trên, hệ thống sẽ đánh dấu thiết bị là không xác định.

Trong trường hợp này, người dùng được yêu cầu tiếp tục cài đặt thiết bị thông qua applet. quản lý thiết bị. Sau khi người dùng độc lập chọn thiết bị và chỉ định vị trí của tệp trình điều khiển, thuật toán cài đặt trình điều khiển sẽ tiếp tục công việc của nó và bước tiếp theo sẽ bắt đầu kiểm tra chữ ký số trình điều khiển.

Xác minh chữ ký số của trình điều khiển

Thực tế là trình điều khiển, như một phần của mã chế độ kernel, là một thành phần khá quan trọng của hệ điều hành và bất kỳ lỗi nào do nhà phát triển mắc phải trong mã trình điều khiển đều có thể dễ dàng dẫn đến lỗi nghiêm trọng (BSOD) trong hệ thống. Từ lâu, Microsoft khá nhạy cảm với chất lượng mã trình điều khiển và liên quan đến vấn đề này, các cơ chế như chữ ký số trình điều khiển và chính sách chữ ký trình điều khiển hệ thống đã được đưa vào hệ điều hành Windows.

Chữ ký số của trình điều khiển là một chuỗi dữ liệu có độ dài thay đổi nhằm đảm bảo rằng mã trình điều khiển được tạo bởi một nguồn đáng tin cậy và không bị sửa đổi trái phép.

Bước tiếp theo là phần chế độ người dùng của mã trình quản lý PnP, phần này sẽ kiểm tra chính sách ký trình điều khiển hệ thống. Nếu chính sách hệ thống hướng dẫn mã hạt nhân chặn hoặc cảnh báo về việc cài đặt trình điều khiển không có chữ ký, thì trình quản lý PnP sẽ phân tích tệp inf trình điều khiển để tìm sự hiện diện của lệnh CatalogFile trỏ đến tệp danh mục (tệp có phần mở rộng .cat) chứa chữ ký số của gói trình điều khiển.

Tệp danh mục (.cat) - tập tin đặc biệt, đóng vai trò chữ ký số cho toàn bộ gói trình điều khiển, vì mỗi tệp có trong gói trình điều khiển không được ký riêng. Ngoại lệ duy nhất là các tệp nhị phân của trình điều khiển hạt nhân giai đoạn khởi động, nhưng chúng được kiểm tra mã riêng hạt nhân.

Một phòng thí nghiệm được thành lập để kiểm tra trình điều khiển và ký tên cho họ Microsoft Windows Phòng thí nghiệm chất lượng phần cứng (WHQL), nơi kiểm tra kỹ lưỡng các trình điều khiển được cung cấp cùng với các bản phân phối Windows cũng như trình điều khiển từ các nhà cung cấp phần cứng lớn. Đối với tất cả các nhà phát triển trình điều khiển khác, quy trình được cung cấp để có được khả năng ký tên trình điều khiển độc lập cho trên cơ sở trả phí. Khi trình điều khiển vượt qua tất cả các bài kiểm tra WHQL, nó sẽ trở thành "đã được ký". Điều này có nghĩa là đối với trình điều khiển, WHQL tạo ra một hàm băm hoặc chữ ký duy nhất xác định duy nhất các tệp trình điều khiển và sau đó ký tên bằng cách sử dụng thuật toán mật mã sử dụng một đặc biệt khóa riêng Microsoft đã từng ký trình điều khiển. Hàm băm đã ký được đặt trong một tệp thư mục (tệp .cat) được đặt trực tiếp trong thư mục gói trình điều khiển.
Trong quá trình cài đặt trình điều khiển, trình quản lý PnP ở chế độ người dùng trích xuất chữ ký trình điều khiển từ tệp .cat, giải mã chữ ký bằng khóa chung của Microsoft và so sánh hàm băm kết quả với hàm băm của tệp trình điều khiển đã cài đặt. Nếu giá trị băm khớp nhau thì trình điều khiển được đánh dấu là đã vượt qua bài kiểm tra WHQL. Nếu không thể xác minh chữ ký, người quản lý PnP sẽ hành động theo cài đặt của chính sách ký trình điều khiển hệ thống, cấm cài đặt trình điều khiển hoặc vẫn cho phép cài đặt trình điều khiển.

Tạo bản sao lưu

Khá tốt Chiến lược Windows tạo điểm khôi phục trước khi thêm trình điều khiển thiết bị mới vào hệ thống. Điều này trước hết là do trình điều khiển chế độ kernel có lỗi có thể khiến hệ thống hoàn toàn không thể hoạt động được, vậy thì chúng ta nên làm gì với hệ thống này? Ngay cả khi có tất cả các chữ ký và kiểm tra, người dùng vẫn có thể khôi phục cấu hình nếu, chẳng hạn, anh ta không thích thứ gì đó sau khi cài đặt.

Cài đặt trình điều khiển

Tại thời điểm này, gói trình điều khiển của bên thứ ba được triển khai vào kho trình điều khiển hệ thống. Sau đó, hệ thống thực hiện cài đặt thực tế trình điều khiển từ kho trình điều khiển, việc này được thực hiện bằng tiện ích %Windir%\System32\drvinst.exe. Ở giai đoạn này xảy ra các sự kiện sau:

  • inf của trình điều khiển được sao chép vào thư mục chuyên dụng %Windir%/inf. Dành cho người lái xe nhà phát triển bên thứ ba Thông thường người ta đổi tên tệp thành OEMx.inf, trong đó x là số sê-ri của tệp inf trong thư mục.
  • Mã hệ điều hành ghi lại thực tế cài đặt tệp inf trong sổ đăng ký.
  • Một nút thiết bị được tạo trong sổ đăng ký dọc theo đường dẫn HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ \\ , trong đó có chứa thông tin chi tiết về thiết bị.
  • Các tệp nhị phân của trình điều khiển được sao chép vào thư mục đích %Windir%\System32\DRIVERS và có thể cả các thư mục đích khác. Khóa đăng ký được cập nhật.
  • Khóa đăng ký tương ứng với trình điều khiển được tạo: HKLM\HỆ THỐNG\CurrentControlSet\Services\driver_name. Các tham số chính được tạo ra.
  • Khóa đăng ký chịu trách nhiệm ghi nhật ký các sự kiện trình điều khiển được tạo, nằm trong nhánh HKLM\SYSTEM\CurrentControlSet\Services\EventLog\System\driver_name.
  • Trình quản lý PnP gọi thủ tục DriverEntry cho mỗi trình điều khiển mới được cài đặt. Sau đó, trình quản lý PnP ở chế độ kernel sẽ cố gắng "khởi động" trình điều khiển bằng cách tải nó vào bộ nhớ và gọi thủ tục AddDevice của trình điều khiển để thông báo cho chính trình điều khiển về sự hiện diện của thiết bị được tải.

Thông tin tài xế Vị trí

Ngoài việc mô tả chính thuật toán cài đặt trình điều khiển trong Windows, tôi muốn nêu bật một phần riêng biệt và dành nó để mô tả các vị trí có thể đặt thông tin về trình điều khiển trong đó. hệ thống tập tin và đăng ký. Từ quan điểm thực tế, thông tin này nhằm đơn giản hóa chỉnh sửa thủ công trong trường hợp có bất kỳ sự cố nghiêm trọng nào. Sau đây là những vị trí mà bạn có thể nhận thấy dấu vết thông tin về trình điều khiển.

Nhật ký trình điều khiển chung

Có một số nhật ký trong hệ thống có thể giúp bạn nhiều vấn đề khác nhau liên quan đến tài xế.

  • %Windir%\setupact.log -- chứa các thông báo gỡ lỗi từ trình cài đặt trình điều khiển chế độ kernel, là một DLL Win32 đi kèm với quá trình cài đặt thiết bị;
  • %Windir%\inf\setupapi.app.log -- chứa các thông báo từ quá trình cài đặt ứng dụng;
  • %Windir%\inf\setupapi.dev.log -- chứa các thông báo từ quá trình cài đặt thiết bị;

Nhật ký trình điều khiển

Nếu bạn sử dụng Trình quản lý gói (pkgmgr) để cài đặt/gỡ cài đặt một gói, (lần lượt) cài đặt, cập nhật hoặc gỡ cài đặt trình điều khiển thì bạn có cơ hội kích hoạt (cho mục đích gỡ lỗi) việc tạo trình điều khiển tệp nhật ký đặc biệt .log , sẽ chỉ chứa các lỗi cụ thể của trình điều khiển. Để tạo nhật ký này, hãy tạo/chỉ định phím tiếp theođăng ký, rồi chạy lại pkgmgr. Sau đó, tệp driver.log sẽ được tạo trong thư mục nơi pkgmgr được khởi chạy.
Chi nhánh: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Device Installer
Khóa: DebugPkgMgr
Loại: DWord
Giá trị: 1

%Windir%\inf

Tất cả các tập tin inf được lưu trữ trong thư mục này. Như đã đề cập ở trên, sau khi cài đặt tài xế bên thứ ba vào hệ thống, tệp inf của nó được đổi tên thành OEMx.inf, vì vậy bạn có thể thấy cả loạt tệp tương tự trong thư mục. Mã hệ điều hành ghi nhớ thực tế là tệp inf đã được cài đặt trong sổ đăng ký.

%Windir%\System32\DRIVERS

Đây là thư mục trong hệ thống tệp Windows nơi chứa các tệp trình điều khiển. Trong các hệ điều hành hiện đại và tôi đang nói về Windows Vista trở lên, phần lớn các trình điều khiển trong thư mục này có phần mở rộng .sys; tuy nhiên, các tệp dll ít phổ biến hơn Nghĩa tổng quátđiều này không thay đổi, vì bất kể phần mở rộng là gì, chúng đều có cấu trúc giống hệt với tệp .dll. Trong các hệ điều hành trước đó, các định dạng như .drv và .vxd đã được tìm thấy.

%Windir%\System32\DriverStore

Một tập hợp các trình điều khiển hệ thống, nhằm chứa từng trình điều khiển đi qua hệ thống của bạn. Được sử dụng kể từ Windows Vista. Trước khi cài đặt bất kỳ trình điều khiển nào vào hệ điều hành, trước tiên, mã chuyên dụng sẽ kiểm tra chữ ký trình điều khiển, sau đó là cú pháp của tệp inf trình điều khiển, sau đó là đặc quyền của người dùng hiện tại và chỉ sau đó thêm tất cả các thành phần trình điều khiển vào bộ sưu tập hệ thống. Và chỉ sau đó, trình điều khiển mới có thể được sử dụng trong hệ thống để cài đặt thiết bị mà không cần bất kỳ sự can thiệp nào của người dùng.

HKLM\HỆ THỐNG\CurrentControlSet\Enum

Một trung tâm đăng ký chứa thông tin về các thiết bị có trong hệ thống. Trình quản lý PnP tạo khóa ở đây cho từng thiết bị ở định dạng HKLM\SYSTEM\CurrentControlSet\Enum\Enumerator\deviceID. trong đó Enumerator là mã định danh bus được mô tả ở trên trong bài viết, thu được ở giai đoạn liệt kê thiết bị, deviceid là mã định danh loại thiết bị. Chìa khóa chứa các thông tin sau: mô tả thiết bị, số nhận dạng phần cứng (ID phần cứng), số nhận dạng thiết bị tương thích (ID tương thích) và yêu cầu tài nguyên. Tổ ong được dành riêng để sử dụng riêng cho mã hệ điều hành, vì vậy ứng dụng người dùng và trình điều khiển không được khuyến khích tương tác trực tiếp với nó nhưng được khuyến khích sử dụng các chức năng hệ thống được ghi lại.

HKLM\HỆ THỐNG\CurrentControlSet\Control

Tổ chức đăng ký chứa thông tin về thông số khác nhau cấu hình trình điều khiển ở giai đoạn khởi động hệ điều hành. Chứa các khóa quan trọng như:

  • Lớp chứa thông tin về các lớp cài đặt thiết bị, được sử dụng để nhóm các thiết bị được cấu hình và cài đặt theo cách tương tự. Đối với mỗi lớp cài đặt, khóa này chứa một khóa có tên khớp với tên GUID của lớp cài đặt tương ứng.
  • CoDeviceInstallers chứa thông tin về trình đồng cài đặt lớp
  • DeviceClass chứa thông tin về giao diện thiết bị được đăng ký trong hệ thống. bất kỳ trình điều khiển nào muốn tương tác với các chương trình chế độ người dùng trên hệ thống đều phải cung cấp giao diện. Lớp giao diện thiết bị cung cấp chức năng thiết bị và trình điều khiển của nó cho người khác thành phần hệ thống và các ứng dụng chế độ người dùng.

HKLM\HỆ THỐNG\CurrentControlSet\Services

Trung tâm đăng ký được sử dụng để đặt thông tin về tất cả các dịch vụ (trình điều khiển) trong hệ thống. Mọi trình điều khiển hệ thốngđặt thông tin toàn cầu khá quan trọng về chính nó trong các kết nối như HKLM\HỆ THỐNG\CurrentControlSet\Services\<Имя_драйвера> , được trình điều khiển sử dụng trong quá trình khởi tạo ở giai đoạn khởi động hệ thống. Tổ ong được người quản lý PnP tích cực sử dụng để truyền tham số khi gọi quy trình khởi tạo trình điều khiển.
Bụi cây này chứa các yếu tố sau:

  • ImagePath - chứa đường dẫn đầy đủ đến tập tin nhị phân(hình ảnh) trình điều khiển. chương trình cài đặt điền giá trị này dựa trên dữ liệu từ tệp inf của gói trình điều khiển;
  • Tham số - lưu trữ thông tin trình điều khiển riêng lẻ, được điền dựa trên dữ liệu được đặt trong tệp inf của gói trình điều khiển;
  • Hiệu suất - thông tin để theo dõi hiệu suất của thiết bị do người lái xe điều khiển. Chỉ định tên của DLL giám sát hiệu suất và tên của các hàm được xuất bởi DLL này. Điền vào dựa trên dữ liệu thu được từ tệp inf;

HKLM\HỆ THỐNG\CurrentControlSet\HardwareProfiles

Một trung tâm đăng ký chứa thông tin về cấu hình phần cứng hệ thống và được thiết kế để hỗ trợ công nghệ này. Cấu hình phần cứng chỉ là một tập hợp các thay đổi đối với cấu hình phần cứng tiêu chuẩn và cấu hình dịch vụ (cấu hình gốc), được tải khi khởi động hệ thống. Chứa các thay đổi cụ thể đối với cấu hình phần cứng chính, ban đầu được định cấu hình trong hai khóa đăng ký: HKLM\SOFTWARE và HKLM\SYSTEM. Không được sử dụng trong Windows 7, mặc dù các khóa đăng ký vẫn còn, có thể vì lý do tương thích.