User32.dll หรือเกี่ยวกับ Kernel32.dll ล้มเหลวในการเตรียมใช้งาน

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 184802 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

บางครั้งโปรแกรมประยุกต์ที่ปฏิบัติตามอย่างใดอย่างหนึ่งCreateProcess()หรือCreateProcessAsUser()ล้มเหลวและคุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
การเตรียมใช้งานไลบรารีแบบไดนามิก <system> \system32\user32.dll ล้มเหลว สิ้นสุดการดำเนินการ อย่างผิดปกติ </system>
การเตรียมใช้งานแบบนั้น ไลบรารี <system> \system32\kernel32.dll ล้มเหลว สิ้นสุดการดำเนินการ อย่างผิดปกติ </system>
กระบวนการล้มเหลวส่งกลับรหัสออกจาก 128 หรือ
ERROR_WAIT_NO_CHILDREN

สาเหตุ

เกิดความล้มเหลวจากหนึ่งในวิธีต่อไปนี้:
  1. กระบวนการปฏิบัติไม่มีการเข้าถึงการรักษาความปลอดภัยที่เหมาะสม ไปยังสถานีหน้าต่างและเดสก์ท็อปที่เกี่ยวข้องกับกระบวนการ
  2. ระบบจะมีเพียงพอ heap เดสก์ท็อป

ข้อมูลเพิ่มเติม

สาเหตุที่ 1

กระบวนการปฏิบัติไม่มีการเข้าถึงการรักษาความปลอดภัยที่เหมาะสมเพื่อการ สถานีหน้าต่างและเดสก์ท็อปที่เกี่ยวข้องกับกระบวนการ

LpDesktop สมาชิกของโครงสร้างของ STARTUPINFO ที่ส่งผ่านไปCreateProcess()หรือCreateProcessAsUser()ระบุสถานีหน้าต่างและเดสก์ท็อปที่เกี่ยวข้องกับการ ดำเนินการกระบวนการ กระบวนการปฏิบัติต้องมีการเข้าถึงการรักษาความปลอดภัยที่เหมาะสมเพื่อการ หน้าต่างที่ระบุสถานีและเดสก์ท็อป

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขการรักษาความปลอดภัย ปัญหาเกี่ยวกับสถานีหน้าต่างและเดสก์ท็อป คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
165194CreateProcessAsUser() windowstations และเดสก์ท็อป

สาเหตุที่ 2

ระบบจะมีเพียงพอ heap เดสก์ท็อป

เดสก์ท็อปทั้งหมด วัตถุที่อยู่บนระบบมี heap เดสก์ท็อปที่เกี่ยวข้อง วัตถุบนเดสก์ท็อป ใช้ฮีปเก็บเมนู hooks สตริงการ และ windows ระบบการจัดสรร สรรเดสก์ท็อปฮีปจากบัฟเฟอร์ 48 MB สำหรับทั้งระบบ นอกจากนี้ไปยังเดสก์ท็อป heaps เครื่องพิมพ์ และโปรแกรมควบคุมแบบอักษรยังใช้บัฟเฟอร์นี้

เดสก์ท็อปคือ เกี่ยวข้องกับสถานีหน้าต่าง สถานีหน้าต่างสามารถประกอบด้วยศูนย์หรือมากกว่า เดสก์ท็อป ขนาดของสรรเดสก์ท็อปฮีปที่จัดสรรสำหรับเดสก์ท็อปที่เกี่ยวข้องกับ สถานีหน้าต่างสามารถเปลี่ยนแปลงค่ารีจิสทรีต่อไปนี้

หมายเหตุMicrosoft ขอแนะนำให้ใช้สวิตช์ /3GB มีระบุสวิตช์ /3GB ในแฟ้ม boot.ini
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
ข้อมูลเริ่มต้นสำหรับค่ารีจิสทรีนี้จะมีลักษณะเหมือนกับ ต่อไปนี้ (ทั้งหมดบนหนึ่งบรรทัด):
   %SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows
   SharedSection=1024,3072,512 Windows=On SubSystemType=Windows
   ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3
   ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off
   MaxRequestThreads=16
				
ค่าตัวเลขที่ต่อ " SharedSection =" ควบคุมอย่างไรบนเดสก์ท็อป ฮีปถูกปันส่วน มีระบุค่าเหล่านี้ SharedSection กิโลไบต์ มี มีการตั้งค่าที่แยกต่างหากสำหรับเดสก์ท็อปที่เชื่อมโยงกับแบบโต้ตอบ และ สถานีหน้าต่างโต้ตอบไม่

หมายเหตุถ้าSharedSectionมีการปรับเปลี่ยนค่าในรีจิสทรี ระบบต้องเริ่มต้นใหม่ก่อนการเปลี่ยนแปลงมีผล

