Tech Fielders セミナー札幌...

14
[1] Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo

Transcript of Tech Fielders セミナー札幌...

Page 1: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[1]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo

Page 2: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[2]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo

自己紹介

Page 3: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[3]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo

はじめに ~遠くなるハードウェア~

充実のAPI群Win32,.NET Framework,Silverlight などなど

イメージ湧かないなぁ

こっちは良くわかるんだけど

Page 4: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[4]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo

はじめに

.NET Framework からハードウェア*

にアクセスする方法を紹介します

*CPU, メモリ, HDD, ビデオカード, ディスプレイ, サウンドカード, USB メモリ, プリンタ, スキャナ などなどたくさんのハードウェアがあります。が、ここでは漠然とカーネルモードドライバ経由でないとアクセスできない装置(?)全般とします。

Page 5: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[5]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo

ネットでごくまれに見かける書き込み

CPU の温度を取得するソフトを作りたいのですが…

CPU の動作速度を制御するソフトを作りたいのですが…

チップセットの設定を変更するソフトを作りたいのですが…

Page 6: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[6]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo

ネットでごくまれに見かける書き込み

CPU の温度を取得するソフトを作りたいのですが

CPU の動作速度を制御するソフトを作りたいのですが…

チップセットの設定を変更する

ソフトを作りたいのですが…

Page 7: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[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 コンフィギュレーション空間で設定できます。ただし、設定箇所はチップセットごとにまちまちなのでチップセットベンダが公開している資料を熟読する必要があります。

Page 8: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[8]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo

ポイントを整理すると

Page 9: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[9]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo

汎用ハードウェアアクセスライブラリ

•http://openlibsys.org/

•修正 BSD ライセンス

Page 10: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[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

Page 11: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[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";

}}

Page 12: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[12]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo

マニュアル完備

API リスト

MSDN 風

Page 13: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[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

Page 14: Tech Fielders セミナー札幌 データアクセスdownload.microsoft.com/download/6/F/D/6FD11AD1-2890-4C41...Tech Fielders セミナー札幌[データアクセス& WPF], 2009/2/6,

[14]Tech Fielders セミナー 札幌 [データアクセス & WPF], 2009/2/6, Copyright (C) 2009 hiyohiyo

まとめ

http://openlibsys.org/