• 検索結果がありません。

FBWFMemoryWatcher

N/A
N/A
Protected

Academic year: 2021

シェア "FBWFMemoryWatcher"

Copied!
23
0
0

読み込み中.... (全文を見る)

全文

(1)

IFFBWFMEMORYWATCHER.WIN

FBWF Memory Watcher

Classembly Devices®用 Windows ドライバソフトウェア

(2)

目 次

第 1 章 はじめに

3

1.1 概要 ...3 1.2 特長 ...3

第 2 章 製品仕様

4

2.1 基本仕様 ...4 2.2 製品構成 ...4

第 3 章 導入方法

5

3.1 クラスライブラリの参照方法 ...5 3.2 実行手順 ...6

第 4 章 リファレンス

8

4.1 関数一覧 ...8 4.2 関数個別説明 ...9 4.3 コールバック関数 ...14 4.4 構造体説明 ...15 4.5 戻り値一覧 ...17

第 5 章 サンプルプログラム

18

5.1 MemWatchCall ...18 5.2 MemWatchMsg ...19

第 6 章 FBWF メモリ監視ユーティリティ

20

6.1 使用方法 ...20 6.2 コマンド ...20 6.3 設定ダイアログ ...21

第 7 章 重要な情報

22

(3)

第1章 はじめに

1.1 概要

FBWF Memory Watcher は、Windows 上のアプリケーションから、弊社 Classembly Devices®の FBWF メモリを監視する為のソフトウェアです。 本製品を Windows 上のアプリケーションから DLL をダイナミックリンクし、API をコールするこ とにより監視します。 また、付属のユーティリティでは、FBWF の使用メモリの閾値設定や監視を GUI で行うアプリケー ションです。 本ドキュメントは、Windows 上で本製品を使用するための情報を掲載しています。

1.2 特長

●FBWF メモリの空き容量を監視することで、システムの安定性を確保できます。 ●あらかじめ設定しておいた FBWF メモリの空き容量を下回った場合に割り込みイベントを通知 できます。 ●FBWF メモリの空き容量を GUI ユーティリティで確認することができ、閾値を超えた際にバルー ン表示することができます。

(4)

第2章 製品仕様

2.1 基本仕様

FBWF メモリ監視 FBWF メモリの空き容量取得 割り込みイベント FBWF メモリの空き容量下限超え検出 機能 FBWF メモリ監視ユー ティリティ FBWF メモリ確保値表示 FBWF 使用メモリ量表示 設定した閾値を超えた場合警告を画面上に表示可能

2.2 製品構成

製品構成 ファイル名 説明 最新情報ドキュメント README.HTM 最新ドキュメント掲載ファイル インストールプログラム SETUP.EXE インストール用ファイル ユーティリティ IFFBWFMEMORYWA TCHER.EXE FBWF メモリ監視ユーティリティ MemWatchCall FBWF メモリ監視サンプルプログラム (コールバック) MemWatchMsg FBWF メモリ監視サンプルプログラム (ウィンドウメッセージ) サンプルプログラム IFCFBWFMEMORY WATCHER

Visual C# .NET、Visual Basic .NET 用 クラスライブラリソース IFFBWFMEMORYWA TCHER.DLL ダイナミックリンクライブラリファイル IFFBWFMEMORYWA TCHER.LIB インポートライブラリファイル IFCFBWFCTRL.DL L DLL IFFBWFMEMORYWA TCHER.RESOURCE S.DLL ユーティリティ用ダイナミックリンクライブラ リファイル INI FBWFCONF.INI ユーティリティ用設定ファイル IFFBWFMEMORYWA Visual C++用ヘッダファイル ヘッダファイル

(5)

第3章 導入方法

3.1 クラスライブラリの参照方法

本製品は、クラスライブラリのソースファイルを用意しています。

Visual C# .NET、および Visual Basic .NET をご利用の際は、ソースコードをビルドしてクラス ライブラリを生成し、参照することで、DLL 関数の定義を容易にすることができます。 (DLL 関数の呼び出しをカスタマイズしたい場合は、クラスライブラリのソースを参照してくだ さい) 1.クラスライブラリの作成方法 .NET において DLL 関数を呼び出すには、まずクラスライブラリを用意する必要があります。 Visual C# .NET の場合 Visual Studio を起動し、下記のプロジェクトファイルを開きます。 < イ ン ス ト ー ル 先 >\interface\IFFBWFMEMORYWATCHER\samples\CS_NET\IFCFBWFMEMORYWATCHER \IFCFBWFMEMORYWATCHER.csproj このプロジェクトをビルドすると、bin フォルダにクラスライブラリ IFCFBWFMEMORYWATCHER.dl l が作成されます。