สิ่งสำคัญนี้ส่วน วิธีการ หรืองานประกอบด้วยขั้นตอนที่บอกให้คุณทราบวิธีการแก้ไขรีจิสทรี อย่างไรก็ตาม ปัญหาร้ายแรงอาจเกิดขึ้นหากคุณปรับเปลี่ยนรีจิสทรีอย่างไม่ถูกต้อง ดังนั้น ให้แน่ใจว่า คุณทำตามขั้นตอนเหล่านี้อย่างระมัดระวัง สำหรับการป้องกันเพิ่มเติม สำรองรีจิสทรีก่อนที่คุณแก้ไข แล้ว คุณสามารถคืนค่ารีจิสทรีหากเกิดปัญหา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสำรองข้อมูล และคืนค่ารีจิสทรี คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
322756วิธีการสำรองข้อมูล และคืนค่ารีจิสทรีใน Windows


ค่า SharedSection แรก (1024) เป็น ขนาดฮีปที่ใช้ร่วมกันทั่วไปยังเดสก์ท็อปทั้งหมด ซึ่งรวมถึงตารางหมายเลขอ้างอิงสากล ซึ่งมีจุดจับการ windows เมนู ไอคอน เคอร์เซอร์ และอื่น ๆ และใช้ร่วมกัน การตั้งค่าระบบ ไม่ว่า คุณจะเคยต้องการเปลี่ยนแปลงนี้น่า ค่า

ค่า SharedSection ที่สอง (3072) คือ ขนาดของเครื่อง สรรเดสก์ท็อปฮีปสำหรับแต่ละการเดสก์ท็อปที่เชื่อมโยงกับหน้าต่าง "โต้ตอบ" สถานีWinSta0. วัตถุผู้ใช้ต้อง hooks เมนู สตริงการ และใช้ windows หน่วยความจำใน heap นี้บนเดสก์ท็อป ไม่ว่า คุณจะเคยต้องเปลี่ยนแปลงที่น่า ค่าที่สองนี้ SharedSection

แต่ละเดสก์ท็อปที่ถูกสร้างขึ้นในตัว สถานีหน้าต่างแบบโต้ตอบใช้เดสก์ท็อป heap 3072 KB เริ่มต้น โดยค่าเริ่มต้น เดสก์ท็อปที่สามใน Winsta0 ระบบสร้างขึ้นได้:
  • Winlogon
  • ค่าเริ่มต้น- "เริ่มต้น" แอพลิเคชันเดสก์ท็อปจะถูกใช้ โดยทั้งหมด กระบวนการ "Winsta0\default" จะระบุว่า ในการSTARTUPINFO.lpDesktopสมาชิกของโครงสร้าง เมื่อเป็นสมาชิกโครงสร้าง lpDesktopNULLสถานีหน้าต่างและเดสก์ท็อปรับมาจากวัตถุแม่ กระบวนการ บริการทั้งหมดที่มีดำเนินการภายใต้ LocalSystem บัญชีด้วยการอนุญาตให้มีการบริการเพื่อโต้ตอบกับเดสก์ท็อปตัวเลือกการเริ่มต้นระบบที่เลือกจะใช้ "Winsta0\Default" ทั้งหมดเหล่านี้ กระบวนการที่จะใช้ร่วมกัน heap เดสก์ท็อปเดียวที่เกี่ยวข้องกับ "เริ่มต้น" เดสก์ท็อปแอพลิเคชัน
  • โปรแกรมรักษาหน้าจอ-การเดสก์ท็อปของโปรแกรมรักษาหน้าจอถูกสร้างขึ้นในหน้าต่างโต้ตอบ สถานี (WinSta0) เมื่อมีแสดงตัวรักษาหน้าจอ
ค่า SharedSection ที่สาม (512) คือ ขนาดของเดสก์ท็อป ฮีปสำหรับแต่ละเดสก์ท็อปที่เชื่อมโยงกับหน้าต่าง "โต้ตอบ" สถานี หากค่านี้ไม่มี heap ขนาดของเดสก์ท็อปสำหรับ จะเป็นเหมือนกับขนาดที่ระบุสำหรับสถานีหน้าต่างโต้ตอบ สถานีหน้าต่างแบบโต้ตอบ (ค่าสอง SharedSection)

ถ้าเท่านั้น ค่า SharedSection ที่สองมีอยู่ คุณสามารถเพิ่ม 512"เป็นค่าสาม ระบุขนาดของสรรเดสก์ท็อปฮีปสำหรับเดสก์ท็อปที่สร้างขึ้นในแบบไม่โต้ตอบ สถานีหน้าต่าง

ทุก ๆ กระบวนการบริการที่ดำเนินการภายใต้บัญชีผู้ใช้ จะได้รับการเดสก์ท็อปใหม่ในสถานีหน้าต่างโต้ตอบที่สร้างขึ้นโดยการ บริการควบคุม Manager (SCM) บริการการใช้งานแต่ละดำเนินการภายใต้บัญชีผู้ใช้ดังนั้น จะใช้เนื้อที่จำนวนกิโลไบต์ของฮีปเดสก์ท็อปที่ระบุไว้ในที่อื่น ค่า SharedSection บริการทั้งหมดที่ดำเนินการภายใต้บัญชี LocalSystem ด้วยอนุญาตให้มีการบริการเพื่อโต้ตอบกับเดสก์ท็อปไม่เลือกสรรเดสก์ท็อปฮีปของเดสก์ท็อป "เริ่มต้น" ในการใช้ร่วมกัน บริการแบบไม่โต้ตอบ windows สถานี (บริการ 0x0 3e7 $)

