หมายเลขบทความ (Article ID): 314106 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สำหรับเวอร์ชัน Microsoft Windows 2000 ของบทความนี้ โปรดดูที่165214 (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด).
ขยายทั้งหมด | ยุบทั้งหมด

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

สรุป

บทความนี้อธิบายถึงวิธีการแก้ไขปัญหาโปรแกรม MS-DOS ใน Windows

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

ทดสอบระบบย่อย Ntvdm

สิ่งแรกที่ต้องทดสอบเมื่อคุณมีปัญหากับโปรแกรม MS-DOS คือระบบย่อย Windows Virtual DOS Machine (NTVDM) คุณสามารถใช้ยูทิลิตี Command.com เพื่อทดสอบว่าระบบย่อย NTVDM ทำงานได้ตามปกติหรือไม่ การเรียกใช้ Command.com ให้ทำตามขั้นตอนต่อไปนี้:
  1. คลิกปุ่ม Show แล้วคลิกRun
  2. ในช่อง Open ให้พิมพ์ command.com และคลิกที่ OK
ซึ่งควรจะเป็นการเปิดหน้าต่างพรอมต์คำสั่ง หากการทำงานไม่ถูกต้อง หมายถึงระบบย่อย NTVDM มีปัญหา และคุณควรตรวจสอบรายการต่างๆ ต่อไปนี้:
  • ตรวจสอบแฟ้ม Config.nt และ Autoexec.nt ในโฟลเดอร์ SystemRoot%\System32 สำหรับการตั้งค่าที่ไม่ใช่มาตรฐาน

    ใช้ REM เพื่อทำเครื่องหมายรายการทั้งหมดยกเว้นรายการที่เป็นค่าเริ่มต้นต่อไปนี้:
       Config.nt
       ---------
       dos=high, umb
       device=%SystemRoot%\System32\Himem.sys
       files=20
    
       Autoexec.nt
       -----------
    
       lh %SystemRoot%\System32\Mscdexnt.exe
       lh %SystemRoot%\System32\Redir
       lh %SystemRoot%\System32\Dosx
       lh %SystemRoot%\System32\Nw16 (only if CSNW is installed)
       lh %SystemRoot%\System32\Vwipxspx (only if CSNW is installed)
    						
    อีกวิธีในการทำงานนี้คือการขยาย Autoexec.nt_ and Config.nt_ จาก Windows CD-ROM ไปยังโฟลเดอร์ SystemRoot%\System32
  • กดปุ่ม CTRL+SHIFT+ESC เพื่อเรียกใช้ Task Manager ปิดโปรแกรมที่กำลังทำงานอยู่ทั้งหมด แล้วตรวจดูให้แน่ใจว่าไม่มีกระบวนการ NTVDM อื่นที่กำลังทำงานอยู่
  • ป้องกันโปรแกรมทั้งหมดจากการรันเมื่อเริ่มต้นระบบ โปรแกรมต่างๆ สามารถรันจากสองตำแหน่งเมื่อเริ่มต้นระบบ: กลุ่ม Startup และบรรทัด Run และ RunOnce ในรีจิสตรี คุณสามารถตรวจสอบตำแหน่งเหล่านี้ได้ดังต่อไปนี้:
    1. กลุ่ม Startup คือโฟลเดอร์ต่างๆ ในฮาร์ดดิสก์ในระบบ โดยอยู่ในตำแหน่งต่อไปนี้:
      • %SystemRoot%\Profiles\user_name\Start menu\Programs
      • %SystemRoot%\Profiles\Default user\Start menu\Programs
    2. บรรทัด Run และ RunOnce อยู่ในรีจิสตรี ใต้คีย์รีจิสตรีต่อไปนี้:
      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\
  • ตรวจสอบไฟล์ระบบ NTVDM ในโฟลเดอร์ %SystemRoot%\System32 ตรวจสอบแฟ้มต่อไปนี้และตรวจดูให้แน่ใจว่าเป็นเวอร์ชันที่ถูกต้องโดยการตรวสอบขนาดแลวันที่:
       Ntio.sys
       Ntdos.sys
       Ntvdm.exe
       Ntvdm.dll (เฉพาะ Windows NT 3.1)
       Redir.exe
    					
  • รายการรีจิสตรีที่มีความสัมพันธ์กับระบบย่อย NTVDM ได้แก่:
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
      คีย์นี้บันทึกตัวแปรสภาพแวดล้อมจากแฟ้ม Config.sys และ Autoexec.bat สำหรับการใช้งานใน Windows
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ VirtualDeviceDrivers
      คีย์นี้บันทึกไดรเวอร์อุปกรณ์ที่ใช้ในเซสชัน NTVDM Windows Setup สร้างรายการเหล่านี้เมื่อมีการติดตั้งไดรเวอร์ของอุปกรณ์