Visual Basic .NET の場合

Visual Studio を起動し、下記のプロジェクトファイルを開きます。

<インストール先>\interface\IFCFBWFMEMORYWATCHER\samples\VB_NET\IFCFBWFMEMORYWATCHER \IFCFBWFMEMORYWATCHER.vbproj

このプロジェクトをビルドすると、bin フォルダにクラスライブラリ IFCFBWFMEMORYWATCHER.dl l が作成されます。

(6)

2.クラスライブラリの参照

Visual C# .NET, Visual Basic .NET の場合

Visual Studio のメニューの「プロジェクト」の「参照の追加」を選択してください。 「参照」ボタンをクリックして参照したいクラスライブラリ DLL を指定します。 例) <インストール先>\interface\IFCFBWFMEMORYWATCHER\samples\CS_NET\IFCFBWFMEMORYWATCHER \bin\Release\IFCFBWFMEMORYWATCHER.dll < イ ン ス ト ー ル 先 >\interface\IFCPMGR\samples\VB_NET\IFCFBWFMEMORYWATCHER\bin \Relaase\IFCFBWFMEMORYWATCHER.dll 「選択されたコンポーネント」に指定した DLL が表示されます。 「OK」ボタンをクリックすると設定は完了です。 各言語毎に下記のように、ソースファイルのヘッダで InterfaceCorpDllWrap の名前空間を追 加すれば DLL 関数を次章の「使用例」の方法で呼び出すことができるようになります。 Visual C# .NET の場合 using InterfaceCorpDllWrap; Visual Basic .NET の場合 Imports InterfaceCorpDllWrap

3.2 実行手順

基本的な制御の手順は以下の通りです(記述例は C 言語です)。 3.2.1 FBWF メモリ監視 FBWF メモリの空き容量を取得できます。 MwGetStatusを使用します。 UINT Ret; UINT Status; // FBWF メモリの空き容量の取得 Ret = MwGetStatus(&Status); FBWFメモリの空き容量が下限値を下回った際に割り込みイベントを通知することができます。詳 細は『3.2.2 割り込みイベント』をご参照ください。

(7)

3.2.2 割り込みイベント 割り込みイベント(メッセージ、コールバック関数等)を登録した後、FBWF メモリの空き容量が 下限値を下回れば、割り込みイベントが通知されます。 割り込みイベントの登録はMwSetEventで行います。 イベント発生時にコールバック関数が呼び出される設定例を下記に示します。 // コールバック関数

void CALLBACK UserCallback(PVOID User) { UINT Ret; UINT Status; // FBWF メモリの空き容量取得 Ret = MwGetStatus(&Status); // イベントごとの処理 … } int main(void) { UINT Ret; MW_EVENT_REQ EventReq; // イベント登録 ZeroMemory(&EventReq, sizeof(MW_EVENT_REQ)); EventReq.CallBackProc = (LPMWCALLBACK)UserCallback; Ret = MwSetEvent(100, &EventReq);

… } 割り込みイベントの使用終了時は、MwSetEventのpEventにNULLを指定し、割り込みイベントを解 除してください。 UINT Ret; // 割り込みの解除

Ret = MwSetEvent(0, NULL);

(8)

第4章 リファレンス

4.1 関数一覧

No 関数名 機能 ●FBWF メモリ監視 1 MwGetStatus FBWF メモリの空き容量を取得します。 ●割り込み設定 2 MwSetEvent 割り込みイベントを登録します。

(9)

4.2 関数個別説明

1. MwGetStatus

【機能】 FBWF メモリの空き容量を取得します。 【書式】 ●C 言語 UINT MwGetStatus( UINT* pStatus ); ●Visual Basic

Declare Function MwGetStatus Lib "iffbwfmemorywatcher.dll"( _ ByRef pStatus As Long _

)As Long

●Visual C# .NET

[DllImport("iffbwfmemorywatcher.dll")] public static extern uint MwGetStatus( out uint pStatus

);

●Visual Basic .NET

Declare Function MwGetStatus Lib "iffbwfmemorywatcher.dll"(_ ByRef pStatus As Integer _

)As Integer 【パラメータ】 pStatus FBWF メモリの空き容量(MB 単位)格納先です。 【戻り値】 本関数実行時には下記の戻り値が返ります。 識別子 値 内容 IFMW_ERROR_SUCCESS 0 正常終了 IFMW_ERROR_NULL_POINTER C0000005h NULL ポインタ検出 IFMW_ERROR_INVALID_HANDLE C0000007h 内部エラー IFMW_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。

