فشل طلب واصف جهاز USB في Windows: تصحيح أخطاء Code 43 بأدلة على مستوى الناقل

كيفية التحقيق في فشل طلب واصف جهاز USB في Windows، وCode 43، والواصفات السيئة، ومهلات التعداد، ومشاكل الطاقة، وتعطل البرامج الثابتة باستخدام أدلة التقاط USB.

فشل طلب واصف جهاز USB, code 43, Windows USB, تعداد USB, واصف الجهاز, تشخيص USB

"جهاز USB غير معروف (فشل طلب واصف الجهاز)" هو أحد أكثر أخطاء USB شيوعًا في Windows. قد تُظهر إدارة الأجهزة Code 43. قد يظهر الجهاز كغير معروف، أو يفشل فورًا بعد التوصيل، أو يعمل على جهاز واحد لكن ليس على آخر. يبحث المستخدمون عن "فشل طلب واصف جهاز USB"، و"Windows Code 43 USB"، و"إصلاح فشل طلب واصف الجهاز"، و"فشل تعداد USB" لأن Windows يعطي تسمية موجهة للمستخدم، وليس السبب على مستوى الناقل.

طلب الواصف هو واحدة من أولى خطوات تعداد USB. إذا فشل، لا يمكن للمضيف حتى معرفة ما هو الجهاز. هذا يعني أن برامج تشغيل الفئة، وبرامج التطبيقات، والمنافذ التسلسلية، وتقارير HID، وبروتوكولات البائع ليست المكان الأول للتصحيح. حدث الفشل قبل أن يكون لدى نظام التشغيل معلومات كافية لربط برنامج التشغيل العادي.

يكون Bus Scope مفيدًا لهذه الفئة من المشكلات لأن الأدلة المهمة في أول عمليات نقل التحكم بعد التوصيل.

ما يحاول Windows فعله

عند توصيل جهاز USB، يكتشف المضيف التوصيل، ويعيد تعيين المنفذ، ويطلب واصف الجهاز. يحتوي واصف الجهاز على معلومات الهوية والقدرة الأساسية:

  • إصدار USB
  • فئة الجهاز/الفئة الفرعية/البروتوكول
  • حجم الحزمة الأقصى لنقطة النهاية الصفرية
  • معرّف البائع
  • معرّف المنتج
  • رقم إصدار الجهاز
  • فهرس سلسلة الشركة المصنعة
  • فهرس سلسلة المنتج
  • فهرس سلسلة الرقم التسلسلي
  • عدد التهيئات

إذا لم يستطع Windows قراءة هذا الواصف بشكل موثوق، فقد يُبلغ عن "فشل طلب واصف الجهاز".

ما يمكن أن يعنيه الفشل

يمكن أن يكون سبب هذا الخطأ:

  • البرامج الثابتة للجهاز لا تستجيب على نقطة النهاية الصفرية.
  • كابل USB سيئ أو غير مستقر.
  • طاقة غير كافية.
  • إعادة تعيين الجهاز أثناء التعداد.
  • محتوى الواصف مشوه أو غير متسق.
  • مشكلة حجم الحزمة الأقصى لنقطة النهاية الصفرية.
  • مشكلة توقيت أثناء استعادة إعادة التعيين.
  • مشكلة توافق الموزع أو المنفذ.
  • مشكلة تفاوض USB 2.0 مقابل USB 3.x.
  • ضرر كهربائي أو عيب في الأجهزة.
  • مشكلة برنامج تشغيل وحدة تحكم المضيف.

تغطي نفس تسمية Windows أسبابًا جذرية مختلفة عديدة. لهذا تهم أدلة الحزم.

تسلسل التعداد المبكر

غالبًا ما يبدو التعداد المبكر الصحي كـ:

Port attach
Port reset
GET_DESCRIPTOR(Device, first 8 bytes)
SET_ADDRESS
GET_DESCRIPTOR(Device, full)
GET_DESCRIPTOR(Configuration)
SET_CONFIGURATION

يمكن أن تختلف وحدات تحكم المضيف وإصدارات Windows المختلفة، لكن النمط مشابه. إذا فشل أول GET_DESCRIPTOR، لا يصل المضيف أبدًا إلى إعداد الجهاز العادي.

أول 8 بايت مهمة

غالبًا ما يقرأ المضيف أول 8 بايت من واصف الجهاز أولاً لمعرفة حجم حزمة نقطة النهاية الصفرية. إذا فشل هذا الطلب أو أعاد بيانات غير متسقة، فقد يتوقف التعداد.

يختبر مطورو البرامج الثابتة أحيانًا استجابة الواصف الكامل فقط ويفوتون الطلب الأولي القصير. يمكن أن يعمل الجهاز مع مضيف واحد ويفشل مع آخر لأن التوقيت وطول الطلب مختلفان.

ابحث عن:

  • لا استجابة لطلب الواصف الأول.
  • حزمة قصيرة حيث تتوقع استجابة صالحة.
  • توقف على نقطة النهاية الصفرية.
  • مهلة متبوعة بإعادة تعيين.
  • طول الواصف لا يطابق البنية المتوقعة.
  • بيانات الواصف تتغير بين المحاولات.

