12.07.2015 Views

システム監視ライブラリ

システム監視ライブラリ

システム監視ライブラリ

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

IFCPMGR.WINシステム 監 視 ライブラリMini-ITX マザーボード 用 Windows ドライバソフトウェアHelp for Windowswww.interface.co.jp


Help for Windows目 次第 1 章 はじめに 31.1 概 要 ...........................................................................31.2 特 長 ...........................................................................3第 2 章 製 品 仕 様 42.1 基 本 仕 様 .......................................................................42.2 製 品 構 成 .......................................................................4第 3 章 導 入 方 法 53.1 インストール 手 順 ...............................................................53.2 クラスライブラリの 参 照 方 法 .....................................................53.3 実 行 手 順 .......................................................................6第 4 章 リファレンス 104.1 関 数 一 覧 ......................................................................104.2 関 数 個 別 説 明 ..................................................................114.3 コールバック 関 数 ..............................................................424.4 構 造 体 説 明 ....................................................................434.5 戻 り 値 一 覧 ....................................................................45第 5 章 サンプルプログラム 465.1 実 行 方 法 ......................................................................465.2 コンパイル 方 法 ................................................................465.3 サンプルプログラム 一 覧 ........................................................47第 6 章 重 要 な 情 報 48© 2011 Interface Corporation. All rights reserved.2


Help for Windows第 1 章 はじめに1.1 概 要システム 監 視 ライブラリは、Windows 上 のアプリケーションから、 弊 社 Mini-ITX マザーボードを監 視 する 為 のソフトウェアです。弊 社 Mini-ITX マザーボードを Windows 上 のアプリケーションから DLL をダイナミックリンクし、API をコールすることにより 監 視 します。本 ドキュメントは、Windows 上 でシステム 監 視 ライブラリを 使 用 するための 情 報 を 掲 載 しています。1.2 特 長●ウォッチドッグタイマ(WDT)の 開 始 、 停 止 、 周 期 の 設 定 をソフトウェア 上 で 自 由 に 設 定 可 能 です。●WDT が 指 定 した 周 期 時 間 中 にクリアされない 場 合 、CPU リセット、または 割 り 込 みイベント 通 知のいずれかを 選 択 可 能 です。●CPU 温 度 、 基 板 温 度 を 取 得 可 能 です。●あらかじめ 設 定 しておいた CPU 温 度 上 限 値 、CPU 温 度 下 限 値 、 基 板 温 度 上 限 値 、 基 板 温 度 下 限値 の 超 えた 場 合 に 割 り 込 みイベントの 通 知 が 可 能 です。●マルチプロセスに 対 応 しています。 複 数 のアプリケーションからシステム 監 視 が 行 えます。●WDT、 温 度 監 視 、 割 り 込 みイベント 通 知 のサンプルプログラムが 付 属 しています。© 2011 Interface Corporation. All rights reserved.3


Help for Windows第 2 章 製 品 仕 様2.1 基 本 仕 様機 能ウォッチドッグタイマ(WDT)温 度 監 視割 り 込 みイベント・ 設 定 可 能 周 期 :1 秒 ~255 秒 (1 秒 単 位 )・ 周 期 満 了 時 の 挙 動 :CPU リセット、 割 り 込 みイベント 通 知 のいずれか・ 監 視 対 象 :CPU 温 度 、 基 板 温 度・ 温 度 上 限 ・ 下 限 範 囲 :-60℃~125℃(1℃ 単 位 )・WDT 周 期 満 了 検 出・CPU 温 度 上 限 超 え 検 出・CPU 温 度 下 限 超 え 検 出・ 基 板 温 度 上 限 超 え 検 出・ 基 板 温 度 下 限 超 え 検 出2.2 製 品 構 成製 品 構 成 ファイル 名 説 明最 新 情 報 ドキュメント README.HTM 最 新 ドキュメント 掲 載 ファイルインストールプログラム SETUP.EXE インストール 用 ファイルサンプルプログラム wdtWDT サンプルプログラムtemperature 温 度 監 視 サンプルプログラムeventWDT 割 り 込 みイベント 通 知 サンプルプログラムIFCCPMGR Visual C# .NET、Visual Basic .NET 用クラスライブラリソースDLL IFCPMGR.DLL ダイナミックリンクライブラリファイルIFCPMGR.LIB インポートライブラリファイルデバイスドライバ IFCPMGR.SYS Windows XP 以 降 の OS 用 ドライバヘッダファイル IFCPMGR.H Visual C++ 用 ヘッダファイルIFCPMGR.BAS Visual Basic 用 ヘッダファイルヘルプ HELP.PDF ヘルプ(PDF 形 式 )※Visual C# .NET,Visual Basic.NET 用 サンプルプログラムは、それぞれ Viausl C# .NET 2003,Visual Basic .NET 2003 を 使 用 して 作 成 しています。© 2011 Interface Corporation. All rights reserved.4


Help for Windows第 3 章 導 入 方 法3.1 インストール 手 順README.HTM のインストール 方 法 を 参 照 してください。3.2 クラスライブラリの 参 照 方 法本 製 品 では、クラスライブラリのソースファイルを 用 意 しています。Visual C# .NET、および Visual Basic .NET をご 利 用 の 際 は、ソースコードをビルドしてクラスライブラリを 生 成 し、 参 照 することで、DLL 関 数 の 定 義 を 容 易 にすることができます。(DLL 関 数 の 呼 び 出 しをカスタマイズしたい 場 合 は、クラスライブラリのソースを 参 照 してください)1.クラスライブラリの 作 成 方 法.NET において DLL 関 数 を 呼 び 出 すには、まずクラスライブラリを 用 意 する 必 要 があります。Visual C# .NET の 場 合Visual Studio を 起 動 し、 以 下 のプロジェクトファイルを 開 きます。\interface\IFCPMGR\samples\CS_NET\IFCCPMGR\IFCCPMGR.csprojこのプロジェクトをビルドすると、bin フォルダにクラスライブラリ IFCCPMGR.dll が 作 成 されます。Visual Basic .NET の 場 合Visual Studio を 起 動 し、 以 下 のプロジェクトファイルを 開 きます。\interface\IFCPMGR\samples\VB_NET\IFCCPMGR\IFCCPMGR.vbprojこのプロジェクトをビルドすると、bin フォルダにクラスライブラリ IFCCPMGR.dll が 作 成 されます。© 2011 Interface Corporation. All rights reserved.5