(10)

【使用例】 ●C 言語 UINT Ret; UINT Status; Ret = MwGetStatus(&Status); ●Visual Basic

Dim Ret As Long Dim Status As Long Ret = MwGetStatus(Status) ●Visual C# .NET

uint Ret; uint Status;

Ret = IFCFBWFMEMORYWATCHER.MwGetStatus(out Status); ●Visual Basic .NET

Dim Ret As Integer Dim Status As Integer

Ret = IFCFBWFMEMORYWATCHER.MwGetStatus(Status) 現在の FBWF メモリの空き容量を取得します。

(11)

2. MwSetEvent

【機能】 FBWF メモリの空き容量が指定の値を下回った際の割り込みイベント(ウィンドウメッセージ、 コールバック関数)を登録/削除します。 【書式】 ●C 言語 UINT MwSetEvent( UINT Threshold, PMW_EVENT_REQ pEvent ); ●Visual Basic 登録

Declare Function MwSetEvent Lib "iffbwfmemorywatcher.dll"( _ ByVal Threshold As Long, _

ByRef pEvent As MW_EVENT_REQ _ )As Long

削除

Declare Function MwKillEvent Lib "iffbwfmemorywatcher.dll" _ Alias "MwSetEvent"( _

ByVal Threshold As Long, _ ByVal pEvent As Long _ )As Long

●Visual C# .NET 登録

[DllImport("iffbwfmemorywatcher.dll")] public static extern uint MwSetEvent( uint Threshold, ref MW_EVENT_REQ pEvent );

削除

[DllImport("iffbwfmemorywatcher.dll")] public static extern uint MwSetEvent( uint Threshold, IntPtr pEvent );

(12)

●Visual Basic .NET 登録

Declare Function MwSetEvent Lib "iffbwfmemorywatcher.dll"(_ ByVal Threshold As Integer, _

ByRef pEvent As MW_EVENT_REQ _ )As Integer

削除

Declare Function MwSetEvent Lib "iffbwfmemorywatcher.dll"(_ ByVal Threshold As Integer, _

ByVal pEvent As IntPtr _ )As Integer 【パラメータ】 Threshold 割り込みイベントを発生させる FBWF メモリの空き容量(MB 単位)を指定します。 設定可能範囲は 1~1023 です。 現在の FBWF メモリの空き容量がこの値より大きい状態から、この値以下へ変化した際に、 割り込みイベントを発生させます。 pEvent イベント登録用構造体を指定します。 詳細は『4.4.1 MW_EVENT_REQ』をご参照ください。

登録済みのイベントを削除する場合、C 言語では NULL、Visual C# .NET と Visual Basic .NET では IntPtr.Zero を指定してください。

Visual Basic で登録済みのイベントを削除する場合は、MwKillEvent 関数を使用し、0 を指 定してください。 【戻り値】 本関数実行時には下記の戻り値が返ります。 識別子 値 内容 IFMW_ERROR_SUCCESS 0 正常終了 IFMW_ERROR_INVALID_PARAMETER C0000002h 入力パラメータ不正 IFMW_ERROR_ALREADY C0000003h 既にイベント登録済み IFMW_ERROR_NOT_YET C0000004h まだイベント登録していない IFMW_ERROR_NOT_ALLOCATE C0000006h メモリ確保失敗 IFMW_ERROR_INVALID_HANDLE C0000007h 内部エラー

(13)

コールバック関数は C 言語でのみ使用できます。 その他の言語では、ウィンドウメッセージを使用してください。 【使用例】 ●C 言語 UINT Ret; MW_EVENT_REQ EventReq; EventReq.Wnd = this->m_hWnd; EventReq.Msg = WM_USER + 1000; EventReq.CallBackProc = NULL; EventReq.User = NULL;

Ret = MwSetEvent(100, &EventReq); ●Visual Basic

Dim Ret As Long

Dim EventReq As MW_EVENT_REQ EventReq.Wnd = Form1.hWnd EventReq.Msg = &H400 + 1000 EventReq.CallBackProc = 0 EventReq.User = 0

Ret = MwSetEvent(100, EventReq) ●Visual C# .NET

uint Ret;

IFCFBWFMEMORYWATCHER.MW_EVENT_REQ EventReq = new IFCFBWFMEMORYWATCHER.MW_EVENT_REQ(); EventReq.Wnd = this.Handle;

EventReq.Msg = 0x400 + 1000;