حلقات الطاقة وإعادة الضبط

إذا كان الجهاز يعمل ببطء أو يسحب تيارًا كبيرًا جدًا، فقد يعيد التعيين أثناء التعداد. ثم يحاول Windows مرة أخرى. قد تكون النتيجة حلقة:

Attach
Reset
GET_DESCRIPTOR
Timeout
Reset
GET_DESCRIPTOR
Timeout
Unknown USB Device

قد يعتقد المستخدم أن هذه مشكلة برنامج تشغيل لأن الخطأ يظهر في إدارة الأجهزة. لكن إذا لم يُقرأ الواصف أبدًا، لم يكن برنامج التشغيل العادي متورطًا بعد.

جرب كابلًا مباشرًا قصيرًا، ومنفذًا آخر، وموزعًا مُمَوَّلًا، ومضيفًا آخر، لكن حافظ على الالتقاط. يخبرك التتبع ما إذا كان الجهاز قد فشل قبل استجابة الواصف أو بعدها.

واصفات مشوهة

إذا أعاد الجهاز بايتات الواصف لكنها غير صالحة، قد يرفض Windows الجهاز. تشمل الأمثلة:

  • bLength خاطئ.
  • نوع الواصف خاطئ.
  • عدم تطابق الطول الكلي للتهيئة.
  • واصف نقطة النهاية مفقود.
  • عدم تطابق عدد الواجهات.
  • حجم الحزمة الأقصى غير صالح.
  • عدم تطابق طول واصف السلسلة.
  • مطالبات إصدار USB غير مدعومة.

الواصفات المشوهة شائعة بشكل خاص في البرامج الثابتة المخصصة، ولوحات التطوير، وأنوية USB في FPGA، والأجهزة ذات مكدسات USB المكتوبة يدويًا.

يمكن لـ Bus Scope المساعدة في فحص محتوى الواصف مباشرة بدلاً من الاعتماد على خطأ إدارة أجهزة عام.

لماذا يعمل على Linux وليس على Windows

بعض الأجهزة تعد على Linux لكنها تفشل على Windows لأن المضيفين ليسوا متساويين في التسامح. قد يفرض Windows اتساق الواصف بشكل مختلف. قد يعيد Linux المحاولة بطريقة تخفي مشكلات التوقيت. قد يعتمد الجهاز أيضًا على سلوك برنامج تشغيل فئة يختلف بين أنظمة التشغيل.

لا تستنتج أن Windows مخطئ أو أن الجهاز جيد. قارن تتبع التعداد. الفرق غالبًا مرئي في ترتيب الطلب، أو التوقيت، أو طول الواصف، أو سلوك إعادة التعيين.

قائمة مراجعة التصحيح

استخدم هذه العملية:

  1. التقط من قبل التوصيل.
  2. حدد ما إذا كان طلب واصف الجهاز الأول يتلقى أي استجابة.
  3. تحقق مما إذا كانت نقطة النهاية الصفرية تتوقف أو تنتهي مهلتها.
  4. افحص بايتات الواصف لصحة الطول والنوع.
  5. تحقق من إعادة تعيين المنفذ المتكررة.
  6. قارن المنفذ المباشر مقابل الموزع.
  7. قارن منافذ USB 2.0 و USB 3.x.
  8. قارن كابلًا آخر.
  9. قارن تتبع تعداد Windows و Linux.
  10. إذا كانت البرامج الثابتة مخصصة، اختبر قراءات الواصف القصيرة صراحة.

ما يجب تضمينه في تقرير خطأ

يتضمن التقرير المفيد:

  • نص خطأ Windows و Code 43 إذا كان موجودًا.
  • VID/PID الجهاز إذا قُرئت أبدًا.
  • ما إذا كان طلب واصف الجهاز الأول الذي يبلغ 8 بايتات ينجح.
  • آخر طلب USB ناجح قبل الفشل.
  • ما إذا كانت إعادة الضبط تتكرر.
  • تفاصيل الكابل/الموزع/المنفذ.
  • التقاط حول التوصيل، وليس فقط بعد الفشل.

هذا يعطي فرق البرامج الثابتة وبرامج التشغيل أدلة قابلة للتنفيذ.

التشخيص النهائي

"فشل طلب واصف جهاز USB" يعني أن المضيف فشل مبكرًا جدًا في التعداد. قد يكون السبب الجذري في البرامج الثابتة، أو بنية الواصف، أو التوقيت، أو سلوك نقطة النهاية الصفرية، أو الطاقة، أو الكابل، أو الموزع، أو توافق المضيف. عادة ما يكون من السابق لأوانه لوم التطبيق.

يدعم Bus Scope سير العمل الصحيح: افحص أول عمليات نقل التحكم، وحافظ على تسلسل التعداد، وشخّص الفشل من ناقل USB بدلاً من تسمية Windows عامة.