ผลรวม ฮีปเดสก์ท็อปที่ถูกใช้ในสถานีหน้าต่างโต้ตอบ และการโต้ตอบ ต้องพอดีกับบัฟเฟอร์สำหรับทั้งระบบ 48 MB

ที่สองที่ลดลง หรือ ค่า SharedSection ที่สามจะเพิ่มจำนวนของเดสก์ท็อปที่สามารถ สร้างขึ้นในสถานีหน้าต่างที่สอดคล้องกัน ค่าที่มีขนาดเล็กจะจำกัดการ หมายเลขของ hooks เมนู สตริงการ และ windows ที่สามารถถูกสร้างขึ้นภายในตัว เดสก์ท็อป ในทางกลับ เพิ่มค่า SharedSection ที่สอง หรือสาม จะลดจำนวนของเดสก์ท็อปที่สามารถสร้าง แต่มันจะเพิ่ม จำนวน hooks เมนู สตริงการ และ windows ที่สามารถถูกสร้างขึ้นภายในตัว เดสก์ท็อป

เนื่องจาก SCM สร้างเดสก์ท็อปใหม่ในการโต้ตอบ สถานีหน้าต่างสำหรับทุก ๆ กระบวนการบริการที่กำลังทำงานอยู่ภายใต้บัญชีผู้ใช้ ค่าการเดสก์ท็อปที่มีขนาดใหญ่ขึ้นสำหรับค่า SharedSection สามจะลดจำนวน บริการบัญชีผู้ใช้ที่สามารถทำงานได้สำเร็จในระบบ ต่ำสุด ค่าที่คุณสามารถระบุค่า SharedSection ที่สอง หรือสาม คือ 128 ความพยายามใด ๆ จะใช้ค่าที่มีขนาดเล็กกว่าจะเริ่มต้นการ 128

สรรเดสก์ท็อปฮีป มีการจัดสรร โดย User32.dll เมื่อกระบวนการ need ของวัตถุผู้ใช้ ถ้ามี โปรแกรมประยุกต์ไม่ได้ขึ้นอยู่กับ User32.dll จะใช้เนื้อที่สรรเดสก์ท็อปฮีป

หมายเหตุใน Windows Server 2003 เหตุการณ์ที่ระบุไว้ในแฟ้มบันทึกเหตุการณ์ของระบบเมื่อเงื่อนไขต่อไปนี้:
  • หาก heap เดสก์ท็อปกลายเป็นแบบเต็ม เหตุการณ์ต่อไปนี้จะเข้าสู่ระบบ:

    ชนิดเหตุการณ์: คำเตือน
    แหล่งของเหตุการณ์: Win32k
    ประเภทเหตุการณ์: ไม่มี
    รหัสเหตุการณ์: 243
    วัน:วันที่
    เวลา:เวลา
    ผู้ใช้: n/A
    คอมพิวเตอร์:ServerName
    คำอธิบาย: การจัดสรรเดสก์ท็อปฮีปล้มเหลว

    ในกรณีนี้ เพิ่มขนาดสรรเดสก์ท็อปฮีป
  • หากสรรเดสก์ท็อปฮีปทั้งหมดกลายเป็น ขนาดบัฟเฟอร์สำหรับทั้งระบบ เหตุการณ์ต่อไปนี้จะเข้าสู่ระบบ:

    ชนิดเหตุการณ์: คำเตือน
    แหล่งของเหตุการณ์: Win32k
    ประเภทเหตุการณ์: ไม่มี
    รหัสเหตุการณ์: 244
    วัน:วันที่
    เวลา:เวลา
    ผู้ใช้: n/A
    คอมพิวเตอร์:ServerName
    คำอธิบาย: การสร้างเดสก์ท็อปเนื่องจากการเดสก์ท็อปฮีปล้มเหลว

    ในกรณีนี้ ลดขนาดสรรเดสก์ท็อปฮีป
ใน Windows Server 2003 บัฟเฟอร์สำหรับทั้งระบบมี 20 MB เมื่อเงื่อนไขต่อไปนี้:
  • คุณอยู่ในสภาพแวดล้อมของบริการเทอร์มินัล
  • มีระบุสวิตช์ /3GB ในแฟ้ม Boot.ini

คุณสมบัติ

หมายเลขบทความ (Article ID): 184802 - รีวิวครั้งสุดท้าย: 28 มกราคม 2554 - Revision: 5.0
ใช้กับ
  • Microsoft Win32 Application Programming Interface เมื่อใช้กับ:
    • Microsoft Windows XP Professional Edition
    • Microsoft Windows Server 2003 Standard Edition
Keywords: 
kbdll kbkernbase kbprb kbsecurity kbmt KB184802 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:184802

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com