EventReq.CallBackProc = IntPtr.Zero; EventReq.User = IntPtr.Zero;

Ret = IFCFBWFMEMORYWATCHER.MwSetEvent(100, ref EventReq); ●Visual Basic .NET

Dim Ret As Integer

Dim EventReq As IFCFBWFMEMORYWATCHER.MW_EVENT_REQ _ = New IFCFBWFMEMORYWATCHER.MW_EVENT_REQ

EventReq.Wnd = Me.Handle EventReq.Msg = &H400 + 1000

(14)

4.3 コールバック関数

コールバック関数は C 言語でのみ使用できます。 【書式】

●C 言語

void CALLBACK UserCallBack( PVOID User ); 【パラメータ】 User ユーザパラメータです。 MW_EVENT_REQ構造体のUserメンバで指定した値が渡されます。 『4.4.1 MW_EVENT_REQ』をご参照ください。 【使用例】 『3.2.2 割り込みイベント』をご参照ください。

(15)

4.4 構造体説明

4.4.1 MW_EVENT_REQ

割り込みイベント登録用の構造体です。 ●C 言語

typedef struct _MW_EVENT_REQ{ HWND Wnd; UINT Msg; LPMWCALLBACK CallBackProc; PVOID User; } MW_EVENT_REQ, *PMW_EVENT_REQ; ●Visual Basic Type MW_EVENT_REQ Wnd As Long Msg As Long CallBackProc As Long User As Long End Type ●Visual C# .NET [StructLayout(LayoutKind.Sequential)] public struct MW_EVENT_REQ

{

putlic IntPtr Wnd;

public int Msg;

public IFCFBWFMEMORYWATCHER.LPMWCALLBACK CallBackProc;

putlib IntPtr User;

}

●Visual Basic .NET

<StructLayout(LayoutKind.Sequential)> Structure MW_EVENT_REQ

Dim Wnd As IntPtr Dim Msg As Integer

Dim CallBackProc As IFCFBWFMEMORYWATCHER.LPMWCALLBACK Dim User As IntPtr

(16)

メンバ 説明

Wnd 割り込みイベント通知時に Msg メンバで指定したメッセージのポスト先ウィ ンドウハンドルを指定します。

メッセージポストを行わない場合は、C 言語では NULL、Visual Basic では 0、 Visual C# .NET と Visual Basic .NET では IntPtr.Zero を指定してください。

Msg 割り込みイベント通知時に送出するメッセージコードを指定します。

ここで指定したメッセージコードは、メッセージの WPARAM へ渡されます。 メッセージポストを行わない場合は、C 言語では WM_NULL、Visual Basic、 Visual C# .NET、Visual Basic .NET では 0 を指定してください。

CallBackProc 割り込みイベント通知時に呼び出されるコールバック関数へのポインタを指 定します。

コールバック関数は C 言語でのみ使用できます。Visual Basic では 0、Visual C# .NET と Visual Basic .NET では IntPtr.Zero を指定してください。 C 言語でコールバック関数を使用しない場合は NULL を指定してください。 User コールバック関数に渡すユーザデータを指定します。

ここで指定したデータは、メッセージの LPARAM、コールバック関数の第 1 引 数へ渡されます。

Visual Basic では 0、Visual C# .NET と Visual Basic .NET では IntPtr.Zero を指定してください。

(17)

4.5 戻り値一覧

エラー識別子 値 意味 対処方法 IFMW_ERROR_SUCCESS 0 正常終了 - IFMW_ERROR_INVALID_PARAMETER C0000002h (-1073741822) 入力パラメータが不正 設定可能範囲をご確認の上、パラメー タを設定してください。 IFMW_ERROR_ALREADY C0000003h (-1073741821) 既にイベントが登録され ている イベントが登録されていない状態で 実行してください。 IFMW_ERROR_NOT_YET C0000004h (-1073741820) まだイベントが登録され ていない イベントが登録されている状態で実 行してください。 IFMW_ERROR_NULL_POINTER C0000005h (-1073741819) NULL ポインタ検出 引数に NULL が渡されています。 有効な変数を指定してください。 IFMW_ERROR_NOT_ALLOCATE C0000006h (-1073741818) メモリ確保失敗 メモリの使用を抑えてください。 IFMW_ERROR_INVALID_HANDLE C0000007h (-1073741817) 内部エラー DLL 初期化時の内部エラーです。 アプリケーションを再起動してくだ さい。

(18)

第5章 サンプルプログラム

以下、各サンプルプログラムの概要を説明します。

