WED FRI - 新価値創造PORTAL- 中小企業の製品 ... · 中小企業 の優れた製品 ... 基調講演の他、3つのテーマと 連動した講演・セミナーを開催!
Tech Fielders セミナー札幌...
Transcript of Tech Fielders セミナー札幌...
[1]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
[2]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
自己紹介
[3]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
はじめに ~遠くなるハードウェア~
充実のAPI群Win32,.NET Framework,Silverlight などなど
イメージ湧かないなぁ
こっちは良くわかるんだけど
[4]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
はじめに
.NET Framework からハードウェア*
にアクセスする方法を紹介します
*CPU, メモリ, HDD, ビデオカード, ディスプレイ, サウンドカード, USB メモリ, プリンタ, スキャナ などなどたくさんのハードウェアがあります。が、ここでは漠然とカーネルモードドライバ経由でないとアクセスできない装置(?)全般とします。
[5]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
ネットでごくまれに見かける書き込み
CPU の温度を取得するソフトを作りたいのですが…
CPU の動作速度を制御するソフトを作りたいのですが…
チップセットの設定を変更するソフトを作りたいのですが…
[6]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
ネットでごくまれに見かける書き込み
CPU の温度を取得するソフトを作りたいのですが
…
CPU の動作速度を制御するソフトを作りたいのですが…
チップセットの設定を変更する
ソフトを作りたいのですが…
[7]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
正直、ハードルは高いです!!
Q: CPU の温度を取得するソフトを作りたいのですが…A: 最近の CPU には、温度センサーが搭載されているため、MSR から情報を取得すれば作れます。詳細は、CPU ベンダが公開している資料を熟読する必要があります。
Q: CPU の動作速度を制御するソフトを作りたいのですが…A: 動作倍率を制御する場合は、MSR の設定を変更します。
FSB などを制御する場合は、チップセットや搭載 PLL ごとに制御方法が異なるようです。(詳細は、abo 氏の SetFSB を…)
Q: チップセットの設定を変更するソフトを作りたいのですが…A: チップセットの設定は PCI コンフィギュレーション空間で設定できます。ただし、設定箇所はチップセットごとにまちまちなのでチップセットベンダが公開している資料を熟読する必要があります。
[8]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
ポイントを整理すると
[9]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
汎用ハードウェアアクセスライブラリ
•http://openlibsys.org/
•修正 BSD ライセンス
[10]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
使用方法 (C#)
1. OpenLibSys.cs をプロジェクトに加えます。2. using OpenLibSys; 文をソースコードに加えます。3. Ols ols = new Ols(); などで Ols クラスのオブジェクトを生成します。4. オブジェクトを介してライブラリの機能を呼び出します。
使用方法
using OpenLibSys;public partial class WinRing0Sample : Form{
private void Form1_Load(object sender, EventArgs e){
uint freq = 1193180000 / 440000; // 440HzOls ols = new Ols();// Beep 音を鳴らします。ols.WriteIoPortByte(0x43, 0xB6);ols.WriteIoPortByte(0x42, (byte)(freq & 0xFF));ols.WriteIoPortByte(0x42, (byte)(freq >> 9));// 以下省略
}}
hogehoge.cs
[11]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
使用例 (C#)Host Bridge の PCI コンフィギュレーション空間ダンプ
// Host Bridgeaddress = ols.FindPciDeviceByClass(0x06, 0x00, 0x00, 0);if (address != 0xFFFFFFFF){
str += "[PCI Confguration Space Dump] HostBridge¥r¥n"; str += " 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F¥r¥n";str += "---------------------------------------------------¥r¥n";for (int i = 0; i < 256; i+= 16){
str += i.ToString("X2") + "|";for (int j = 0; j < 16; j++){
str += “ ” + (ols.ReadPciConfigByte(address, (byte)(i + j))).ToString("X2");
}str += "¥r¥n";
}}
[12]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
マニュアル完備
API リスト
MSDN 風
[13]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
WinRing0 利用アプリの紹介CPU-Tweaker by www.tweakers.fr SetFSB by abo (日本製)
Real Temp by Kevin Glynn
Intel Core 2 Gadget by Orbmu2k
[14]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo
まとめ
http://openlibsys.org/