سؤال

لقد كتبت في وقت مبكر من C / C ++ ولكن حاليا، أحتاج إليها للتحويل إلى C #.

هل يمكن لأحد أن يقول لي رمز / طريقة كيفية كتابة برامج التشغيل في C #؟

في الواقع حاليا لدي بعض المشاكل مع تطبيقي القديم مكتوب في C ++، وعلينا كتابة برامج تشغيل طابعات LPT1 و COM الخاصة بنا وغيرها من برامج تشغيل USB في C #.

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

المحلول

ببساطة لا يمكنك ذلك. C # تنتج اللغة الوسيطة التي يتم تفسيرها بواسطة جهاز افتراضي (.NET). تعمل كل هذه الأشياء في وضع المستخدم وتشغيل برامج تشغيل WDM في وضع Kernel.

هناك DDK ولكنها غير مدعومة في vstudio إما (ولكن يمكنك إجراء مشروع makefile للتجميع على الرغم من).

تطوير برنامج التشغيل معقدة، عرضة للشاشة الزرقاء ويتطلب فهم جيد ل C، هياكل النواة وممارسة MEM. لا يوجد أي من هذه المهارات مطلوبة ل C # و .NET لذلك هناك مسار تدريب طويل ومؤلم.

نصائح أخرى

في الواقع، يمكنك كتابة بعض برامج التشغيل في C # إذا كنت تستخدم UMDF لأنه يعمل في Usermode (انظر البدء مع UMDF). لكن توصيتي هي استخدام C / C ++.

لا يمكنك كتابة برامج تشغيل وضع Kernel في C # (ينفذ وقت التشغيل في وضع المستخدم، وبالتالي لا يمكنك الدخول إلى Ring0). يوفر هذا Q / A بعض الروابط التي قد تجدها مفيدة:

C # تطوير سائق؟

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

على سبيل المثال، للتفاعل مع الأجهزة المتصلة بالمنفذ التسلسلي الخاص بك، لا تحتاج إلى كتابة برنامج التشغيل الخاص بك وفي الواقع، يمكنك الوصول إليها من خلال .NET SerialPort صف دراسي.

حتى أجهزة USB يمكن الوصول إليها من مساحة المستخدم (، وفي نهاية المطاف، الكود المدار) من خلال الأطر مثل LIBUSB-WIN32., Winusb. إلخ.

لا يمكنك كتابة برامج التشغيل في C #؛ يحتاج السائقون إلى تشغيل مع امتياز مرتفع لتتمكن من التحدث إلى الأجهزة؛ لا يمكن تشغيل التعليمات البرمجية المدارة في البيئة المناسبة.

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