Win98, tôi dùng các lệnh Inport và Outport trong file port.dll để ghép nối máy tính. Khi chuyển sang HĐH WinXP thì các lệnh này khi gọi đều bị lỗi?

Trước đây với Win98, tôi dùng các lệnh Inport và Outport trong file port.dll để ghép nối máy tính. Khi chuyển sang HĐH WinXP thì các lệnh này khi gọi đều bị báo lỗi, Win2000 cũng vậy. Mong được giải đáp về cơ chế hoạt động khác nhau giữa Win98 và WinXP/2000, và cách giải quyết.
PhanHungSon
PhanHungSon
Trả lời 16 năm trước
: Win9x và WinMe chỉ là những HĐH cho người dùng cá nhân nên cơ chế bảo mật còn rất hạn chế, nhờ đó ứng dụng trong Win9x và WinMe có thể gọi lệnh Inport hay Outport hầu truy xuất dễ dàng các cổng của các thiết bị I/O. Tuy nhiên trên WinNT/2000/XP, Microsoft đã thực hiện cơ chế bảo mật tốt hơn nhiều, các HĐH này giám sát rất chặt hoạt động của ứng dụng, mỗi lần thấy ứng dụng thực hiện lệnh Inport hay Outport (hay nhiều lệnh “nhạy cảm” khác), HĐH không thực hiện mà chỉ báo lỗi, nhờ đó ứng dụng không có cách gì qua mặt hệ thống để thực hiện công việc có nguy cơ làm hỏng HĐH. Nếu muốn truy xuất các thiết bị I/O, bạn phải viết các đoạn lệnh truy xuất trực tiếp phần cứng này trong một device driver theo đúng định dạng và qui định của HĐH, code của ứng dụng sẽ gọi hàm trong device driver chứ không được phép truy xuất trực tiếp phần cứng nữa. Bạn có thể tìm bộ CD DDK (Device Developing Kit) để đọc tài liệu cùng các thí dụ mẫu về các device driver của WinXP, từ đó xây dựng device driver cho thiết bị của mình.