ตรวจสอบปัญหาเฉพาะของโปรแกรม

ฟังก์ชันต่อไปนี้ไม่สามารถใช้งานได้ใน Windows XP:
  • ฟังก์ชันทั้งหมดของ MS-DOS ยกเว้น API (application programming interface) ฟังก์ชันการสลับงาน
  • ไม่สามารถใช้ไดรเวอร์อุปกรณ์ในโหมดบล็อกได้ ไม่สามารถใช้อุปกรณ์บล็อกได้ ดังนั้น APIs ควบคุม I/O control (IOCTL) ของ MS-DOS ที่จัดการกับอุปกรณ์บล็อกและฟังก์ชัน SETDPB จะไม่สามารถใช้งานได้
  • อินเทอรัพต์ 10 ฟังก์ชัน 1A คืนค่า 0; ฟังก์ชันอื่นๆ ถูกส่งผ่านไปยัง read-only memory (ROM)
  • การเรียกใช้อินเทอรัพต์ 13 ที่จัดการกับการเข้าถึงดิสก์ที่ห้าม ไม่สามารถใช้งานได้
  • อินเทอรัพต์ 18 (ROM BASIC) สร้างข้อความที่บอกว่า ROM BASIC ไม่สามารถใช้งานได้
  • อินเทอรัพต์ 19 ไม่เริ่มต้นคอมพิวเตอร์ใหม่ แต่ปิด virtual DOS machine (VDM) ทั้งหมด
  • อินเทอรัพต์ 2F ซึ่งจัดการกับการทำงานของ DOSKEY (AX = 4800) ไม่สามารถใช้งานได้
  • ฟังก์ชัน 2, 3, 4, 5, 8, E และ F ของ Microsoft CD-ROM Extensions (MSCDEX) ไม่สามารถใช้งานได้
  • ระบบย่อย Windows 16 บิตในคอมพิวเตอร์ x86 สนับสนุนการทำงานของโปรแกรมในโหมดพิเศษ แต่ไม่สนับสนุน virtual device drivers (VxDs) แบบ 16 บิต ระบบย่อยในคอมพิวเตอร์ที่ไม่ใช่ x86 จำลองชุดคำสั่ง Intel 40486 ซึ่งช่วยให้คอมพิวเตอร์รันโปรแกรมในโหมด Enhanced ได้ เช่น Microsoft Visual Basic หรือ reduced instruction set computers (RISC)
ซึ่งหมายความว่า Windows ไม่สนับสนุนโปรแกรม 16 บิตที่ต้องการการเข้าถึงฮาร์ดแวร์อย่างไม่จำกัด หากโปรแกรมของคุณต้องการสิ่งนี้ โปรแกรมจะไม่สามารถทำงานได้ใน Windows NT, Windows 2000 หรือ Windows XP

