AutoRun

**AutoRun** và tính năng đồng hành AutoPlay là các thành phần của hệ điều hành Microsoft Windows quyết định những hành động mà hệ thống thực hiện khi một ổ đĩa được kết nối.

AutoRun được giới thiệu trong Windows 95 để dễ dàng cài đặt ứng dụng cho người dùng không hiểu kỹ thuật và giảm chi phí cho các cuộc gọi hỗ trợ phần mềm. Khi một đĩa CD-ROM được cấu hình thích hợp được đưa vào ổ đĩa CD-ROM, Windows sẽ phát hiện sự xuất hiện và kiểm tra nội dung của một tập tin đặc biệt chứa một tập hợp các lệnh. Đối với phần mềm chứa CD, các hướng dẫn này thường bắt đầu cài đặt phần mềm từ đĩa CD-ROM vào ổ đĩa cứng. Để tối đa hóa khả năng cài đặt thành công, AutoRun cũng hoạt động khi ổ đĩa được truy cập ("nhấp đúp") trong Windows Explorer (hoặc "My Computer").

Trước khi có Windows XP, các từ AutoRun và AutoPlay được sử dụng thay thế cho nhau, các nhà phát triển thường sử dụng thuật ngữ AutoRun và người dùng cuối sử dụng thuật ngữ mới AutoPlay. Xu hướng này được phản ánh trong các thiết lập Windows Policy có tên AutoPlay, thay đổi các mục Windows Registry có tên là AutoRun, và trong tập tin autorun.inf làm cho "AutoPlay" được thêm vào menu ngữ cảnh của ổ đĩa. Thuật ngữ này ít quan trọng cho đến khi Windows XP xuất hiện và bổ sung tính năng mới để hỗ trợ người dùng chọn các hành động thích hợp khi phát hiện thấy thiết bị và phương tiện mới. Tính năng mới này được gọi là AutoPlay và kể từ đó hai thuật ngữ này có nghĩa khác nhau.

AutoRun, một tính năng của Windows Explorer (thực sự là của shell32.dll) được giới thiệu trong Windows 95, cho phép phương tiện và thiết bị khởi chạy chương trình bằng cách sử dụng lệnh được liệt kê trong một tệp có tên autorun.inf, được lưu trữ trong thư mục gốc của phương tiện.

Chủ yếu được sử dụng trên đĩa CD-ROM cài đặt, các ứng dụng thường được gọi là các chương trình cài đặt ứng dụng. Tệp autorun.inf cũng có thể chỉ định một biểu tượng sẽ đại diện cho thiết bị trực quan trong Explorer cùng với các tính năng nâng cao khác.

Các thuật ngữ AutoRun và AutoPlay có xu hướng được sử dụng thay thế cho nhau khi đề cập đến hành động khởi tạo, hành động phát hiện và bắt đầu đọc từ các ổ đĩa được máy tính phát hiện. Hình minh họa sơ đồ trong bài viết AutoPlay cho thấy cách AutoRun được định vị như một lớp giữa AutoPlay và dịch vụ Shell Hardware Detection và có thể giúp hiểu được thuật ngữ này. Tuy nhiên, để tránh nhầm lẫn, bài viết này sử dụng thuật ngữ AutoRun khi đề cập đến hành động khởi tạo.

## AutoPlay
AutoPlay là tính năng được giới thiệu trong Windows XP, kiểm tra phương tiện và thiết bị di động và dựa trên nội dung như hình ảnh, tệp nhạc hoặc video, khởi chạy ứng dụng thích hợp để phát hoặc hiển thị nội dung. Nếu có, cài đặt trong tệp autorun.inf có thể thêm vào các tùy chọn được hiển thị cho người dùng.

AutoPlay dựa trên một bộ các ứng dụng xử lý được đăng ký với hệ thống AutoPlay. Mỗi loại phương tiện (hình ảnh, âm nhạc, video) có thể có một chương trình xử lý đã đăng ký có thể xử lý việc phát hoặc hiển thị loại phương tiện đó.

Mỗi thiết bị phần cứng có thể có một hành động mặc định xảy ra khi phát hiện ra một loại phương tiện cụ thể hoặc hộp thoại AutoPlay có thể nhắc người dùng lựa chọn thực hiện một hành động trong danh sách.

## Kích hoạt AutoRun
Trình tự AutoRun bắt đầu với khám phá ban đầu của một thiết bị mới hoặc một phương tiện mới.. Sau khi kiểm tra các thiết lập Windows Registry nhất định để theo dõi điều này, thông báo về các bên quan tâm xảy ra, trong đó vỏ Windows Explorer là mối quan tâm chính. Sau khi thấy nếu AutoRun có thể tiến hành, thì phân tích cú pháp của một autorun.inf tùy chọn có thể xảy ra và bất kỳ hành động cần thiết nào sẽ được thực hiện.

