ตัวอย่างโปรแกรม USBView.exe ไม่ระบุอุปกรณ์ในรุ่นก่อน windows XP SP1 บนคอมพิวเตอร์

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

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

อาการ

คุณอาจพบอาการต่อไปนี้เมื่อคุณใช้โปรแกรม USBView.exe อุปกรณ์ universal serial bus (USB) และตัวควบคุมโฮสต์ในการระบุ:
  • ปัญหา A - ตัวควบคุมโฮสต์ USB 2.0 จะไม่ระบุบนคอมพิวเตอร์ที่ใช้ Microsoft Windows 2000 กัน
  • ปัญหา B - อุปกรณ์ USB ที่แนบจะไม่แสดงขึ้น

    รุ่นของโปรแกรม USBView.exe ที่สร้าง โดยใช้ใน Windows XP Service Pack 1 Windows โปรแกรมควบคุมพัฒนา Kit (DDK) ไม่แสดงอุปกรณ์ USB ใด ๆ เมื่อคุณเรียกใช้ตัวอย่างในระบบปฏิบัติการต่อไปนี้:
    • รุ่นวางจำหน่ายของ Microsoft Windows XP
    • รุ่นต่าง ๆ ของ Microsoft Windows 2000, Microsoft Windows Millennium Edition หรือ Microsoft Windows 98

สาเหตุ

ปัญหา A - ตัวควบคุมโฮสต์ USB 2.0 จะไม่ระบุบนคอมพิวเตอร์ที่ใช้ Windows 2000

โปรแกรม USBView.exe ไม่ระบุตัวควบคุมโฮสต์ USB 2.0 บนคอมพิวเตอร์ที่ใช้ Windows 2000 ได้เนื่องจากสองอื่น USB ไดรเวอร์กองรันบนเครื่องคอมพิวเตอร์ใช้ Windows 2000 เป็นดังนี้:
  • กองซ้อนแรกถูกใช้สำหรับตัวควบคุมโฮสต์ USB 1.1
  • กองซ้อนที่สองถูกใช้สำหรับตัวควบคุมโฮสต์ USB 2.0
ชื่อการเชื่อมโยงแบบสัญลักษณ์ที่มีรูปแบบต่อไปนี้ สร้างกองไพ่ไดรเวอร์ USB ทั้งสองตำแหน่งxแสดงหมายเลขอินสแตนซ์:
\DosDevices\HCDx
กองไพ่ไดรเวอร์ USB ทั้งเริ่มต้นหมายเลขอินสแตนซ์ที่ 0 ลักษณะการทำงานนี้หมายความ ว่า ทั้งสองสแตกโปรแกรมควบคุมพยายามสร้างชื่อการเชื่อมโยงแบบสัญลักษณ์ต่อไปนี้:
\DosDevices\HCD0
กองซ้อนของไดรเวอร์ USB 2.0 คุณได้พยายามสร้างชื่อการเชื่อมโยงแบบสัญลักษณ์นี้หลังจากกองซ้อนของไดรเวอร์ USB 1.1 สร้างชื่อการเชื่อมโยงแบบสัญลักษณ์ ดังนั้น ไม่มีสร้างชื่อการเชื่อมโยงแบบสัญลักษณ์ และไม่สามารถเข้าถึงโฮสต์คอนโทรลเลอร์ USB 2.0 โดยผ่านการเชื่อมโยงแบบสัญลักษณ์

ปัญหา B - อุปกรณ์ USB ที่แนบจะไม่ถูกแสดง

สแตกโปรแกรมควบคุม USB ที่รวมอยู่ใน Windows XP SP1 รวมการสนับสนุนสำหรับใหม่อินพุต/เอาท์พุตคอนโทรล (IOCTL) ที่มีชื่อเป็นดังนี้:
ioctl_usb_get_node_connection_information_ex
IOCTL นี้แทน IOCTL ที่ชื่อ IOCTL_USB_GET_NODE_CONNECTION_INFORMATION รุ่นก่อนหน้า IOCTL ในรุ่นก่อนหน้าถูกใช้ในเวอร์ชันก่อนหน้าของโปรแกรม USBView.exe

มีการปรับเปลี่ยนโปรแกรม USBView.exe ใช้ IOCTL ที่ใหม่กว่านี้ได้เนื่องจากจะส่งกลับข้อมูลเกี่ยวกับว่าการทำงานอุปกรณ์ USB ที่ความเร็วสูง

ถ้าคุณพยายามที่จะใช้ IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX รุ่นก่อน windows XP SP1 บนคอมพิวเตอร์ ความพยายามในการทำงานไม่ได้สำเร็จ นอกจากนี้ ไม่มีข้อมูลเกี่ยวกับอุปกรณ์ USB จะแสดงขึ้นมา

การแก้ไข

ปัญหา A - ตัวควบคุมโฮสต์ USB 2.0 จะไม่ระบุบนคอมพิวเตอร์ที่ใช้ Microsoft Windows 2000

นอกเหนือจากการสนับสนุนการใช้ชื่อการเชื่อมโยงแบบสัญลักษณ์ การกองซ้อนใหม่ของโปรแกรมควบคุม USB สนับสนุนการใช้อินเทอร์เฟซของอุปกรณ์ที่ใช้ GUID

กระบวนการEnumerateHostControllersฟังก์ชันในแฟ้ม Enum.c รวมถึงส่วนข้อคิดเห็นอธิบายถึงวิธีการใช้เทคนิคนี้เพื่อระบุโฮสต์คอนโทรลเลอร์ คุณสามารถปรับเปลี่ยนฟังก์ชันนี้เพื่อตรวจสอบเมื่อกำลังเรียกใช้บนคอมพิวเตอร์ที่ใช้ Windows 2000 คุณสามารถใช้วิธีการระบุ GUID ที่ใช้และวิธีการเชื่อมโยงแบบสัญลักษณ์ที่ระบุตัวควบคุมโฮสต์ USB ทั้งหมด

ปัญหา B - อุปกรณ์ USB ที่แนบจะไม่ถูกแสดง

คุณสามารถปรับเปลี่ยนทั้งหมดใช้ IOCTL แบบใหม่ IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX ในโปรแกรม USBView.exe คุณสามารถแก้ไข IOCTL เพื่อให้กระทำการกำหนดถ้า IOCTL ยังไม่เสร็จเรียบร้อยแล้ว โปรแกรม USBView.exe อยู่กลับมาใช้ IOCTL, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION รุ่นก่อนหน้า

ลักษณะการทำงานนี้ fallback ช่วยให้โปรแกรม USBView.exe มีรายงานว่าอุปกรณ์ทำงานที่ความเร็วสูงอยู่บนคอมพิวเตอร์ที่ใช้ Windows XP SP1 หรือ Windows รุ่นที่ใหม่กว่า นอกจากนี้ ลักษณะการทำงานนี้ fallback ยังแสดงอุปกรณ์ USB ในรุ่นก่อน windows XP SP1 บนคอมพิวเตอร์

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

ปัญหานี้ได้ถูกแก้ไขในใน Windows Server 2003 Service Pack 1 DDK

คุณสมบัติ

หมายเลขบทความ (Article ID): 838100 - รีวิวครั้งสุดท้าย: 14 มกราคม 2554 - Revision: 3.0
ใช้กับ
  • Microsoft Windows XP Driver Development Kit
Keywords: 
kbprb kbmt KB838100 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:838100

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

 

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