5.1 MemWatchCall

【概要】 MemWatchCall は割り込みイベントを発生させるサンプルプログラムです。 割り込みイベントを発生させる任意の FBWF メモリの空き容量を設定し、下回った場合には割り 込みイベント(コールバック関数)が発生します。 また、FBWF メモリの空き容量を 1S 周期で表示します。 【実行手順】 サンプルプログラムには実行形式のファイルが付属していません。 ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。 ●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」 を選び、メイクファイル「MemWatchCall.mak」を開き、ビルドしてください。 ●Visual C#.NET の場合 Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選びプロジ ェクトファイル「MemWatchCall.csproj」を開き、ビルドしてください。 ●Visual Basic.NET の場合 Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選びプロジ ェクトファイル「MemWatchCall.vbproj」を開き、ビルドしてください。

(19)

5.2 MemWatchMsg

【概要】 MemWatchMsg は割り込みイベントを発生させるサンプルプログラムです。 割り込みイベントを発生させる任意の FBWF メモリの空き容量を設定し、下回った場合には割り 込みイベント(ウィンドウメッセージ)が発生します。 また、FBWF メモリの空き容量を 1S 周期で表示します。 【実行手順】 サンプルプログラムには実行形式のファイルが付属していません。 ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。 ●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」 を選び、メイクファイル「MemWatchMsg.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「MemWatchMsg.vbp」を開き、ビルドしてくだ さい。 ●Visual C#.NET の場合 Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選びプロジ ェクトファイル「MemWatchMsg.csproj」を開き、ビルドしてください。 ●Visual Basic.NET の場合 Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選びプロジ ェクトファイル「MemWatchMsg.vbproj」を開き、ビルドしてください。

(20)

第6章 FBWF メモリ監視ユーティリティ

FBWF メモリ監視ユーティリティを使用することで、下記が可能になります。 ・FBWF メモリの設定値確認 ・FBWF メモリ使用量の閾値設定

6.1 使用方法

本ユーティリティは、OS 起動時に自動的に起動します。 ユーティリティが起動しているかどうかはタスクトレイをご確認ください。 ユーティリティが起動している場合、下記のアイコンが表示されます。

6.2 コマンド

Interface FBWF Memory Watcher のアイコンを右クリックすると、下記のようなコマンドウィンドウ が起動します。

各コマンドの内容は下記の通りです。

コマンド 内容

Open 後述の設定ダイアログボックスを開き、各種設定を行います。 Exit Interface FBWF Memory Watcher を終了します。

(21)

6.3 設定ダイアログ

Open コマンドを選択すると、下記の設定ダイアログが表示されます。 各表示の内容は下記の通りです。 表示 内容 FBWF Memory 使用量 現在 FBWF で使用しているメモリ量です。 FBWF RAM FBWF で使用できるメモリの総量です。 FBWF Threshold FBWF 使用メモリ容量の閾値です。 ここで指定した閾値を、FBWF 使用メモリ容量が上回ると、警告の バルーンが表示されます。 チェックの有無で、Threshold の有無を決定します。有りの状態 の時、Threshold が設定できます。 設定範囲は 10-340MB の範囲で、初期設定は 300MB に設定してい ます。 メイン画面 「OK」,「キャンセル」 ボタン 「OK」ボタンをクリックすることで設定値を反映させることが出 来ます。「キャンセル」ボタンをクリックすると設定値を反映さ せずにメイン画面のみ最小化します。

(22)

第7章 重要な情報

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

(23)

商標/登録商標

参照

関連したドキュメント

EU の指令 Restriction of the use of certain Hazardous Substances in Electrical and Electronic Equipment の略称。詳しくは以下の URL

その後、時計の MODE ボタン(C)を約 2 秒間 押し続けて時刻モードにしてから、時計の CONNECT ボタン(D)を約 2 秒間押し続けて

⑫ 亜急性硬化性全脳炎、⑬ ライソゾーム病、⑭ 副腎白質ジストロフィー、⑮ 脊髄 性筋萎縮症、⑯ 球脊髄性筋萎縮症、⑰

事前調査を行う者の要件の新設 ■

概要・目標 地域社会の発展や安全・安心の向上に取り組み、地域活性化 を目的としたプログラムの実施や緑化を推進していきます

問題集については P28 をご参照ください。 (P28 以外は発行されておりませんので、ご了承く ださい。)

12) 邦訳は、以下の2冊を参照させていただいた。アンドレ・ブルトン『通底器』豊崎光一訳、

注1) 本は再版にあたって新たに写本を参照してはいないが、