سؤال

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

وفي ملاحظة ذات صلة، أنا مهتم بدعم الترجمة اللغوية للبرنامج الذي نكتبه؛هل من الممكن للجهاز و/أو برنامج التشغيل الإبلاغ عن اسمه المألوف ووصفه بطريقة محلية؟هل هناك ممارسة شائعة لهذا بالفعل؟

شكرا على وقتك.

هل كانت مفيدة؟

المحلول

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

وكما ستلاحظ، فإن الأجهزة موجودة أسفل سائق الحافلة الخاصة بها.بالنسبة لأجهزة PCI، سيكون "ناقل PCI".بالنسبة لأجهزة USB، سيكون هذا هو محور USB الخاص بها.كل سائق حافلة لديه فكرته الخاصة حول كيفية تنسيق سلاسل المعرفات:

  • الرقم التعريفي الخاص بالجهاز
  • معرفات الأجهزة
  • المعرفات المتوافقة
  • الموقع، الخ.

ويرجع لهم ردا على IRP_MN_QUERY_ID (BusQueryInstanceID, BusQueryHardwareIDs, BusQueryCompatibleIDs) و IRP_MN_QUERY_DEVICE_TEXT (DeviceTextDescription, DeviceTextLocationInformation إلخ.)

بالطبع، بما أن سائق الحافلة قام بتعداد الأجهزة (أي:إنشاء الأجهزة الفرعية التي تراها) في المقام الأول (من خلال أي واجهة قياسية مناسبة للحافلة؛على سبيل المثال"احصل على واصف الجهاز/السلسلة" على USB)، فهو يعرف معرف البائع ومعرف المنتج وما إلى ذلك.

ليس من الضروري تحميل برنامج تشغيل الجهاز في هذا الوقت.في الواقع، لا يمكن تحميله.معرفات الجهاز هي بالضبط ما يرشد نظام PnP إلى برنامج التشغيل الذي يطابق الجهاز.

أما بالنسبة للتوطين:

على عكس IRP_MN_QUERY_ID, ، الذي يوفر سلاسل غير شفافة مخصصة لمطابقة الأجهزة، و IRP_MN_QUERY_DEVICE_TEXT كان المقصود بالفعل أن تكون المعلومات محلية.ولهذا الغرض، تتلقى معرف اللغة المطلوب (LCID) في بيانات الإدخال (Parameters.QueryDeviceText.LocaleId).

[كما لاحظ Alphaneo، قد يقوم برنامج تشغيل محور USB بتمرير LCID هذا إلى جهاز USB (ضمن طلب Get String Descriptor)، على أمل أن يكون جهاز USB نفسه يحتوي على سلاسل مترجمة.]

نصائح أخرى

ووتسمى هذه العملية أعلى مستوى التعداد. تدعم معظم الحافلات جهاز الحديثة الآلية التي تتيح الاستعلام OS لبوسه وتحديد ما هي الأجهزة المتصلة بالناقل.

والأسرة PCI الحافلات كل التعداد الدعم. ناقل PCI لديها فقط لهذا الغرض. هذا هو المكان الذي تأتي "بلج ن اللعب" معرف من.

وفي هويات جهاز تحديد فريد جهاز على متن الحافلة وتمكين OS للعثور على برنامج التشغيل الصحيح لهذا الجهاز.

والحافلات الأخرى، بما في ذلك USB و FireWire لديها استراتيجيات تعداد

ومعرف الجهاز، هو مزيج من المعلومات المقدمة من الجهاز. على سبيل المثال، لجهاز USB، ويستند على سلسلة VID و PID (ID البائع والمنتج ID). الآن، وهذا لا يمكن أن يحدث إذا تم تحميل أي برنامج تشغيل. أتلست بعض السائق، فإن سائق الحافلة لا بد من تحميل لنظام التشغيل للحصول على معرف الجهاز.

والآن، لدعم اللغة، واعتقد للسائق WDM، هناك QUERY_LANG أو شيء من هذا، وأنا لا أتذكر بشكل صحيح، بدلا من ذلك بعض الأجهزة مثل USB، يكون الدعم ID اللغة. هذا ID لغة يحدد لغة سلسلة واصف المنتج.

تجدر الإشارة إلى أن هناك فرقا بين الأجهزة معرف / الرقم التسلسلي وصحيح معرف الجهاز فريد من نوعه. ربما هذا سوف أشرح ذلك أفضل: http://www.soft.tahionic.com /download-hdd_id/hardware٪20ID٪20programmer٪27s٪20DLL.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top