Help for Windows2.クラスライブラリの 参 照Visual C# .NET, Visual Basic .NET の 場 合Visual Studio のメニューの「プロジェクト」の「 参 照 の 追 加 」を 選 択 してください。「 参 照 」ボタンをクリックして 参 照 したいクラスライブラリ DLL を 指 定 します。例 )\interface\IFCPMGR\samples\CS_NET\IFCCPMGR\bin\Release\ifccpmgr.dll\interface\IFCPMGR\samples\VB_NET\IFCCPMGR\bin\Relaase\ifccpmgr.dll「 選 択 されたコンポーネント」に 指 定 した DLL が 表 示 されます。「OK」ボタンをクリックすると 設 定 は 完 了 です。次 にソースのヘッダで 各 言 語 毎 に 下 記 のように InterfaceCorpDllWrap の 名 前 空 間 を 追 加 すれば DLL 関 数 を 次 章 の「 使 用 例 」の 方 法 で 呼 び 出 すことができるようになります。Visual C# .NET の 場 合using InterfaceCorpDllWrap;Visual Basic .NET の 場 合Imports InterfaceCorpDllWrap3.3 実 行 手 順基 本 的 な 制 御 の 手 順 は 以 下 の 通 りです( 記 述 例 は C 言 語 です)。3.3.1 WDT下 記 の 流 れで WDT を 使 用 します。1.WDT の 周 期 、 周 期 満 了 アクション(CPU リセット、または 割 り 込 みイベント 通 知 )を 設 定 。2.WDT 開 始 。3. 指 定 した 周 期 に 達 する 前 に WDT クリア。WDTの 周 期 、 周 期 満 了 アクションの 設 定 は、CmSetWDTConfigで 行 います。UINT Ret;// 50 秒 間 クリアされなければ CPU リセットを 行 うRet = CmSetWDTConfig(50, CM_WDT_ACT_RESET);WDTの 開 始 は、CmStartWDTで 行 います。Ret = CmStartWDT();WDTのクリアは、CmClearWDTで 行 います。Ret = CmClearWDT();WDTの 使 用 を 停 止 する 場 合 は、CmStopWDTを 実 行 してください。Ret = CmStopWDT();© 2011 Interface Corporation. All rights reserved.6


Help for WindowsWDT 周 期 満 了 時 、CPUリセットの 他 に、 割 り 込 みイベントを 通 知 することができます。 詳 細 は『3.3.3割 り 込 みイベント』をご 参 照 ください。WDT の 割 り 込 みイベントと CPU リセットの 用 途 は 下 記 を 参 考 にしてください。WDT 処 理用 途割 り 込 みイベント アプリケーションの 動 作 異 常 によるプロセス 停 止 検 出 を 目 的 としています。アプリケーションとは 別 の 監 視 プロセスを 作 成 し、アプリケーションでWDT の 周 期 的 クリアを 実 行 します。 監 視 プロセスには WDT 割 り 込 みイベントを 登 録 しておきます。もしアプリケーションに 異 常 が 生 じて WDT クリアが 途 絶 えた 場 合 、 監 視 プロセスに 割 り 込 みイベントが 発 生 し、アプリケーションの 異 常 が 検 知 できます。CPU リセット システム(OS)のフリーズ 等 の 自 動 復 旧 を 目 的 としています。3.3.2 温 度 監 視CPU 温 度 と、 基 板 温 度 を 取 得 することができます。いずれもCmGetTempを 使 用 します。UINT Ret;int CpuTemp;int BrdTemp;// CPU 温 度 の 取 得Ret = CmGetTemp(CM_TEMP_TARGET_CPU, &CpuTemp);// 基 板 温 度 の 取 得Ret = CmGetTemp(CM_TEMP_TARGET_BRD, &BrdTemp);取 得 値 は 負 数 になることもあります。 単 位 は℃になります。温 度 の 上 限 と 下 限 を 設 定 することで、その 範 囲 を 超 えた 場 合 に、 割 り 込 みイベントを 通 知 することができます。 詳 細 は『3.3.3 割 り 込 みイベント』をご 参 照 ください。© 2011 Interface Corporation. All rights reserved.7


Help for Windows3.3.3 割 り 込 みイベント割 り 込 みイベントは 下 記 の 流 れで 使 用 します。1. 各 割 り 込 みイベントの 条 件 (WDT 周 期 、 温 度 上 限 、 下 限 )を 設 定 します。2. 割 り 込 みイベント(シグナルイベント、メッセージ、コールバック 関 数 等 )を 登 録 します。3. 割 り 込 みイベントマスクを 設 定 し、イベントを 有 効 化 します。上 記 を 行 った 後 、 割 り 込 みイベント 要 因 が 満 たされれば、 割 り 込 みイベントが 通 知 されます。割 り 込 みイベントが 発 生 した 場 合 、 必 ずイベント 要 因 の 取 得 を 行 なってください。イベント 要 因 の 取 得 を 行 なっていない 場 合 、 次 の 割 り 込 みは 発 生 しません。割 り 込 みイベントの 登 録 はCmSetEventで 行 い、 割 り 込 みイベントマスクの 設 定 はCmSetEventMaskで 行 います。イベント 発 生 時 にコールバック 関 数 が 呼 び 出 される 設 定 例 を 下 記 に 示 します。(WDT、CPU 温 度 上 限 、CPU 温 度 下 限 を 有 効 にします。)// コールバック 関 数void CALLBACK UserCallback(PVOID User){UINT Ret;UINT Factor;// イベント 要 因 取 得Ret = CmGetEventFactor(&Factor);}// イベントごとの 処 理…int main(void){UINT Ret;CM_EVENT_REQ EventReq;// CPU 温 度 下 限 (0℃)、 上 限 (50℃) 設 定Ret = CmSetTempLimit(CM_TEMP_TARGET_CPU, 0, 50);// イベント 登 録ZeroMemory(&EventReq, sizeof(CM_EVENT_REQ));EventReq.CallBackProc = (LPCMCALLBACK)UserCallback;Ret = CmSetEvent(&EventReq);// イベントマスク 設 定 (WDT、CPU 温 度 上 限 ・ 下 限 )Ret = CmSetEventMask(CM_EVENT_WDS | CM_EVENT_CPTHS | CM_EVENT_CPTLS);…© 2011 Interface Corporation. All rights reserved.8


Help for Windows}割 り 込 みイベントの 使 用 終 了 時 は、 割 り 込 みマスク 設 定 でイベントを 無 効 化 し、CmKillEventで 割り 込 みイベントを 解 除 してください。UINT Ret;// 全 割 り 込 みを 無 効 化Ret = CmSetEventMask(0);// 割 り 込 みの 解 除Ret = CmKillEvent();コールバック 関 数 以 外 の 使 用 方 法 は、サンプルプログラムをご 参 照 ください。© 2011 Interface Corporation. All rights reserved.9


Help for Windows第 4 章 リファレンス4.1 関 数 一 覧No 関 数 名 機 能●WDT1 CmSetWDTConfig 周 期 、 周 期 満 了 時 のアクション 設 定 を 行 います。2 CmGetWDTConfig 周 期 、 周 期 満 了 時 のアクションの 取 得 を 行 います。3 CmStartWDT WDT を 開 始 します。4 CmStopWDT WDT を 停 止 します。5 CmClearWDT WDT のクリアを 行 います。● 温 度 監 視6 CmGetTemp 現 在 の 指 定 対 象 の 温 度 を 取 得 します。7 CmSetTempLimit 指 定 対 象 の 監 視 温 度 下 限 、 上 限 を 設 定 します。8 CmGetTempLimit 指 定 対 象 の 監 視 温 度 下 限 、 上 限 を 取 得 します。● 割 り 込 みイベント9 CmSetEvent 割 り 込 みイベントを 登 録 します。10 CmKillEvent 割 り 込 みイベントを 削 除 します。11 CmSetEventMask 割 り 込 みイベントマスクを 設 定 します。12 CmGetEventMask 割 り 込 みイベントマスクを 取 得 します。13 CmGetEventFactor 割 り 込 みイベント 要 因 を 取 得 します。●ステータス14 CmGetSpecifiedStatus 要 求 した 各 種 ステータスのみを 取 得 します。© 2011 Interface Corporation. All rights reserved.10


