ปัญหาฟังก์ชัน CreateWindowEx สำหรับแอป 32 บิตใน Windows 10

ในบางกรณี หลังจากอัปเกรดเป็นเวอร์ชันที่ใหม่กว่าWindows 10ทำให้เกิดการหยุดทำงานหรือปัญหาอื่นๆ เมื่อเรียกใช้ฟังก์ชัน CreateWindowEx(CreateWindowEx)จากmsctf.dllเมื่อมีการสร้างหน้าต่างในแอปพลิเคชัน 32 บิตบางตัว ในโพสต์นี้ เราจะทำความเข้าใจว่า  ฟังก์ชัน CreateWindowEx(CreateWindowEx)คืออะไร – สำรวจสาเหตุที่เป็นไปได้ของข้อผิดพลาดของฟังก์ชันนี้ แล้วจัดเตรียมวิธีแก้ไขปัญหาที่แนะนำเพื่อลดปัญหา

ทำความเข้าใจกับฟังก์ชันCreateWindowEx

ฟังก์ชัน CreateWindowEx

แอปพลิเคชัน Windows(Windows)รวมถึงแอปพลิเคชัน .NET ที่ใช้Windows Forms หรือWindows Presentation Foundation ( WPF ) สร้างหน้าต่างโดยเรียกใช้ฟังก์ชันCreateWindowExAหรือCreateWindowExW

ทั้งสองฟังก์ชันภายในเรียก ฟังก์ชัน USER32 ทั่วไป ซึ่งจะทำการตรวจสอบพารามิเตอร์บางอย่าง เช่น รูปแบบหน้าต่างและหมายเลขอ้างอิงที่ระบุในการเรียก จัดการการสร้างหน้าต่างลูกMDI หากระบุลักษณะหน้าต่างแบบขยาย (MDI)WS_EX_MDICHILDและประมวลผลบริบทการเปิดใช้งานปัจจุบันสำหรับการเรียก เกลียว. ถ้าทุกอย่างเรียบร้อยดีในด้านUSER32(USER32-side)ของการ เรียก CreateWindowExก็จะเรียกเข้าสู่โหมดเคอร์เนล ( WIN32K ) ของCreateWindowEx

CreateWindowExจะทำงานต่อไปนี้เมื่อพยายามสร้างวัตถุหน้าต่างใหม่:

  • กำหนดว่าการสร้างหมายเลขอ้างอิงสำหรับวัตถุหน้าต่างใหม่จะเกิน  ขีดจำกัดโควตาจัดการ ผู้ใช้(User)สำหรับกระบวนการเรียกหรือไม่
  • จัดสรรหน่วยความจำสำหรับวัตถุหน้าต่างใหม่จากฮีปของเดสก์ท็อป
  • เริ่มต้นหน่วยความจำสำหรับวัตถุหน้าต่างใหม่
  • สร้างหมายเลขอ้างอิงสำหรับวัตถุหน้าต่างใหม่ในตารางจัดการผู้ใช้(User)

สาเหตุของความล้มเหลว CreateWindowEx

เงื่อนไขบางประการที่สามารถทำให้เกิด ปัญหา ฟังก์ชัน CreateWindowEx(CreateWindowEx)ถูกระบุดังนี้:

  • ไม่มีคลาสหน้าต่างที่ระบุ
  • การใช้รูปแบบหน้าต่างที่ไม่ถูกต้องหรือรูปแบบหน้าต่างแบบขยาย
  • การใช้หมายเลข อ้างอิง ผู้ใช้(User) ที่ไม่ถูกต้อง เช่น หมายเลขอ้างอิงหน้าต่างและหมายเลขอ้างอิงเมนู
  • พยายามสร้างหน้าต่างลูกโดยไม่ระบุหน้าต่างหลัก
  • ความพยายามที่จะสร้างหน้าต่างย่อยหรือหน้าต่างที่เป็นเจ้าของ และผู้ปกครอง/เจ้าของที่ระบุนั้นเป็นของเดสก์ท็อปที่แตกต่างจากเธรดที่เรียก
  • การสร้างหน้าต่างย่อยหรือหน้าต่างที่เป็นเจ้าของจะเกินขีดจำกัดหน้าต่างที่ซ้อนกัน
  • การสร้างวัตถุหน้าต่างใหม่จะเกินโควตาหมายเลขอ้างอิงสำหรับกระบวนการโทร
  • มีฮีปไม่เพียงพอในฮีปของเดสก์ท็อปในการจัดสรรหน่วยความจำสำหรับออบเจ็กต์หน้าต่างใหม่
  • ไม่มีรายการที่พร้อมใช้งานในตารางจัดการผู้ใช้(User)

แก้ไขปัญหาฟังก์ชัน CreateWindowEx(Fix CreateWindowEx)สำหรับแอป 32 บิตในWindows 10

Microsoftได้จัดเตรียมวิธีแก้ปัญหาเกี่ยวกับฟังก์ชันCreateWindowEx

เพื่อแก้ไขปัญหานี้ คุณจะต้องย้อนกลับการติดตั้ง Windows 10 ของคุณไปเป็นเวอร์ชันก่อนหน้า

ตัวเลือกย้อนกลับในWindows 10สามารถใช้ได้10 วัน(10 days) (ในกรณีส่วนใหญ่) หลังจากที่คุณอัปเกรดการติดตั้ง Windows 10 แล้ว

การดำเนินการนี้จะเก็บไฟล์ส่วนบุคคลของคุณ แต่จะลบแอปพลิเคชันและไดรเวอร์ที่ติดตั้งหลังจากการอัปเกรด และยังย้อนกลับการเปลี่ยนแปลงใดๆ ที่คุณทำกับการตั้งค่า

หากไม่มีตัวเลือกย้อนกลับ – สำรองไฟล์ส่วนบุคคลของคุณ คุณสามารถติดต่อฝ่ายสนับสนุนด้านไอทีหรือฝ่ายช่วยเหลือหรือฝ่ายสนับสนุนของ Microsoft(Microsoft Support)เพื่อขอความช่วยเหลือในการกู้คืนอุปกรณ์ของคุณเป็นWindow 10เวอร์ชัน ก่อนหน้า

That’s it!

PS : Microsoft กำลังทำงานในการแก้ปัญหาและจะจัดเตรียมการอัปเดตในWindows 10รุ่นต่อไป



About the author

ฉันเป็นผู้เชี่ยวชาญ Windows 10 ที่ได้รับการแนะนำเป็นอย่างยิ่ง และฉันเชี่ยวชาญในการช่วยเหลือผู้คนในการปรับแต่งรูปลักษณ์ของคอมพิวเตอร์และทำให้เครื่องมือ Office ของพวกเขาใช้งานง่ายขึ้น ฉันใช้ทักษะของฉันเพื่อช่วยให้ผู้อื่นค้นพบวิธีที่มีประสิทธิภาพที่สุดในการทำงานกับ Microsoft Office รวมถึงวิธีจัดรูปแบบข้อความและกราฟิกสำหรับการพิมพ์ออนไลน์ วิธีสร้างธีมที่กำหนดเองสำหรับ Outlook และแม้กระทั่งวิธีปรับแต่งรูปลักษณ์ของแถบงานบนเดสก์ท็อป คอมพิวเตอร์.



Related posts