Trình tự ban đầu được xử lý giống nhau trong mọi phiên bản Windows từ Windows 95. Tuy nhiên, cách tệp autorun.inf được đọc và hành động theo và mức tích hợp của AutoRun với AutoPlay đã thay đổi đáng kể so với thời gian AutoPlay được giới thiệu trong Windows XP cho đến cách xử lý hiện tại trong Windows 7. Trong Windows 10, Microsoft đã thêm tùy chọn để bật tự động chạy trong cài đặt của nó. Không chỉ người dùng có thể bật tính năng này mà còn có thể chọn các thiết bị bên ngoài cụ thể được tự chạy.

### Khởi động và thông báo
Khi một thiết bị có trình điều khiển tương thích AutoRun nhận được phương tiện mới, thì sự kiện "Thông báo thay đổi phương tiện" xảy ra. Hệ điều hành Windows sau đó thông báo cho các ứng dụng quan tâm rằng một sự thay đổi thiết bị đã xảy ra. Phương thức thông báo được sử dụng có thể thay đổi tùy thuộc vào loại thiết bị.

Nếu thiết bị thay đổi là một ổ đĩa (như CD) hoặc cổng (như cổng nối tiếp), Windows sẽ phát thông báo WM_DEVICECHANGE tới tất cả các cửa sổ cấp cao nhất. Windows gọi đây là thông báo "cơ bản". Một cửa sổ cấp cao nhất là một cửa sổ con của màn hình nền.

Tuy nhiên, nếu thiết bị thay đổi không phải là một trong những loại ứng dụng này, một ứng dụng có thể gọi hàm RegisterDeviceNotification để đăng ký nhận thông báo thiết bị.

Thiết bị không có khối lượng là những thiết bị không xuất hiện dưới dạng ký tự ổ đĩa trong "My Computer". Chúng không được xử lý bởi bất kỳ phần nào của AutoRun - mọi hành động được thực hiện cho các thiết bị này được thực hiện bằng phần mềm thiết bị cụ thể hoặc bằng AutoPlay. Xem AutoPlay#Thiết bị không phải ổ đĩa.

Khi Explorer nhận được thông báo về thay đổi thiết bị, nó sẽ thực hiện một số tác vụ:
# Kiểm tra xem nếu AutoRun đã bị vô hiệu hóa thông qua Registry. Nếu AutoRun bị vô hiệu hóa cho ổ đĩa hoặc loại ổ đĩa đó, Explorer sẽ không tiến hành thêm. Đã có các lỗi phần mềm trong phần này.
# Kiểm tra xem thư mục gốc của phương tiện được chèn có chứa tệp autorun.inf có thể đọc được không. Xem bên dưới.
# Gửi một tin nhắn QueryCancelAutoPlay đến cửa sổ nền trước. Một ứng dụng đã đăng ký quan tâm đến việc nhận tin nhắn này bằng cách sử dụng RegisterWindowMessage có thể trả lời tin nhắn này để tạm dừng AutoRun (và do đó tạm dừng AutoPlay) tại thời điểm này. Bất kỳ ứng dụng nào, có ở tiền cảnh hay không, cũng có thể được thông báo bằng cách sử dụng giao diện COM IQueryCancelAutoPlay có sẵn trong Windows XP và các phiên bản sau đó.
# Khi người dùng nhấp đúp vào biểu tượng ổ đĩa trong Explorer hoặc nhấp chuột phải để có được menu ngữ cảnh, điều gì xảy ra hoàn toàn có thể lập trình được bằng các cài đặt trong tệp autorun.inf.
# Thêm một biểu tượng điều khiển autorun.inf và văn bản mô tả vào biểu tượng ổ đĩa.
# Kiểm tra xem the phím Shift có được giữ không. Nếu đó là sau đó Windows Vista (và sau này là phiên bản Windows) sẽ gọi hộp thoại AutoPlay bất kể cài đặt ngược lại. Các phiên bản trước của Windows sẽ không tiếp tục với quá trình này.
# Cuối cùng, nếu đến được mục này, thực hiện một trong các hành động: 
#* không thực hiện thêm hành động nào.
#* thực hiện nhiệm vụ của "AutoRun", ứng dụng được chỉ định tùy ý trong các khóa mở hoặc các phím xếp chồng trong phần [autorun] của autorun.inf. 
#* gọi AutoPlay

## Tham khảo