Giới thiệu
Bài viết này mô tả sự cố trong đó mộtn ngoại lệ xảy ra khi nhiều luồng gọi hàm C thời gian chạy "atexit" cùng một lúc trong Windows Embedded Compact 7. Bản Cập Nhật có sẵn để khắc phục sự cố này. Trước khi cài đặt bản cập nhật này, tất cả các bản Cập Nhật đã phát hành cho sản phẩm này phải được cài đặt.
Triệu chứng
Khi nhiều luồng gọi hàm thời gian chạy atexit C cùng lúc trong Windows Embedded Compact 7, ngoại lệ có thể xảy ra. Ngoại lệ xảy ra khi mã gọi hàm atexit không được đăng trên hoặc hàm atexit được đưa bằng trình biên soạn.
Nguyên nhân
Sự cố xảy ra vì chức năng atexit thời gian chạy C không chủ đề an toàn. Do đó, bảng bộ nhớ sử dụng các chức năng bị hỏng.
Giải pháp
Thông tin cập nhật phần mềm
Bản cập nhật phần mềm được hỗ trợ là bây giờ có sẵn từ Microsoft Windows Embedded Compact 7 hàng tháng Cập Nhật (ngày 2017).
Lưu ý Windows nhúng Compact 7 tháng bản cập nhật này có sẵn để tải xuống từ website sau của Microsoft Download Center:
Điều kiện tiên quyết
Bản cập nhật này được hỗ trợ chỉ khi tất cả các bản Cập Nhật đã phát hành cho sản phẩm này cũng đã được cài đặt.
Yêu cầu khởi động lại
Sau khi bạn áp dụng bản cập nhật này, bạn phải thực hiện xây dựng sạch của toàn bộ nền tảng. Để thực hiện việc này, hãy thực hiện một trong những phương pháp sau:
-
Tạo menu bấm Sạch giải phápvà sau đó bấm Tạo giải pháp.
-
Tạo menu, bấm Giải pháp xây dựng lại.
Bạn không phải khởi động lại máy tính sau khi áp dụng bản cập nhật phần mềm này.
Thông tin thay thế bản cập nhật
Bản cập nhật này không thay thế bất kỳ bản Cập Nhật khác.
Thông tin về tệp
Vì đây là một phiên bản đầy đủ sóng. Hầu hết những chương trình bị ảnh hưởng bởi phiên bản này.
Tệp nguồn sau bị ảnh hưởng bởi phiên bản này::
private\winceos\COREOS\core\corelibc\crtw32\startup\cexit.cpp
private\winceos\COREOS\core\corelibc\crtw32\startup\onexit.cThông tin khác
Trong một môi trường multithread, bảng chức năng atexit có thể bị hỏng bởi một atexit cuộc gọi vì không chỉ an toàn. Điều này có thể dẫn đến bộ nhớ lỗi và ngoại lệ. Chức năng atexit đang được sử dụng để đăng ký một mục sẽ được thực hiện khi thoát chương trình hoặc một .dll unloads. Lỗ hổng trong chuỗi an toàn có thể dẫn đến thay đổi này thường thoát và hỏng chức năng thoát khỏi bảng.
Tham khảo
Tìm hiểu thêm về thuật ngữ Microsoft sử dụng để mô tả các bản cập nhật phần mềm.