Help for Windows4.2 関 数 個 別 説 明1. CmSetWDTConfig【 機 能 】WDT の 周 期 、および 周 期 満 了 時 のアクションを 設 定 します。【 書 式 】●C 言 語UINT CmSetWDTConfig(UINT Cycle,UINT Action);●Visual BasicDeclare Function CmSetWDTConfig Lib "ifcpmgr.dll"( _ByVal Cycle As Long, _ByVal Action As Long _)As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmSetWDTConfig(uint Cycle,uint Action);●Visual Basic .NETDeclare Function CmSetWDTConfig Lib "ifcpmgr.dll"(_ByVal Cycle As Integer, _ByVal Action As Integer _)As Integer【パラメータ】CycleWDT の 周 期 を 設 定 します。 設 定 可 能 範 囲 は 1~255 で、 単 位 は 秒 です。デフォルトは 30 です。BIOS 設 定 で WDT を 有 効 にしている 場 合 は、その 設 定 となります。ActionWDT 周 期 満 了 時 のアクションを 指 定 します。下 記 の 値 が 指 定 可 能 です。デフォルトは CM_WDT_ACT_INTERRUPT です。BIOS 設 定 で WDT を 有 効 にしている 場 合 は、CM_WDT_ACT_RESET になります。識 別 子 値 意 味CM_WDT_ACT_INTERRUPT 0 周 期 満 了 時 に 割 り 込 みイベントを 発 生 させます。CM_WDT_ACT_RESET 1 周 期 満 了 時 に CPU リセットを 起 こします。© 2011 Interface Corporation. All rights reserved.11


Help for Windows【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_INTERNAL C0000001h 内 部 エラーIFCM_ERROR_INVALID_PARAMETER C0000002h 入 力 パラメータ 不 正IFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。【 備 考 】・WDT 動 作 中 に、 本 関 数 を 実 行 すると、 新 しく 設 定 した 周 期 で、 再 度 カウントし 直 します。・ 複 数 の 異 なるアプリケーションで 本 関 数 を 実 行 した 場 合 、 最 後 に 設 定 した 周 期 、アクションが 有 効 となります。・BIOS 設 定 で WDT を 有 効 にしている 場 合 は、OS 起 動 時 にその 設 定 が 引 き 継 がれます。【 使 用 例 】●C 言 語UINT Ret;Ret = CmSetWDTConfig(50, CM_WDT_ACT_RESET);●Visual BasicDim Ret As LongRet = CmSetWDTConfig(50, CM_WDT_ACT_RESET)●Visual C# .NETuint Ret;Ret = IFCCPMGR.CmSetWDTConfig(50, IFCCPMGR.CM_WDT_ACT_RESET);●Visual Basic .NETDim Ret As IntegerRet = IFCCPMGR.CmSetWDTConfig(50, IFCCPMGR.CM_WDT_ACT_RESET)WDT 周 期 を 50 秒 、アクションを CPU リセットに 設 定 します。© 2011 Interface Corporation. All rights reserved.12


Help for Windows2. CmGetWDTConfig【 機 能 】現 在 の WDT の 周 期 、および 周 期 満 了 時 のアクションを 取 得 します。【 書 式 】●C 言 語UINT CmGetWDTConfig(UINT* pCycle,UINT* pAction);●Visual BasicDeclare Function CmGetWDTConfig Lib "ifcpmgr.dll"( _ByRef pCycle As Long, _ByRef pAction As Long _)As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmGetWDTConfig(out uint pCycle,out uint pAction);●Visual Basic .NETDeclare Function CmGetWDTConfig Lib "ifcpmgr.dll"(_ByRef pCycle As Integer, _ByRef pAction As Integer _)As Integer【パラメータ】pCycleWDT の 周 期 格 納 先 です。pActionWDT 周 期 満 了 時 のアクション 格 納 先 です。CmSetWDTConfigで 設 定 可 能 な 値 が 取 得 できます。© 2011 Interface Corporation. All rights reserved.13


Help for Windows【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_INTERNAL C0000001h 内 部 エラーIFCM_ERROR_NULL_POINTER C0000005h NULL ポインタ 検 出IFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。【 使 用 例 】●C 言 語UINT Ret;UINT Cycle;UINT Action;Ret = CmGetWDTConfig(&Cycle, &Action);●Visual BasicDim Ret As LongDim Cycle As LongDim Action As LongRet = CmGetWDTConfig(Cycle, Action)●Visual C# .NETuint Ret;uint Cycle;uint Action;Ret = IFCCPMGR.CmGetWDTConfig(out Cycle, out Action);●Visual Basic .NETDim Ret As IntegerDim Cycle As IntegerDim Action As IntegerRet = IFCCPMGR.CmGetWDTConfig(Cycle, Action)WDT 周 期 とアクションを 取 得 します。© 2011 Interface Corporation. All rights reserved.14


Help for Windows3. CmStartWDT【 機 能 】WDT のカウントを 開 始 します。【 書 式 】●C 言 語UINT CmStartWDT(void);●Visual BasicDeclare Function CmStartWDT Lib "ifcpmgr.dll"() As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmStartWDT();●Visual Basic .NETDeclare Function CmStartWDT Lib "ifcpmgr.dll"() As Integer【パラメータ】なし【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_INTERNAL C0000001h 内 部 エラーIFCM_ERROR_ALREADY C0000003h 既 に 動 作 中IFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。【 備 考 】一 度 WDT を 停 止 させた 後 、 再 度 本 関 数 を 実 行 した 場 合 、カウント 数 は 最 初 からカウントし 直 されます。© 2011 Interface Corporation. All rights reserved.15


Help for Windows【 使 用 例 】●C 言 語UINT Ret;Ret = CmStartWDT();●Visual BasicDim Ret As LongRet = CmStartWDT()●Visual C# .NETuint Ret;Ret = IFCCPMGR.CmStartWDT();●Visual Basic .NETDim Ret As IntegerRet = IFCCPMGR.CmStartWDT()WDT のカウントを 開 始 します。© 2011 Interface Corporation. All rights reserved.16


Help for Windows4. CmStopWDT【 機 能 】WDT のカウントを 停 止 します。【 書 式 】●C 言 語UINT CmStopWDT(void);●Visual BasicDeclare Function CmStopWDT Lib "ifcpmgr.dll"() As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmStopWDT();●Visual Basic .NETDeclare Function CmStopWDT Lib "ifcpmgr.dll"() As Integer【パラメータ】なし【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_INTERNAL C0000001h 内 部 エラーIFCM_ERROR_NOT_YET C0000004h まだ 動 作 していないIFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。© 2011 Interface Corporation. All rights reserved.17


Help for Windows【 使 用 例 】●C 言 語UINT Ret;Ret = CmStopWDT();●Visual BasicDim Ret As LongRet = CmStopWDT()●Visual C# .NETuint Ret;Ret = IFCCPMGR.CmStopWDT();●Visual Basic .NETDim Ret As IntegerRet = IFCCPMGR.CmStopWDT()WDT のカウントを 停 止 します。© 2011 Interface Corporation. All rights reserved.18


