Không rõ lỗi này bắt đầu xuất hiện từ khi nào, nhưng mình nhận thấy một tình huống khá kỳ lạ, khi sử dụng Microsoft Edge, nếu liên tục đóng nhiều tab bằng phím tắt Ctrl + W, đôi lúc mọi thứ vẫn bình thường, nhưng có lúc Windows Explorer (explorer.exe) bị crash rồi tự khởi động lại
Hiện tượng này xảy ra ngẫu nhiên nên khá khó xác định nguyên nhân
Kiểm tra Event Viewer
Mở Event Viewer thì thấy hai lỗi xuất hiện cùng thời điểm
- Lỗi đầu tiên:
Application: explorer.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: exception code c0000005, exception address 00007FFDBFADB86C
- Và ngay sau đó là:
Faulting application name: explorer.exe, version: 10.0.19041.7548, time stamp: 0xd203369f Faulting module name: twinui.pcshell.dll, version: 10.0.19041.7548, time stamp: 0xb52c92a9 Exception code: 0xc0000005 Fault offset: 0x00000000000eb86c Faulting process id: 0x7e44 Faulting application start time: 0x01dd16fc529380d5 Faulting application path: C:\Windows\explorer.exe Faulting module path: C:\Windows\system32\twinui.pcshell.dll Report Id: 2703d261-bb2b-4848-9c4b-eb37c7517f88 Faulting package full name: Faulting package-relative application ID:
twinui.pcshell.dll là một thành phần của Windows Shell, vì vậy ban đầu mình đoán có lẽ hệ điều hành đã dùng nhiều năm nên phát sinh lỗi
Thử cài lại Windows
Tiện thể thấy Windows cũng không còn mượt như trước, mình quyết định cài mới hoàn toàn, nhưng lỗi vẫn xuất hiện y hệt
Lúc này mình chuyển sang nghi ngờ DisplayFusion, vì Event Viewer có nhắc tới .NET Runtime, trong khi DisplayFusion cũng sử dụng .NET và tích hợp rất sâu vào Explorer
- Gỡ DisplayFusion, Directory Opus
- Quay về phiên bản cũ ra mắt từ vài năm trước
- Thay thế bằng các ứng dụng khác Actual Multiple Monitors …
- Gỡ/tắt tất cả ứng dụng có thích hợp menu vào Explorer qua shexview
Kết quả là tần suất crash có vẻ giảm, nhưng vẫn không hết, đến đây mình quyết định kiểm tra theo cách triệt để hơn
- Cài mới hoàn toàn Windows một lần nữa, chỉ cài duy nhất Microsoft Edge, không cài bất kỳ phần mềm nào khác
Kết quả vẫn không thay đổi, crash vẫn ngẫu nhiên xuất hiện, điều thú vị là:
- Chỉ Microsoft Edge mới tái hiện được lỗi
- Chrome, Firefox và các trình duyệt Chromium khác đều hoạt động bình thường
Lúc này mình bắt đầu nghi ngờ vấn đề nằm ở chính Edge hoặc cơ chế tích hợp giữa Edge và Windows, do Edge là trình duyệt chính mình dùng hàng ngày, tình huống lỗi thế này thì không ổn, thử dùng ProcDump để tạo dump file khi Explorer crash, sau đó mở bằng WinDbg và chạy lệnh !analyze -v
Sau đó lấy toàn bộ log và nhờ AI phân tích call stack, kết quả cho thấy chuỗi xử lý như sau
Chuỗi sự kiện khi nhấn Ctrl+W trên Edge
- Đóng một tab trong Edge
- Edge thông báo cho Explorer rằng danh sách tab của cửa sổ đã thay đổi thông qua cơ chế COM/RPC (
IWindowTabExtension→WindowTabsChanged) - Explorer nhận sự kiện, cập nhật
WindowTabDataModelvà xác định tab đang hoạt động (ActiveTab) - Trong quá trình lấy
Idcủa tab đang hoạt động (IWindowTabView::Id()), Explorer nhận được một con trỏNULL(rcx = 0) - Lệnh
mov rax, [rcx]cố đọc dữ liệu từ địa chỉ0x0000000000000000, dẫn tới lỗi0xC0000005 (Access Violation)và Explorer bị crash
Khả năng cao đây là race condition hoặc trạng thái dữ liệu không đồng bộ, khiến Explorer nhận được một IWindowTabView không còn hợp lệ (NULL) khi cập nhật tab đang hoạt động, ngắn gọn thì Explorer đang cố truy cập vào một đối tượng tab không còn hợp lệ
Cách khắc phục tạm thời
Vì call stack đều xoay quanh Window Tabs, mình thử tắt toàn bộ các tính năng liên quan đến Tab giữa Windows và Edge
- Windows tìm kiếm
Multitasking
Chỉnh mục “Alt + Tab” thành “Open windows only” (Chỉ mở các cửa sổ)
- Edge đi tới
Appearance→Tabs
Tắt Show tab preview on hover và Show tab groups in favorites bar
Kết quả
Sau khi tắt các tính năng liên quan đến tab trên Windows và Edge, đến thời điểm hiện tại mình chưa gặp lại hiện tượng Explorer crash khi liên tục nhấn Ctrl + W để đóng tab
Đây mới chỉ là workaround, chưa thể khẳng định đã tìm được nguyên nhân gốc hoặc Microsoft đã sửa lỗi, nếu bạn cũng gặp hiện tượng Explorer tự khởi động lại khi đóng nhiều tab trên Edge, có thể thử cách trong bài xem có hiệu quả không, đây là lỗi khá lạ, vì nó xảy ra trên Windows và Edge mới nhất, trong khi trước đây mình dùng Windows và Edge cũ hơn thì chưa gặp tình huống này bao giờ
Bài viết này sẽ được cập nhập, nếu tình huống crash Explorer xuất hiện lại



Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.
• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.
• ✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!