จากนั้นคุณควรตรวจสอบเพื่อดูว่าการตั้งค่าแฟ้ม Autoexec.nt และ Config.nt ถูกต้อง ลองใช้การตั้งค่าเริ่มต้นที่แสดงไว้ก่อนหน้าในบทความนี้เสมอ บางโปรแกรมต้องการการตั้งค่าหรือไดรเวอร์พิเศษเพื่อรันในแฟ้ม Config.sys หรือ Autoexec.bat หากเป็นกรณีนี้ มีสองตัวเลือกสำหรับการเริ่มต้นแฟ้มเหล่านี้เมื่อเริ่มต้นโปรแกรมของคุณ:
  • ป้อนแต่ละบรรทัดในแฟ้ม Config.nt และ Autoexec.nt ในโฟลเดอร์ %SystemRoot%\System32
  • สร้างแฟ้ม Config และ Autoexec ใหม่เพื่อรันเมื่อเริ่มต้นโปรแกรมนี้ โดยให้ทำตามขั้นตอนต่อไปนี้:
    1. สร้างแฟ้มต่างๆ แล้วบันทึกโดยให้มีนามสกุลเป็น .nt ในโฟลเดอร์อื่นนอกจาก %SystemRoot%\System32 (แฟ้มเหล่านี้มักจะได้รับการบันทึกในโฟลเดอร์เดียวกันกับโปรแกรม)
    2. คลิกขวาที่เดสก์ทอป เลือกที่ New จากนั้นคลิก Shortcut
    3. ในช่อง Type the location of the item พิมพ์พาธเต็มไปยังแฟ้มที่ต้องการรัน แล้วคลิก Next
    4. ในช่อง Type a name for this shortcut พิมพ์ชื่อสำหรับทางลัด แล้วคลิก Finish ซึ่งจะสร้างทางลัดไว้บนเดสก์ทอป
    5. คลิกขวาที่ทางลัดใหม่นั้น แล้วคลิกProperties
    6. ที่แท็บ Program คลิก Windows เพื่อเปิดกล่องโต้ตอบสำหรับพาธไปยังแฟ้ม Autoexec และ Config
    7. พิมพ์พาธเต็มไปยังแฟ้มต่างๆ ที่คุณได้สร้างขึ้น แล้วคลิก OK ในกล่องโต้ตอบทั้งคู่
    การคลิกไอคอนนี้รันแฟ้ม Autoexec และ Config ที่ระบุไว้สำหรับโปรแกรม การตั้งค่าเหล่านี้จะมีข้อจำกัดเหมือนกับที่แสดงไว้ในรายชื่อโปรแกรม MS-DOS
โดยมีการตั้งค่าอื่นๆ ในคุณสมบัติของโปรแกรม หากโปรแกรมของคุณทำงานได้ไม่ถูกต้อง ตรวจสอบแท็บทั้งหมดและตรวจดูให้แน่ใจว่าการตั้งค่าโปรแกรมได้รับการกำหนดเป็นค่ามาตรฐานจากผู้ผลิตแล้ว หากโปรแกรมยังไม่สามารถทำงานได้อีก ติดต่อบริษัทผู้ผลิตโปรแกรมเพื่อให้แน่ใจว่าโปรแกรมนั้นสามารถใช้งานได้กับ Windows

หากต้องการทราบข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
171940 แอปพลิเคชัน MS-DOS การทำงาน I/O ทำให้เกิดการเข้าใช้งานไดรฟ์ฟล็อปปี้ (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
156687 รายการต่างๆ ใน CONFIG.NT หรือ AUTOEXEC.NT อาจทำให้เกิดข้อผิดพลาดกับ NTVDM (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
102418 ข้อผิดพลาดของ NTVDM: ไม่มีดิสก์ในไดรฟ์ (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
142026 ข้อผิดพลาด: 'Hidden console of WOW VDM' รันแอปพลิเคชัน 16 บิต หรือ DOS (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
ผลิตภัณฑ์ของบุคคลที่สามที่กล่าวถึงในบทความนี้ ผลิตขึ้นโดยบริษัทที่ไม่ขึ้นอยู่กับไมโครซอฟท์ Microsoft ไม่มีการรับประกัน ทั้งโดยนัยหรืออย่างอื่นใด เกี่ยวกับประสิทธิภาพหรือความน่าเชื่อถือของผลิตภัณฑ์เหล่านี้

คุณสมบัติ

หมายเลขบทความ (Article ID): 314106 - รีวิวครั้งสุดท้าย: 10 สิงหาคม 2549 - Revision: 2.1
ใช้กับ
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional Edition
Keywords: 
kbregistry kbenv kbinfo kbtshoot KB314106

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

 

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