Help for Windows5. CmClearWDT【 機 能 】WDT のカウントをクリアします。クリアすると 設 定 した 周 期 の 値 でカウントし 直 します。【 書 式 】●C 言 語UINT CmClearWDT(void);●Visual BasicDeclare Function CmClearWDT Lib "ifcpmgr.dll"() As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmClearWDT();●Visual Basic .NETDeclare Function CmClearWDT Lib "ifcpmgr.dll"() As Integer【パラメータ】なし【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_INTERNAL C0000001h 内 部 エラーIFCM_ERROR_NOT_YET C0000004h まだ 動 作 していないIFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。© 2011 Interface Corporation. All rights reserved.19


Help for Windows【 使 用 例 】●C 言 語UINT Ret;Ret = CmClearWDT();●Visual BasicDim Ret As LongRet = CmClearWDT()●Visual C# .NETuint Ret;Ret = IFCCPMGR.CmClearWDT();●Visual Basic .NETDim Ret As IntegerRet = IFCCPMGR.CmClearWDT()WDT のカウントをクリアします。© 2011 Interface Corporation. All rights reserved.20


Help for Windows6. CmGetTemp【 機 能 】指 定 対 象 の 温 度 を 取 得 します。【 書 式 】●C 言 語UINT CmGetTemp(UINT Target,INT* pTemp);●Visual BasicDeclare Function CmGetTemp Lib "ifcpmgr.dll"( _ByVal Target As Long, _ByRef pTemp As Long _)As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmGetTemp(uint Target,out int pTemp);●Visual Basic .NETDeclare Function CmGetTemp Lib "ifcpmgr.dll"(_ByVal Target As Integer, _ByRef pTemp As Integer _)As Integer【パラメータ】Target温 度 を 取 得 する 対 象 を 指 定 します。下 記 の 値 が 指 定 可 能 です。識 別 子 値 意 味CM_TEMP_TARGET_CPU 0 CPU 温 度 を 取 得 します。CM_TEMP_TARGET_BRD 1 基 板 温 度 を 取 得 します。pTemp温 度 格 納 先 です。負 数 が 得 られることもあります。 単 位 は℃です。© 2011 Interface Corporation. All rights reserved.21


Help for Windows【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_INTERNAL C0000001h 内 部 エラーIFCM_ERROR_INVALID_PARAMETER C0000002h 入 力 パラメータ 不 正IFCM_ERROR_NULL_POINTER C0000005h NULL ポインタ 検 出IFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。【 戻 り 値 】●C 言 語UINT Ret;INT CpuTemp;Ret = CmGetTemp(CM_TEMP_TARGET_CPU, &CpuTemp);●Visual BasicDim Ret As LongDim CpuTemp As LongRet = CmGetTemp(CM_TEMP_TARGET_CPU, CpuTemp)●Visual C# .NETuint Ret;int CpuTemp;Ret = IFCCPMGR.CmGetTemp(IFCCPMGR.CM_TEMP_TARGET_CPU, out CpuTemp);●Visual Basic .NETDim Ret As IntegerDim CpuTemp As IntegerRet = IFCCPMGR.CmGetTemp(IFCCPMGR.CM_TEMP_TARGET_CPU, CpuTemp)現 在 の CPU 温 度 を 取 得 します。© 2011 Interface Corporation. All rights reserved.22


Help for Windows7. CmSetTempLimit【 機 能 】指 定 対 象 の 温 度 の 上 限 、 下 限 を 設 定 します。ここで 設 定 した 範 囲 を 超 えた 場 合 に、 割 りこみイベントを 通 知 することができます。【 書 式 】●C 言 語UINT CmSetTempLimit(UINT Target,INT LowerLimit,INT UpperLimit);●Visual BasicDeclare Function CmSetTempLimit Lib "ifcpmgr.dll"( _ByVal Target As Long, _ByVal LowerLimit As Long, _ByVal UpperLimit As Long _)As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmSetTempLimit (uint Target,int LowerLimit,int UpperLimit);●Visual Basic .NETDeclare Function CmSetTempLimit Lib "ifcpmgr.dll"(_ByVal Target As Integer, _ByVal LowerLimit As Integer, _ByVal UpperLimit As Integer _)As Integer【パラメータ】Target温 度 リミットを 設 定 する 対 象 を 指 定 します。下 記 の 値 が 指 定 可 能 です。識 別 子 値 意 味CM_TEMP_TARGET_CPU 0 CPU 温 度 リミットを 設 定 します。CM_TEMP_TARGET_BRD 1 基 板 温 度 リミットを 設 定 します。© 2011 Interface Corporation. All rights reserved.23


