Sự cố về chức năng CreateWindowEx đối với ứng dụng 32-bit trong Windows 10

Trong một số trường hợp, sau khi nâng cấp lên phiên bản mới hơn, Windows 10 gây ra sự cố hoặc các sự cố khác khi gọi hàm CreateWindowEx từ msctf.dll khi cửa sổ được tạo trong một số ứng dụng 32 bit. Trong bài đăng này, chúng tôi sẽ hiểu  chức năng CreateWindowEx là gì - khám phá các nguyên nhân có thể gây ra lỗi chức năng này và sau đó cung cấp giải pháp được khuyến nghị để giảm thiểu sự cố.

Hiểu chức năng CreateWindowEx

Hàm CreateWindowEx

Các ứng dụng Windows(Windows) , bao gồm các ứng dụng .NET sử dụng Windows Forms hoặc Windows Presentation Foundation ( WPF ), tạo cửa sổ của chúng bằng cách gọi các hàm CreateWindowExA hoặc CreateWindowExW .

Cả hai hàm đều gọi nội bộ một hàm USER32 chung sẽ thực hiện một số xác thực tham số, chẳng hạn như kiểu cửa sổ và xử lý được chỉ định trong lệnh gọi, xử lý việc tạo cửa sổ con MDI nếu kiểu cửa sổ mở rộng WS_EX_MDICHILD được chỉ định và xử lý ngữ cảnh kích hoạt hiện tại cho lệnh gọi chủ đề. Nếu tất cả đều tốt ở phía USER32(USER32-side) của lệnh gọi CreateWindowEx , thì nó sẽ gọi vào việc triển khai chế độ hạt nhân ( WIN32K ) của CreateWindowEx .

CreateWindowEx sẽ thực hiện các tác vụ sau khi cố gắng tạo một đối tượng cửa sổ mới:

  • Xác định xem việc tạo xử lý cho đối tượng cửa sổ mới có vượt quá  giới hạn hạn ngạch xử lý Người dùng(User) cho quy trình gọi hay không.
  • Phân bổ bộ nhớ cho đối tượng cửa sổ mới từ heap của màn hình.
  • Khởi tạo bộ nhớ cho đối tượng cửa sổ mới.
  • Tạo một xử lý cho đối tượng cửa sổ mới trong bảng Xử lý người dùng(User) .

Nguyên nhân gây ra lỗi CreateWindowEx

Một số điều kiện có thể kích hoạt sự cố chức năng CreateWindowEx được liệt kê như sau:

  • Lớp cửa sổ được chỉ định không tồn tại.
  • Sử dụng kiểu cửa sổ không hợp lệ hoặc kiểu cửa sổ mở rộng.
  • Sử dụng tay cầm Người dùng(User) không hợp lệ , chẳng hạn như tay cầm cửa sổ và tay cầm menu.
  • Đang cố gắng tạo một cửa sổ con mà không chỉ định một cửa sổ mẹ.
  • Đang cố gắng tạo một cửa sổ con hoặc một cửa sổ được sở hữu và cha / chủ sở hữu được chỉ định thuộc về một màn hình khác với luồng đang gọi.
  • Tạo một cửa sổ con hoặc cửa sổ sở hữu sẽ vượt quá giới hạn cửa sổ lồng nhau.
  • Tạo một đối tượng cửa sổ mới sẽ vượt quá hạn ngạch xử lý cho quá trình gọi.
  • Không có đủ heap trong heap của màn hình để phân bổ bộ nhớ cho đối tượng cửa sổ mới.
  • Không có mục nhập nào trong bảng Người dùng(User) điều khiển.

Khắc phục(Fix CreateWindowEx) sự cố chức năng CreateWindowEx cho ứng dụng 32 bit trong Windows 10

Microsoft đã cung cấp một giải pháp thay thế cho các vấn đề về chức năng CreateWindowEx .

Để khắc phục sự cố này, bạn sẽ phải khôi phục cài đặt Windows 10 của mình về phiên bản trước.

Tùy chọn khôi phục trong Windows 10 khả dụng trong 10 ngày(10 days) (trong hầu hết các trường hợp) sau khi bạn nâng cấp cài đặt Windows 10 của mình.

Thao tác này giữ các tệp cá nhân của bạn, nhưng xóa các ứng dụng và trình điều khiển đã được cài đặt sau khi nâng cấp, đồng thời đảo ngược mọi thay đổi mà bạn đã thực hiện đối với cài đặt.

Nếu tùy chọn quay lại không khả dụng - sao lưu các tệp cá nhân của bạn , thì bạn có thể liên hệ với bộ phận hỗ trợ CNTT hoặc bộ phận trợ giúp hoặc Bộ phận hỗ trợ của Microsoft(Microsoft Support) để được trợ giúp khôi phục thiết bị của bạn về phiên bản Window 10 trước đó .

That’s it!

Tái bút(PS) : Microsoft đang nghiên cứu giải pháp và sẽ cung cấp bản cập nhật trong bản phát hành sắp tới của Windows 10 .



About the author

Tôi là một chuyên gia Windows 10 rất được đề xuất và tôi chuyên giúp mọi người cá nhân hóa giao diện máy tính của họ và làm cho các công cụ Office của họ thân thiện hơn với người dùng. Tôi sử dụng các kỹ năng của mình để giúp những người khác tìm ra những cách hiệu quả nhất để làm việc với Microsoft Office, bao gồm cách định dạng văn bản và đồ họa để in trực tuyến, cách tạo chủ đề tùy chỉnh cho Outlook và thậm chí cả cách tùy chỉnh giao diện của thanh tác vụ trên máy tính để bàn máy tính.



Related posts