ข้อความแสดงข้อผิดพลาด "หน่วยความจำไม่เพียงพอ" ปรากฏขึ้นเมื่อคุณมีจำนวนโปรแกรมที่มีขนาดใหญ่ทำงานอยู่

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

อาการ

เมื่อคุณรันจำนวนโปรแกรมที่ทำงานบน Windows ข้อความแสดงข้อผิดพลาด "หน่วยความจำไม่เพียงพอ" ปรากฏขึ้นเมื่อคุณพยายามเริ่มทำงานกับโปรแกรมใหม่หรือพยายามใช้โปรแกรมที่ได้ทำงานแล้ว แม้ว่าคุณยังมีหน่วยความจำแบบฟิสิคัลและแบบแฟ้มเพจที่เพียงพอ

สาเหตุ

ลักษณะการทำงานนี้สามารถเกิดขึ้นได้หากเดสก์ทอปฮีปในระบบย่อย WIN32 สิ้นสุดลง

หมายเหตุ ปัญหานี้เกิดขึ้นบ่อยบน Windows NT 3.5 เนื่องจากเดสก์ทอปฮีปมีขนาด 512Kบน Windows NT 3.1 ค่าดีฟอลต์คือ 3072Kลดค่าดีฟอลต์ลงเพื่อเพิ่มผลการทำงาน

การแก้ไข

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

แก้ไขปัญหาให้ฉัน



เมื่อต้องการแก้ไขปัญหานี้โดยอัตโนมัติ ให้คลิกที่ปุ่มหรือการเชื่อมโยง แก้ไขปัญหาคลิก เรียกใช้ ในกล่องโต้ตอบ ดาวน์โหลดแฟ้ม และปฏิบัติตามขั้นตอนต่างๆ ที่อยู่ในตัวช่วยสร้างการแก้ไขปัญหา

Fix this problem
Microsoft Fix it 50496

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

จากนั้นไปที่ส่วน "วิธีนี้แก้ไขปัญหาได้หรือไม่"



ให้ฉันแก้ไขด้วยตนเอง

เมื่อต้องการแก้ไขปัญหานี้ ให้เพิ่มขนาดของเดสก์ทอปฮีป:
  1. รันตัวแก้ไขรีจีสทรี (Regedt32.exe)
  2. จาก
    HKEY_LOCAL_MACHINE
    ทรีย่อย ให้ไปที่คีย์ต่อไปนี้:
    \System\CurrentControlSet\Control\Session Manager\SubSystems
  3. เลือกค่า Windows
  4. จากเมนู แก้ไข ให้เลือก สตริง
  5. เพิ่มพารามิเตอร์ SharedSection

    สำหรับ Windows NT:
    SharedSection ระบุระบบและเดสก์ทอปฮีปโดยใช้รูปแบบต่อไปนี้:
    SharedSection=xxxx,yyyy
    Add ",256" หรือ ",512" ตามหลังตัวเลข yyyy

    สำหรับ Windows 2000, Windows XP และ Windows Server 2003:
    SharedSection ใช้รูปแบบต่อไปนี้เพื่อระบุระบบและเดสก์ทอปฮีป:
    SharedSection=xxxx,yyyy,zzzz
    สำหรับระบบปฏิบัติการแบบ 32 บิต ให้เพิ่มค่า yyyy ให้มีค่า "12288"
    เพิ่มค่า zzzz ให้กับ "1024"
    สำหรับระบบปฏิบัติการแบบ 64 บิต ให้เพิ่มค่า yyyy ให้มีค่า "20480"
    เพิ่มค่า zzzz ให้กับ "1024"

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

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

คีย์ SharedSection เป็นสตริงที่มีความยาวเมื่อดูโดยใช้ตัวแก้ไขรีจิสทรีค่าดีฟอลต์สำหรับคีย์นี้เป็นดังนี้
%SystemRoot%\system32\csrss.exe
ObjectDirectory=\Windows
SharedSection=1024,3072,512
Windows=On
SubSystemType=Windows
ServerDll=basesrv,1
ServerDll=winsrv:GdiServerDllInitialization,4
ServerDll=winsrv:UserServerDllInitialization,3
ServerDll=winsrv:ConServerDllInitialization,2
ProfileControl=Off
MaxRequestThreads=16
				


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

ค่า SharedSection ค่าที่สอง (3072) ควบคุมขนาดของเดสก์ทอปที่เชื่อมโยงกับหน้าต่างแบบโต้ตอบ (ใช้สำหรับวัตถุของ Windows)ค่าสแตติกนี้ถูกใช้เพื่อป้องกันแอ็พพลิเคชันทำงานผิดปกติจากการใช้รีซอร์สมากเกินไปเนื่องจากเดสก์ทอปฮีปถูกแม็พกับพื้นที่แอดเดรสของการประมวลผล ค่านี้ไม่ควรตั้งค่าให้มีค่าสูงอย่างไม่มีกฎเกณฑ์ (เนื่องจากค่านี้จะลดผลการทำงาน) แต่ควรถูกเพิ่มขึ้นให้เพียงพอเพื่ออนุญาตให้แอ็พพลิเคชันที่ต้องการทำงานทั้งหมดทำงาน

ค่า SharedSection ค่าที่สาม (512) ควบคุมขนาดของเดสก์ทอปฮีปสำหรับแต่ละเดสก์ทอปที่เชื่อมโยงกับหน้าต่าง "แบบไม่โต้ตอบ"หากไม่มีค่าแสดงอยู่ ขนาดของเดสก์ทอปฮีปสำหรับหน้าต่างแบบไม่โต้ตอบจะเท่ากับขนาดที่ระบุไว้สำหรับหน้าต่างแบบโต้ตอบ (ค่า SharedSection ค่าที่สอง)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ของคีย์ SharedSection ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
184802 PRB:User32.dll หรือ Kernel32.dll ล้มเหลวในการเริ่มต้นทำงาน

สามารถแก้ไขปัญหาได้หรือไม่

  • ตรวจสอบว่าปัญหาได้รับการแก้ไขแล้วหรือไม่ถ้าปัญหาได้รับการแก้ไขแล้ว คุณสามารถสิ้นสุดส่วนนี้ได้หากปัญหายังไม่ได้รับการแก้ไข คุณสามารถ ติดต่อฝ่ายสนับสนุน
  • เรายินดีรับข้อเสนอแนะของคุณหากต้องการส่งคำติชม หรือรายงานปัญหาใดๆ พร้อมกับการแก้ไขปัญหานี้ โปรดเขียนข้อคิดเห็นไว้ที่บล็อก "แก้ไขปัญหาให้ฉัน" หรือส่ง อีเมล มาให้เรา

คุณสมบัติ

หมายเลขบทความ (Article ID): 126962 - รีวิวครั้งสุดท้าย: 10 พฤศจิกายน 2553 - Revision: 6.0
ใช้กับ
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003 Web Edition
Keywords: 
kbenv kbmsifixme kbfixme KB126962

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

 

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