Help for WindowsLowerLimit温 度 の 下 限 値 です。-60~UpperLimit より 小 さい 値 が 設 定 可 能 です。(-60


Help for Windows【 使 用 例 】●C 言 語UINT Ret;Ret = CmSetTempLimit(CM_TEMP_TARGET_BRD, 0, 50);●Visual BasicDim Ret As LongRet = CmSetTempLimit(CM_TEMP_TARGET_BRD, 0, 50)●Visual C# .NETuint Ret;Ret = IFCCPMGR.CmSetTempLimit(IFCCPMGR.CM_TEMP_TARGET_BRD, 0, 50);●Visual Basic .NETDim Ret As IntegerRet = IFCCPMGR.CmSetTempLimit(IFCCPMGR.CM_TEMP_TARGET_BRD, 0, 50)基 板 温 度 の 下 限 を 0℃、 上 限 を 50℃に 設 定 します。© 2011 Interface Corporation. All rights reserved.25


Help for Windows8. CmGetTempLimit【 機 能 】指 定 対 象 の 温 度 の 上 限 、 下 限 を 取 得 します。【 書 式 】●C 言 語UINT CmGetTempLimit(UINT Target,INT* pLowerLimit,INT* pUpperLimit);●Visual BasicDeclare Function CmGetTempLimit Lib "ifcpmgr.dll"( _ByVal Target As Long, _ByRef pLowerLimit As Long, _ByRef pUpperLimit As Long _)As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmGetTempLimit (uint Target,out int pLowerLimit,out int pUpperLimit);●Visual Basic .NETDeclare Function CmGetTempLimit Lib "ifcpmgr.dll"(_ByVal Target As Integer, _ByRef pLowerLimit As Integer, _ByRef pUpperLimit As Integer _)As Integer【パラメータ】Target温 度 リミットを 取 得 する 対 象 を 指 定 します。下 記 の 値 が 指 定 可 能 です。識 別 子 値 意 味CM_TEMP_TARGET_CPU 0 CPU 温 度 リミットを 取 得 します。CM_TEMP_TARGET_BRD 1 基 板 温 度 リミットを 取 得 します。© 2011 Interface Corporation. All rights reserved.26


Help for WindowspLowerLimit温 度 の 下 限 値 です。-60~UpperLimit より 小 さい 値 が 取 得 されます。単 位 は℃です。pUpperLimit温 度 の 上 限 値 です。LowerLimit より 大 きい 値 ~125 が 取 得 されます。単 位 は℃です。【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_INTERNAL C0000001h 内 部 エラーIFCM_ERROR_NULL_POINTER C0000005h NULL ポインタ 検 出IFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。【 使 用 例 】●C 言 語UINT Ret;INT LowerLimit;INT UpperLimit;Ret = CmGetTempLimit(CM_TEMP_TARGET_BRD, &LowerLimit, &UpperLimit);●Visual BasicDim Ret As LongDim LowerLimit As LongDim UpperLimit As LongRet = CmGetTempLimit(CM_TEMP_TARGET_BRD, LowerLimit, UpperLimit)●Visual C# .NETuint Ret;int LowerLimit;int UpperLimit;Ret = IFCCPMGR.CmGetTempLimit(IFCCPMGR.CM_TEMP_TARGET_BRD, out LowerLimit,out UpperLimit);●Visual Basic .NETDim Ret As IntegerDim LowerLimit As IntegerDim UpperLimit As IntegerRet = IFCCPMGR.CmGetTempLimit(IFCCPMGR.CM_TEMP_TARGET_BRD, LowerLimit, UpperLimit)基 板 温 度 の 下 限 、 上 限 を 取 得 します。© 2011 Interface Corporation. All rights reserved.27


Help for Windows9. CmSetEvent【 機 能 】シグナルイベント、ウィンドウメッセージ、コールバック 関 数 等 の 割 りこみイベントを 登 録 します。【 書 式 】●C 言 語UINT CmSetEvent(PCM_EVENT_REQ);pEvent●Visual BasicDeclare Function CmSetEvent Lib "ifcpmgr.dll"( _ByRef pEvent As CM_EVENT_REQ _)As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmSetEvent(ref CM_EVENT_REQ pEvent);●Visual Basic .NETDeclare Function CmSetEvent Lib "ifcpmgr.dll"(_ByRef pEvent As CM_EVENT_REQ _)As Integer【パラメータ】pEventイベント 登 録 用 構 造 体 を 指 定 します。詳 細 は『4.4.1 CM_EVENT_REQ』をご 参 照 ください。【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_ALREADY C0000003h 既 にイベント 登 録 済 みIFCM_ERROR_NULL_POINTER C0000005h NULL ポインタ 検 出IFCM_ERROR_NOT_ALLOCATE C0000006h メモリ 確 保 失 敗IFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。© 2011 Interface Corporation. All rights reserved.28


Help for Windows【 備 考 】1 つのアプリケーションにつき、1 つのイベントを 登 録 できます。コールバック 関 数 についての 詳 細 は『4.3 コールバック 関 数 』をご 参 照 ください。【 注 意 】コールバック 関 数 は C 言 語 でのみ 使 用 可 能 です。その 他 の 言 語 では、シグナルイベント、またはメッセージをご 利 用 ください。【 使 用 例 】●C 言 語UINT Ret;CM_EVENT_REQ EventReq;EventReq.Signal = CreateEvent(NULL, TRUE, FALSE, NULL);EventReq.Wnd = NULL;EventReq.Msg = WM_NULL;EventReq.CallBackProc = NULL;EventReq.User = NULL;Ret = CmSetEvent(&EventReq);●Visual BasicDim Ret As LongDim EventReq As CM_EVENT_REQEventReq.Signal = CreateEvent(0, True, False, 0)EventReq.Wnd = 0EventReq.Msg = 0EventReq.CallBackProc = 0EventReq.User = 0Ret = CmSetEvent(EventReq)●Visual C# .NETuint Ret;IFCCPMGR.CM_EVENT_REQ EventReq = new IFCCPMGR.CM_EVENT_REQ();EventReq.Signal = IFCCPMGR.CreateEvent(IntPtr.Zero, true, false, null);EventReq.Wnd = IntPtr.Zero;EventReq.Msg = 0;EventReq.CallBackProc = IntPtr.Zero;EventReq.User = IntPtr.Zero;Ret = IFCCPMGR.CmSetEvent(ref EventReq);© 2011 Interface Corporation. All rights reserved.29


Help for Windows●Visual Basic .NETDim Ret As IntegerDim EventReq As IFCCPMGR.CM_EVENT_REQ = New IFCCPMGR.CM_EVENT_REQEventReq.Signal = IFCCPMGR.CreateEvent(IntPtr.Zero, True, False, Nothing)EventReq.Wnd = IntPtr.ZeroEventReq.Msg = 0EventReq.CallBackProc = IntPtr.ZeroEventReq.User = IntPtr.ZeroRet = IFCCPMGR.CmSetEvent(EventReq)シグナルイベントを 登 録 します。© 2011 Interface Corporation. All rights reserved.30


Help for Windows10. CmKillEvent【 機 能 】登 録 している 割 りこみイベントを 解 除 します。【 書 式 】●C 言 語UINT CmKillEvent(void);●Visual BasicDeclare Function CmKillEvent Lib "ifcpmgr.dll"() As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmKillEvent();●Visual Basic .NETDeclare Function CmKillEvent Lib "ifcpmgr.dll"() As Integer【パラメータ】なし【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_NOT_YET C0000004h まだ 動 作 していないIFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。© 2011 Interface Corporation. All rights reserved.31


Help for Windows【 使 用 例 】●C 言 語UINT Ret;Ret = CmKillEvent();●Visual BasicDim Ret As LongRet = CmKillEvent()●Visual C# .NETuint Ret;Ret = IFCCPMGR.CmKillEvent();●Visual Basic .NETDim Ret As IntegerRet = IFCCPMGR.CmKillEvent()割 り 込 みイベントを 解 除 します。© 2011 Interface Corporation. All rights reserved.32


Help for Windows11. CmSetEventMask【 機 能 】割 りこみイベントマスクを 設 定 し、 各 イベントの 有 効 、 無 効 を 設 定 します。【 書 式 】●C 言 語UINT CmSetEventMask(UINT Mask);●Visual BasicDeclare Function CmSetEventMask Lib "ifcpmgr.dll"( _ByVal Mask As Long _)As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmSetEventMask(uint Mask);●Visual Basic .NETDeclare Function CmSetEventMask Lib "ifcpmgr.dll"(_ByVal Mask As Integer _)As Integer【パラメータ】Mask有 効 にするイベントを 下 記 の 値 で 指 定 します。0 を 指 定 すると、すべてのイベントが 無 効 になります。デフォルトは 0 です。複 数 の 値 を OR で 指 定 することが 可 能 です。識 別 子 値 意 味CM_EVENT_WDS 1h WDT 周 期 満 了 イベントを 有 効 にします。CM_EVENT_CPTHS 2h CPU 温 度 上 限 超 えイベントを 有 効 にします。CM_EVENT_CPTLS 4h CPU 温 度 下 限 超 えイベントを 有 効 にします。CM_EVENT_LCTHS 8h 基 板 温 度 上 限 超 えイベントを 有 効 にします。CM_EVENT_LCTLS 10h 基 板 温 度 下 限 超 えイベントを 有 効 にします。© 2011 Interface Corporation. All rights reserved.33


Help for Windows【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_INVALID_PARAMETER C0000002h 入 力 パラメータ 不 正IFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。【 備 考 】・1 つのアプリケーションにつき、1 つのイベントマスク 値 を 設 定 できます。( 異 なるアプリケーションでは、 異 なるイベントマスク 値 が 使 用 できます。)・ 複 数 のアプリケーションで 同 じイベントを 有 効 にしている 場 合 、イベント 要 因 が 満 たされると、どちらのアプリケーションにも 割 り 込 みイベントが 通 知 されます。【 使 用 例 】●C 言 語UINT Ret;Ret = CmSetEventMask(CM_EVENT_WDS | CM_EVENT_CPTHS);●Visual BasicDim Ret As LongRet = CmSetEventMask(CM_EVENT_WDS Or CM_EVENT_CPTHS)●Visual C# .NETuint Ret;Ret = IFCCPMGR.CmSetEventMask(IFCCPMGR.CM_EVENT_WDS | IFCCPMGR. CM_EVENT_CPTHS);●Visual Basic .NETDim Ret As IntegerRet = IFCCPMGR.CmSetEventMask(IFCCPMGR.CM_EVENT_WDS Or IFCCPMGR. CM_EVENT_CPTHS)WDT イベント、CPU 温 度 上 限 超 えイベントを 有 効 にします。© 2011 Interface Corporation. All rights reserved.34


Help for Windows12. CmGetEventMask【 機 能 】現 在 の 割 りこみイベントマスク 値 を 取 得 します。【 書 式 】●C 言 語UINT CmGetEventMask(UINT* pMask);●Visual BasicDeclare Function CmGetEventMask Lib "ifcpmgr.dll"( _ByRef pMask As Long _)As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmGetEventMask(out uint pMask);●Visual Basic .NETDeclare Function CmGetEventMask Lib "ifcpmgr.dll"(_ByRef pMask As Integer _)As Integer【パラメータ】pMaskイベントマスク 格 納 先 です。CmSetEventMaskで 設 定 した 値 が 取 得 できます。【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_NULL_POINTER C0000005h NULL ポインタ 検 出IFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。© 2011 Interface Corporation. All rights reserved.35


Help for Windows【 使 用 例 】●C 言 語UINT Ret;UINT Mask;Ret = CmGetEventMask(&Mask);●Visual BasicDim Ret As LongDim Mask As LongRet = CmGetEventMask(Mask)●Visual C# .NETuint Ret;uint Mask;Ret = IFCCPMGR.CmGetEventMask(out Mask);●Visual Basic .NETDim Ret As IntegerDim Mask As IntegerRet = IFCCPMGR.CmGetEventMask(Mask)現 在 のイベントマスク 値 を 取 得 します。© 2011 Interface Corporation. All rights reserved.36


Help for Windows13. CmGetEventFactor【 機 能 】割 り 込 みイベントの 発 生 要 因 を 取 得 します。【 書 式 】●C 言 語UINT CmGetEventFactor(UINT* pFactor);●Visual BasicDeclare Function CmGetEventFactor Lib "ifcpmgr.dll"( _ByRef pFactor As Long _)As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmGetEventFactor(out uint pFactor);●Visual Basic .NETDeclare Function CmGetEventFactor Lib "ifcpmgr.dll"(_ByRef pFactor As Integer _)As Integer【パラメータ】pFactorイベント 要 因 格 納 先 です。下 記 の 値 が 取 得 できます。 複 数 の 要 因 が 検 出 されることもあります。識 別 子 値 意 味CM_EVENT_WDS 1h WDT 周 期 満 了 イベントCM_EVENT_CPTHS 2h CPU 温 度 上 限 超 えイベントCM_EVENT_CPTLS 4h CPU 温 度 下 限 超 えイベントCM_EVENT_LCTHS 8h 基 板 温 度 上 限 超 えイベントCM_EVENT_LCTLS 10h 基 板 温 度 下 限 超 えイベント© 2011 Interface Corporation. All rights reserved.37


Help for Windows【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_NULL_POINTER C0000005h NULL ポインタ 検 出IFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。【 注 意 】割 り 込 みイベントが 通 知 された (シグナルイベントがシグナル 状 態 になった、メッセージが 通知 された、コールバック 関 数 が 呼 び 出 された) 後 に、 本 関 数 でイベント 発 生 要 因 を 取 得 してください。割 り 込 みイベント 通 知 後 に、 本 関 数 を 呼 び 出 さないと 次 の 割 り 込 みイベントは 通 知 されません。【 備 考 】・ 割 り 込 み 要 因 を 取 得 すると、 要 因 はクリアされます。( 本 関 数 を 呼 び 出 して 要 因 を 取 得 した 後 、 何 も 要 因 が 満 たされていない 状 態 で 再 度 本 関 数 を 呼び 出 すと、2 回 目 は 要 因 として 0 が 返 されます。)・ 割 り 込 み 要 因 を 取 得 する 前 に、 複 数 回 要 因 が 満 たされた 場 合 、1 回 にまとめられます。例 えば、CPU 温 度 上 限 超 えイベント 発 生 後 、 要 因 を 取 得 する 前 に、 再 度 CPU 温 度 が 上 限 を 超えた 場 合 、 本 関 数 を 実 行 すると CM_EVENT_CPTHS が 検 出 されますが、 再 度 本 関 数 を 実 行 しても、要 因 として 0 が 返 されます。また、この 場 合 、 割 り 込 みイベントも 1 回 しか 発 生 しません。( 本 関 数 で 要 因 取 得 後 に、 再 度 CPU 温 度 が 上 限 を 超 えると、 再 度 イベント 通 知 されます。)・イベント 要 因 は、アプリケーションごとに 独 立 しています。例 えば 2 つのアプリケーションで WDT イベントを 有 効 にし、 周 期 満 了 になって WDT イベントが 2 つのアプリケーションで 発 生 したとします。この 場 合 、 片 方 のアプリケーションで 要 因 を 取 得 しても、もう 片 方 の 要 因 はクリアされません。もし 片 方 のアプリケーションでしか 要 因 を 取 得 しなければ、 要 因 を 取 得 した 方 のアプリケーションでのみ、 次 回 も 割 り 込 みイベントが 通 知 されます。( 要 因 を 取 得 しなかった 方 のアプリケーションは 次 回 の 割 り 込 みイベントは 通 知 されません。)両 方 のアプリケーションで 要 因 を 取 得 すると、どちらのアプリケーションにも CM_EVENT_WDSが 検 出 され、どちらのアプリケーションも 次 回 の 割 り 込 みイベントが 通 知 されます。© 2011 Interface Corporation. All rights reserved.38


Help for Windows【 使 用 例 】●C 言 語LRESULT CEventDlg::OnMessage(WPARAM wParam, LPARAM lParam){UINT Ret;UINT Factor;}Ret = CmGetEventFactor(&Factor);…●Visual BasicPublic Sub OnMessage()Dim Ret As LongDim Factor As LongRet = CmGetEventFactor(Factor)…End Sub●Visual C# .NETprivate void OnMessage(IntPtr WParam, IntPtr LParam){uint Ret;uint Factor;}Ret = IFCCPMGR.CmGetEventFactor(out Factor);…●Visual Basic .NETPublic Sub OnMessage(ByVal WParam As IntPtr, ByVal LParam As IntPtr)Dim Ret As IntegerDim Factor As IntegerRet = IFCCPMGR.CmGetEventFactor(Factor)…End Subメッセージハンドラ 内 でイベント 要 因 を 取 得 します。© 2011 Interface Corporation. All rights reserved.39


Help for Windows14. CmGetSpecifiedStatus【 機 能 】現 在 のステータスを 指 定 したビット 分 だけ 取 得 します。【 書 式 】●C 言 語UINT CmGetSpecifiedStatus(UINT* pStatus);●Visual BasicDeclare Function CmGetSpecifiedStatus Lib "ifcpmgr.dll"( _ByRef pStatus As Long _)As Long●Visual C# .NET[DllImport("ifcpmgr.dll")]public static extern uint CmGetSpecifiedStatus(ref uint pStatus);●Visual Basic .NETDeclare Function CmGetSpecifiedStatus Lib "ifcpmgr.dll"(_ByRef pStatus As Integer _)As Integer【パラメータ】pStatusあらかじめ 取 得 したいステータスビットを 1 にして 渡 します。 予 約 ビットには 0 を 指 定 して 下 さい。関 数 が 正 常 終 了 すると、あらかじめ 1 にしておいたビット 位 置 のステータスが 返 されます。それ 以 外 のビットは 0 が 返 ります。bit31~bit12 bit11 bit10 bit9 bit8 Bit7~bit0予 約 FAN2 FAN 予 約 WDTE 予 約WDTE : WDT の 動 作 状 態 を 取 得 できます。0 が WDT 有 効 、1 が WDT 無 効 です。FAN : 現 在 の CPU_FAN の 稼 動 状 態 が 取 得 できます。0がFAN 停 止 、1 が FAN 稼 動 中 です。FAN2 : 現 在 の SYS_FAN の 稼 動 状 態 が 取 得 できます。0がFAN 停 止 、1 が FAN 稼 動 中 です。© 2011 Interface Corporation. All rights reserved.40


Help for Windows【 戻 り 値 】本 関 数 実 行 時 には 下 記 の 戻 り 値 が 返 ります。識 別 子 値 内 容IFCM_ERROR_SUCCESS 0 正 常 終 了IFCM_ERROR_INTERNAL C0000001h 内 部 エラーIFCM_ERROR_NULL_POINTER C0000005h NULL ポインタ 検 出IFCM_ERROR_INVALID_HANDLE C0000007h 内 部 エラーIFCM_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.5 戻 り 値 一 覧 』をご 参 照 ください。【 使 用 例 】●C 言 語UINT Ret;UINT Status;Status = 0x00000100;Ret = CmGetSpecifiedStatus(&Status);●Visual BasicDim Ret As LongDim Status As LongStatus = &H100Ret = CmGetSpecifiedStatus(Status)●Visual C# .NETuint Ret;uint Status;Status = 0x00000100;Ret = IFCCPMGR.CmGetSpecifiedStatus(ref Status);●Visual Basic .NETDim Ret As IntegerDim Status As IntegerStatus = &H100Ret = IFCCPMGR.CmGetSpecifiedStatus(Status)現 在 の WDT 状 態 を 取 得 します。© 2011 Interface Corporation. All rights reserved.41


Help for Windows4.3 コールバック 関 数コールバック 関 数 は C 言 語 でのみ 使 用 可 能 です。【 書 式 】●C 言 語void CALLBACK UserCallBack(PVOID User);【パラメータ】Userユーザパラメータです。CM_EVENT_REQ 構 造 体 のUserメンバで 指 定 した 値 が 渡 されます。『4.4.1 CM_EVENT_REQ』をご 参 照 ください。【 使 用 例 】『3.3.3 割 り 込 みイベント』をご 参 照 ください。© 2011 Interface Corporation. All rights reserved.42


Help for Windows4.4 構 造 体 説 明4.4.1 CM_EVENT_REQ割 り 込 みイベント 登 録 用 の 構 造 体 です。●C 言 語typedef struct _CM_EVENT_REQ{HANDLE Signal;HWNDWnd;UINTMsg;LPCMCALLBACK CallBackProc;PVOID User;} CM_EVENT_REQ, *PCM_EVENT_REQ;●Visual BasicType CM_EVENT_REQSignal As LongWndAs LongMsgAs LongCallBackProc As LongUserAs LongEnd Type●Visual C# .NET[StructLayout(LayoutKind.Sequential)]public struct CM_EVENT_REQ{public IntPtr Signal;putlic IntPtr Wnd;public int Msg;public IntPtr CallBackProc;putlib IntPtr User;}●Visual Basic .NETStructure CM_EVENT_REQDim Signal As IntPtrDim Wnd As IntPtrDim Msg As IntegerDim CallBackProc As IntPtrDim User As IntPtrEnd Structure© 2011 Interface Corporation. All rights reserved.43


Help for WindowsメンバSignalWndMsgCallBackProcUser説 明割 り 込 みイベント 通 知 時 にシグナル 状 態 となるイベントオブジェクトのハンドルを 指 定 します。イベントオブジェクトを 使 用 しない 場 合 には、C 言 語 では NULL、Visual Basicでは 0、Visual C# .NET と Visual Basic .NET では IntPtr.Zero を 指 定 してください。割 り 込 みイベント 通 知 時 に Msg メンバで 指 定 したメッセージのポスト 先 ウィンドウハンドルを 指 定 します。メッセージポストを 行 わない 場 合 は、C 言 語 では NULL、Visual Basic では 0、Visual C# .NET と Visual Basic .NET では IntPtr.Zero を 指 定 してください。割 り 込 みイベント 通 知 時 に 送 出 するメッセージコードを 指 定 します。メッセージポストを 行 わない 場 合 は、C 言 語 では WM_NULL、Visual Basic、Visual C# .NET、Visual Basic .NET では 0 を 指 定 してください。割 り 込 みイベント 通 知 時 に 呼 び 出 されるコールバック 関 数 へのポインタを 指定 します。コールバック 関 数 は C 言 語 でのみ 使 用 できます。Visual Basic では 0、VisualC# .NET と Visual Basic .NET では IntPtr.Zero を 指 定 してください。C 言 語 でコールバック 関 数 を 使 用 しない 場 合 は NULL を 指 定 してください。コールバック 関 数 に 渡 すユーザデータを 指 定 します。ここで 指 定 したデータが、コールバック 関 数 の 第 1 引 数 として 渡 されます。Visual Basic では 0、Visual C# .NET と Visual Basic .NET では IntPtr.Zeroを 指 定 してください。© 2011 Interface Corporation. All rights reserved.44


Help for Windows4.5 戻 り 値 一 覧エラー 識 別 子 値 意 味 対 処 方 法IFCM_ERROR_SUCCESS 0 正 常 終 了 -IFCM_ERROR_INTERNALC0000001h(-1073741823)内 部 エラーハードウェア 制 御 中 の 内 部 エラーです。どのような 状 況 でエラーが 発 生 したかをご 連 絡 ください。IFCM_ERROR_INVALID_PARAMETER C0000002h(-1073741822)入 力 パラメータが 不 正 設 定 可 能 範 囲 をご 確 認 の 上 、パラメータを 設 定 してください。IFCM_ERROR_ALREADYIFCM_ERROR_NOT_YETIFCM_ERROR_NULL_POINTERIFCM_ERROR_NOT_ALLOCATEIFCM_ERROR_INVALID_HANDLEC0000003h(-1073741821)C0000004h(-1073741820)C0000005h(-1073741819)C0000006h(-1073741818)C0000007h(-1073741817)・ 既 に WDT が 動 作 している・ 既 にイベントが 登 録 されている・ まだ WDT が 動 作 していない・ まだイベントが 登 録 されていないNULL ポインタ 検 出メモリ 確 保 失 敗内 部 エラー・ WDT 停 止 中 に 実 行 してください。・ イベントが 登 録 されていない 状 態 で実 行 してください。・ WDT 動 作 中 に 実 行 してください。・ イベントが 登 録 されている 状 態 で 実行 してください。引 数 に NULL が 渡 されています。有 効 な 変 数 を 指 定 してください。メモリの 使 用 を 抑 えてください。DLL 初 期 化 時 の 内 部 エラーです。デバイスマネージャで IFCPMGR が 正 常に 動 作 していることをご 確 認 ください。© 2011 Interface Corporation. All rights reserved.45


Help for Windows第 5 章 サンプルプログラム5.1 実 行 方 法サンプルプログラムには 実 行 形 式 のファイルが 付 属 しています。各 実 行 ファイル(*.exe)をダブルクリックして 実 行 して 下 さい。※Visual C# .NET、Visual Basic .NET のサンプルプログラムを 使 用 するには、.NET Framework 1.1以 降 (Visual C++ .NET 用 の event_clr のみ 2.0 以 降 )が 必 要 になります。5.2 コンパイル 方 法●Visual C++ 6.0 の 場 合Visual C++(Visual Studio)を 起 動 し、「ファイル」メニューから「ワークスペースを 開 く」を 選 び、ファイルの 種 類 で「プロジェクト(dsp)」を 選 んだ 後 、 各 サンプルプログラムのプロジェクトファイル「*.dsp」を 開 き、ビルドしてください。●Visual C++ .NET の 場 合Visual Studio を 起 動 し、「ファイル」メニューから「 開 く」→「プロジェクト」を 選 び、プロジェクトファイル「*.vcproj」を 開 き、ビルドしてください。●Visual Basic の 場 合Visual Basic を 起 動 し、 各 サンプルプログラムのプロジェクトファイル「*.vbp」を 開 き、ビルドしてください。●Visual C# .NET の 場 合Visual Studioを 起 動 し、「ファイル」メニューから「 開 く」→「プロジェクト」を 選 び、 各 サンプルプログラムのプロジェクトファイル「*.csproj」 ※1 を 開 き、ビルドしてください。●Visual Basic .NET の 場 合Visual Studioを 起 動 し、「ファイル」メニューから「 開 く」→「プロジェクト」を 選 び、プロジェクトファイル「*.vbproj」 ※1 を 開 き、ビルドしてください。※1 クラスライブラリもビルドされます。© 2011 Interface Corporation. All rights reserved.46


Help for Windows5.3 サンプルプログラム 一 覧サンプルプログラム 名wdttemperatureevent概 要WDT の 周 期 を 5 秒 、アクションを CPU リセットに 設 定 し、3 秒 ごとに WDTクリアを 行 うサンプルプログラムです。5 回 クリアすると 終 了 します。3 秒 ごとに CPU 温 度 と 基 板 温 度 を 取 得 し、 表 示 するサンプルプログラムです。5 回 表 示 すると 終 了 します。WDT 周 期 満 了 イベントを、シグナルイベント、コールバック 関 数 (Visual C++のみ)、メッセージで 通 知 します。「Initialize WDT」ボタンで WDT 周 期 を 3 秒 に、アクションを 割 り 込 みイベントに 設 定 します。「Signal」ボタンで、シグナルイベントを 登 録 します。「Callback」ボタンで、コールバック 関 数 を 登 録 します。「Message」ボタンでメッセージハンドラを 登 録 します。それぞれの 方 法 で、WDT 周 期 満 了 が 通 知 されます。「Kill Event」ボタンでイベントを 解 除 などの 後 処 理 を 行 います。※Visual C++では MFC(event_mfc)と CLR(event_clr)のサンプルを 用 意しています。CLR は Visual C++ 2005 以 降 でご 利 用 下 さい。© 2011 Interface Corporation. All rights reserved.47


Help for Windows第 6 章 重 要 な 情 報保 証 の 内 容 と 制 限弊 社 は 本 ドキュメントに 含 まれるソースプログラムの 実 行 が 中 断 しないこと、またはその 実 行 に誤 りが 無 いことを 保 証 していません。本 製 品 の 品 質 や 使 用 に 起 因 する、 性 能 に 起 因 するいかなるリスクも 使 用 者 が 負 うものとします。弊 社 はドキュメント 内 の 情 報 の 正 確 さに 万 全 を 期 しています。 万 一 、 誤 記 または 誤 植 などがあった 場 合 、 弊 社 は 予 告 無 く 改 訂 する 場 合 があります。ドキュメントまたはドキュメント 内 の 情 報 に起 因 するいかなる 損 害 に 対 しても 弊 社 は 責 任 を 負 いません。ドキュメント 内 の 図 や 表 は 説 明 のためであり、ユーザ 個 別 の 応 用 事 例 により 変 化 する 場 合 があります。著 作 権 、 知 的 所 有 権弊 社 は 本 製 品 に 含 まれるおよび 本 製 品 に 対 する 権 利 や 知 的 所 有 権 を 保 持 しています。本 製 品 はコンピュータ ソフトウェア、 映 像 / 音 声 ( 例 えば 図 、 文 章 、 写 真 など)を 含 んでいます。医 療 機 器 / 器 具 への 適 用 における 注 意弊 社 の 製 品 は 人 命 に 関 わるような 状 況 下 で 使 用 される 機 器 に 用 いられる 事 を 目 的 として 設 計 、 製造 された 物 では 有 りません。弊 社 の 製 品 は 人 体 の 検 査 などに 使 用 するに 適 する 信 頼 性 を 確 保 する 事 を 意 図 された 部 品 や 検 査 機器 と 共 に 設 計 された 物 では 有 りません。医 療 機 器 、 治 療 器 具 などの 本 製 品 の 適 用 により、 製 品 の 故 障 、ユーザ、 設 計 者 の 過 失 などにより、損 傷 / 損 害 を 引 き 起 こす 場 合 が 有 ります。複 製 の 禁 止弊 社 の 許 可 なく、 本 ドキュメントの 全 て、または 一 部 に 関 わらず、 複 製 、 改 変 などを 行 うことはできません。責 任 の 制 限弊 社 は、 弊 社 または 再 販 売 者 の 予 見 の 有 無 にかかわらず 発 生 したいかなる 特 別 損 害 、 偶 発 的 損 害 、間 接 的 な 損 害 、 重 大 な 損 害 について、 責 任 を 負 いません。本 製 品 (ハードウェア,ソフトウェア)のシステム 組 み 込 み、 使 用 、ならびに 本 製 品 から 得 られる結 果 に 関 する 一 切 のリスクについては、 本 製 品 の 使 用 者 に 帰 属 するものとします。本 製 品 に 含 まれるバグ、あるいは 本 製 品 の 供 給 ( 納 期 遅 延 )、 性 能 もしくは 使 用 に 起 因 する 付 帯 的損 害 もしくは 間 接 的 損 害 に 対 して、 弊 社 に 全 面 的 に 責 がある 場 合 でも、 弊 社 はその 製 品 に 対 する改 良 ( 正 常 に 動 作 する)、 代 品 交 換 までとし、 金 銭 面 での 賠 償 の 責 任 は 負 わないものとしますので、予 めご 了 承 ください。本 製 品 (ソフトウェアを 含 む)は、 日 本 国 内 仕 様 です。 本 製 品 を 日 本 国 外 で 使 用 された 場 合 、 弊社 は 一 切 責 任 を 負 いかねます。また、 弊 社 は 本 製 品 に 関 し、 海 外 での 保 守 サービスおよび 技 術 サポート 等 は 行 っておりません。© 2011 Interface Corporation. All rights reserved.48


Help for Windows商 標 / 登 録 商 標本 書 に 掲 載 されている 会 社 名 、 製 品 名 は、それぞれ 各 社 の 商 標 または 登 録 商 標 です。© 2011 Interface Corporation. All rights reserved.49

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!