سؤال

لدي بعض رمز Linux الذي يراقب أجهزتنا عن طريق جمع درجات الحرارة والفولتية وسرعات المروحة ، من اللوحة الأم باستخدام وظائف INB () ، Outb () ، inl () ، إلخ.

يتمثل التحدي الذي يواجهه في تنفيذ هذا الرمز لتشغيله تحت Windows كتطبيق وحدة تحكم بسيطة. لكنني في حيرة من الوظائف التي توفرها Win32 (أو .NET) والتي تتيح لي إذنًا للوصول إلى المنافذ المعينة للذاكرة المباشرة.

لا أريد ترميز برنامج تشغيل النظام أيضًا.

تفضيل أداة Windows الخاص بي هو VS2008. (لمعلوماتك)

هل هذا ممكن؟

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

المحلول 3

حسنًا ، بعد الكثير من البحث مع بعض التجربة والخطأ ، فإن أكثر البتات المفيدة التي وجدت أنها مفيدة هما:

Winring0 و io.dll .

إنهم يفعلون الشيء نفسه إلى حد كبير ، والفرق هو عينات التعليمات البرمجية التي ستجدها لمساعدتك في البدء في استخدامها.

أتمنى أن يساعد هذا للآخرين.

نصائح أخرى

يمنع مستوى الحماية الافتراضي لمنافذ الإدخال/الإخراج في Windows برنامج وضع المستخدم من استخدام ENP و OUT على أي منفذ. سيموت برنامجك مع GPF. هناك العديد من برامج التشغيل المتوفرة بحرية حول هذا التغير مستوى الحماية حتى يتمكن رمز الحلقة 3 من الوصول إلى المنافذ. لا بأس إذا كنت مهتمًا بمشاريع القاتل.

الكنسي هو INPOUT32.

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

يمكنك أيضا التحقق من دليل ترحيل تطبيق UNIX إعلان MSDN.

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