You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
IFMEM4G.WIN<br />
<strong>BPC</strong>-<strong>0821</strong><br />
<strong>Windows</strong> 用 メモリアクセスツール<br />
<strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
www.interface.co.jp
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
目 次<br />
第 1 章 はじめに 2<br />
1.1 概 要 ...........................................................................2<br />
1.2 特 長 ...........................................................................2<br />
第 2 章 製 品 仕 様 3<br />
2.1 基 本 仕 様 .......................................................................3<br />
2.2 製 品 構 成 .......................................................................3<br />
第 3 章 導 入 方 法 4<br />
3.1 インストール 手 順 ...............................................................4<br />
3.2 実 行 手 順 .......................................................................4<br />
第 4 章 リファレンス 6<br />
3.1 関 数 一 覧 .......................................................................6<br />
3.2 関 数 個 別 説 明 ...................................................................7<br />
3.3 構 造 体 ........................................................................40<br />
第 5 章 サンプルプログラム 43<br />
5.1 IoReadWrite ...................................................................43<br />
5.2 MemReadWrite ..................................................................44<br />
第 6 章 ユーティリティ 45<br />
4.1 メモリダンプユーティリティプログラム ..........................................45<br />
第 7 章 重 要 な 情 報 48<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
1
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
第 1 章 はじめに<br />
1.1 概 要<br />
<strong>BPC</strong>-<strong>0821</strong> は、<strong>Windows</strong> 上 から I/O ポート、メモリへ 直 接 アクセスを 行 えるツールです。<br />
<strong>Windows</strong> 上 のアプリケーションから DLL をダイナミックリンクし、API をコールすることにより<br />
I/O ポート、メモリへ 直 接 アクセスすることが 出 来 ます。<br />
また 分 散 処 理 コンピュータに 搭 載 されているメモリ 共 有 <strong>インタフェース</strong>( 以 降 メモリ 共 有 インタ<br />
フェース) 制 御 用 の API も 提 供 しています。<br />
本 ドキュメントは、<strong>Windows</strong> 上 で <strong>BPC</strong>-<strong>0821</strong> を 使 用 するための 情 報 を 掲 載 しています。<br />
1.2 特 長<br />
●<strong>Windows</strong> 上 から I/O ポート、メモリへ 直 接 アクセスすることが 出 来 る 為 、<strong>Windows</strong> 上 からでも、<br />
パフォーマンスの 高 いハードウェア 制 御 を 行 うことができます。<br />
通 常 、<strong>Windows</strong> 上 から I/O ポート、メモリへのアクセスを 行 う 場 合 、ドライバ 呼 び 出 しに 時 間 が<br />
かかりますが、 本 ソフトウェアを 使 用 することにより、ソフトウェアのオーバーヘッドを 最 小 に<br />
することができます。<br />
●PCI コンフィグレーションアクセス 用 関 数 を 提 供 していますので、PCI デバイスのリソース 情 報<br />
を 取 得 することができます。<br />
●メモリ 共 有 <strong>インタフェース</strong>の 割 り 込 み 発 生 時 、コールバックルーチンを 呼 び 出 すことができます。<br />
●メモリ 共 有 <strong>インタフェース</strong>のメモリアクセスを 高 速 にする API を 提 供 しています。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
2
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
第 2 章 製 品 仕 様<br />
2.1 基 本 仕 様<br />
イベント 機 能<br />
メモリ 共 有 <strong>インタフェース</strong>の 割 り 込 みが 発 生 した 場 合 に、アプリケー<br />
ションにイベント 通 知 することができます。<br />
・ウォッチドック 割 り 込 み<br />
・STB/ACK 割 り 込 み<br />
・FIFO 割 り 込 み<br />
2.2 製 品 構 成<br />
製 品 構 成 ファイル 名 説 明<br />
弊 社 管 理 用 ファイル <strong>BPC</strong><strong>0821</strong>.VER 弊 社 ソフトウェア 管 理 用 ファイル<br />
最 新 情 報 ドキュメント README.HTM 最 新 ドキュメント 掲 載 ファイル<br />
インストールプログラム SETUP.EXE インストール 用 ファイル<br />
ユーティリティプログラム MEMDUMP.EXE メモリダンプユーティリティプログラム<br />
DLL<br />
IFMEM4G.DLL ダイナミックリンクライブラリファイル<br />
IFMEM4G.LIB インポートライブラリファイル<br />
デバイスドライバ<br />
IFMEM4G.SYS デバイスドライバ<br />
IFMEM4G.INF ドライバインストールファイル<br />
ヘッダファイル<br />
IFMEM4G.H Visual C++ 用 ヘッダファイル<br />
IFMEM4G.BAS Visual Basic 用 ヘッダファイル<br />
IFMEM4G.PAS Delphi 用 ヘッダファイル<br />
<strong>Help</strong> HELP.PDF <strong>Help</strong>(PDF 形 式 )<br />
サンプルプログラム<br />
Visual C++<br />
IoReadWrite I/O ポートアクセスサンプルプログラム<br />
MemReadWrite メモリアクセスサンプルプログラム<br />
Visual Basic MemReadWrite メモリアクセスサンプルプログラム<br />
Visual C# .NET MemReadWrite メモリアクセスサンプルプログラム<br />
Visual Basic .NET MemReadWrite メモリアクセスサンプルプログラム<br />
Delphi MemReadWrite メモリアクセスサンプルプログラム<br />
※Visual C# .NET,Visual Basic.NET 用 サンプルプログラムは、それぞれ Viausl C# .NET 2003,Visual<br />
Basic .NET 2003 を 使 用 して 作 成 しています。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
3
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
第 3 章 導 入 方 法<br />
3.1 インストール 手 順<br />
README.HTM のインストール 方 法 を 参 照 してください。<br />
3.2 実 行 手 順<br />
基 本 的 な 制 御 の 手 順 は 以 下 の 通 りです( 記 述 例 は C 言 語 です)。<br />
・I/O ポートアクセス 関 数<br />
1. ユーザモード(RIN3)から I/O ポートへのアクセスを 有 効 にします。<br />
ret = UioIoEnable();<br />
2. I/O ポートからのデータ 読 み 込 み、I/O ポートへのデータ 書 き 込 みを 行 います。<br />
Data = _inp(Port); //データ 読 み 込 み<br />
_outp(Port, Data); //データ 書 き 込 み<br />
3. ユーザモード(RIN3)から I/O ポートへのアクセスを 無 効 にします。<br />
ret = UioIoDisable();<br />
・ 物 理 メモリアクセス 関 数<br />
1. ユーザモード(RIN3)のメモリ 空 間 へ 物 理 メモリを 割 り 当 てます。<br />
address = (unsigned char *)UioMemMap((void *)0xD4000000, 0x02000000);<br />
2. 1.で 取 得 したユーザメモリのアドレスに 対 して、データの 読 み 書 きを 行 います。<br />
3. ユーザモード(RIN3)のメモリ 空 間 から 物 理 メモリを 開 放 します。<br />
UioMemUnmap((void *)address);<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
4
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
・PCI コンフィグレーションレジスタ アクセス 関 数<br />
1. 入 力<br />
PciGetCfgByte 関 数 , PciGetfgWord 関 数 , PciGetfgDword 関 数 を 使 用 して、PCI コンフィグ<br />
レーションレジスタの Byte 単 位 , Word 単 位 , Dword 単 位 の 読 み 出 しが 行 えます。<br />
PciGetCfgByte(MK_PCI_ADDR(0, 2, 0, 4), &data);<br />
PciGetCfgWord(MK_PCI_ADDR(0, 2, 0, 4), &data);<br />
PciGetCfgDword(MK_PCI_ADDR(0, 2, 0, 4), &data);<br />
2. 出 力<br />
PciSetCfByte 関 数 , PciSetCfWord 関 数 , PciSetCfDword 関 数 をしようして、PCI コンフィ<br />
グレーションレジスタの Byte 単 位 , Word 単 位 , Dword 単 位 の 書 き 込 みが 行 えます。<br />
PciSetCfgByte(MK_PCI_ADDR(0, 2, 0, 4), 0x12);<br />
PciSetCfgWord(MK_PCI_ADDR(0, 2, 0, 4), 0x1234);<br />
PciSetCfgDword(MK_PCI_ADDR(0, 2, 0, 4), 0x12345678);<br />
MK_PCI_ADDR 関 数 を 使 用 すると、アクセス 関 数 の 第 一 引 数 の PCI コンフィグレーションレジ<br />
スタアクセス 用 アドレスをバス 番 号 ,デバイス 番 号 , ファンクション 番 号 , PCI コンフィグ<br />
レーションレジスタのオフセットから 作 成 することが 出 来 ます。<br />
・メモリ 共 有 <strong>インタフェース</strong> 関 数<br />
1. メモリ 共 有 <strong>インタフェース</strong>の 高 速 アクセス<br />
LbEnableCache 関 数 を 使 用 することで、CPU のキャッシュを 有 効 にして、メモリ 共 有 イン<br />
タフェースの 高 速 アクセスを 有 効 にします。<br />
LbDisableCache 関 数 を 使 用 することで、LbEnable 関 数 で 有 効 に 設 定 されているキャッシ<br />
ュ 設 定 を 無 効 にし、メモリ 共 有 <strong>インタフェース</strong>の 高 速 アクセスを 無 効 にします。<br />
2. 割 り 込 み<br />
LbSetEvent 関 数 でメモリ 共 有 <strong>インタフェース</strong>の 割 り 込 みイベント 機 能 の 登 録 を 行 います。<br />
また、LbKillEvent 関 数 でメモリ 共 有 <strong>インタフェース</strong>の 割 り 込 みイベント 機 能 の 解 除 を 行<br />
います。<br />
割 り 込 みイベント 機 能 を 有 効 した 場 合 は、 必 ずアプリケーションの 終 了 前 に 割 り 込 みイベ<br />
ントの 解 除 を 行 ってください。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
5
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
第 4 章 リファレンス<br />
3.1 関 数 一 覧<br />
No 関 数 名 機 能<br />
●I/O ポートアクセス 関 数<br />
1 UioIoEnable ユーザモード(RING3)から I/O ポートのアクセスを 有 効 にします。<br />
2 UioIoDisable ユーザモード(RING3)から I/O ポートのアクセスを 無 効 にします。<br />
● 物 理 メモリアクセス 関 数<br />
3 UioMemMap ユーザモード(RING3)のメモリ 空 間 へ 物 理 メモリを 割 り 当 てます。<br />
4 UioMemUnmap ユーザモード(RING3)のメモリ 空 間 から 物 理 メモリを 開 放 します。<br />
●PCI コンフィグレーションレジスタ アクセス 関 数<br />
5 PciGetCfgByte PCI コンフィグレーションレジスタの 読 み 出 し(BYTE 単 位 )を 行 います。<br />
6 PciGetCfgWord PCI コンフィグレーションレジスタの 読 み 出 し(WORD 単 位 )を 行 います。<br />
7 PciGetCfgDword PCI コンフィグレーションレジスタの 読 み 出 し(DWORD 単 位 )を 行 いま<br />
す。<br />
8 PciSetCfgByte PCI コンフィグレーションレジスタの 書 き 込 み(BYTE 単 位 )を 行 います。<br />
9 PciSetCfgWord PCI コンフィグレーションレジスタの 書 き 込 み(WORD 単 位 )を 行 います。<br />
10 PciSetCfgDword PCI コンフィグレーションレジスタの 書 き 込 み(DWORD 単 位 )を 行 いま<br />
す。<br />
11 MK_PCI_ADDR PCI コンフィグレーションレジスタアクセス 用 アドレスを 作 成 します。<br />
●メモリ 共 有 <strong>インタフェース</strong> 関 数<br />
12 LbEnableCache CPUのキャッシュを 有 効 にして、メモリ 共 有 <strong>インタフェース</strong>の 高 速 アク<br />
セスを 有 効 にします。<br />
13 LbDisableCache メモリ 共 有 <strong>インタフェース</strong>の 高 速 アクセスを 無 効 にします。<br />
14 LbSetEvent メモリ 共 有 <strong>インタフェース</strong>の 割 り 込 みイベント 機 能 を 登 録 します。<br />
15 LbKillEvent メモリ 共 有 <strong>インタフェース</strong>の 割 り 込 みイベント 機 能 の 解 除 を 行 います。<br />
16 WdtCallBackProc メモリ 共 有 <strong>インタフェース</strong>のウォッチドック 割 り 込 みイベント 発 生 に<br />
よってコールされるコールバック 関 数 のプレースホルダです。<br />
17 AckCallBackProc メモリ 共 有 <strong>インタフェース</strong>のACK 割 り 込 みイベント 発 生 によってコール<br />
されるコールバック 関 数 のプレースホルダです。<br />
18 StbCallBackProc メモリ 共 有 <strong>インタフェース</strong>のSTB 割 り 込 みイベント 発 生 によってコール<br />
されるコールバック 関 数 のプレースホルダです。<br />
19 WriteFifoCallBackProc メモリ 共 有 <strong>インタフェース</strong>のライトFIFO 割 り 込 みイベント 発 生 によっ<br />
てコールされるコールバック 関 数 のプレースホルダです。<br />
20 ReadFifoCallBackProc メモリ 共 有 <strong>インタフェース</strong>のリードFIFO 割 り 込 みイベント 発 生 によっ<br />
てコールされるコールバック 関 数 のプレースホルダです。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
6
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
3.2 関 数 個 別 説 明<br />
1. UioIoEnable<br />
【 機 能 】<br />
ユーザモード(RING3)から I/O ポートのアクセスを 有 効 にします。<br />
【 書 式 】<br />
●C 言 語<br />
BOOL WINAPI UioIoEnable(<br />
void<br />
);<br />
【パラメータ】<br />
なし<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、TRUE が 返 されます。<br />
失 敗 した 場 合 には FALSE が 返 されます。<br />
【 備 考 】<br />
本 API は Visual Basic, Delphi では 使 用 することはできません。<br />
【 使 用 例 】<br />
●C 言 語<br />
BOOL ret;<br />
unsigned short Port=0x280;<br />
int Data;<br />
ret = UioIoEnable();<br />
if(!ret) {<br />
return;<br />
}<br />
Data =_inp(Port); // I/Oポートから 読 み 込 み<br />
_outp(Port, Data); // I/Oポートへの 書 き 込 み<br />
ret = UioIoDisable();<br />
指 定 した I/O ポートへのデータ 書 き 込 み、 読 み 込 みを 行 います。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
7
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
2. UioIoDisable<br />
【 機 能 】<br />
ユーザモード(RING3)から I/O ポートのアクセスを 無 効 にします。<br />
【 書 式 】<br />
●C 言 語<br />
BOOL WINAPI UioIoDisable(<br />
void<br />
);<br />
【パラメータ】<br />
なし<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、TRUE が 返 されます。<br />
失 敗 した 場 合 には FALSE が 返 されます。<br />
【 備 考 】<br />
本 API は Visual Basic, Delphi では 使 用 することはできません。<br />
【 使 用 例 】<br />
●C 言 語<br />
BOOL ret;<br />
unsigned short Port = 0x280;<br />
int Data;<br />
ret = UioIoEnable();<br />
:<br />
UioIoDisable();<br />
指 定 した I/O ポートへのデータ 書 き 込 み、 読 み 込 みを 行 います。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
8
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
3. UioMemMap<br />
【 機 能 】<br />
ユーザモード(RING3)のメモリ 空 間 へ 物 理 メモリを 割 り 当 てます。<br />
【 書 式 】<br />
●C 言 語<br />
VOID * WINAPI UioMemMap(<br />
VOID<br />
DWORD<br />
);<br />
*base,<br />
size<br />
●Visual Basic<br />
Declare Function UioMemMap Lib "ifmem4g.dll" ( _<br />
ByVal base As Long, _<br />
ByVal size As Long _<br />
) As Long<br />
●Delphi<br />
function UioMemMap(<br />
base: DWORD;<br />
size: DWORD<br />
): pointer; stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
base<br />
物 理 メモリアドレスを 指 定 します。<br />
size<br />
メモリサイズを 指 定 します。<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、ユーザ 空 間 のメモリアドレスが 返 されます。<br />
失 敗 した 場 合 には NULL(0)が 返 されます。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
9
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
【 使 用 例 】<br />
●C 言 語<br />
unsigned char *address;<br />
int i, j;<br />
address = (unsigned char *)UioMemMap((void *)0xD4000000, 0x02000000);<br />
if(address == NULL) {<br />
return;<br />
}<br />
<strong>for</strong> (i = 0; i < 16; i++) {<br />
<strong>for</strong> (j = 0; j < 16; j++) {<br />
printf("%02X ", *(address + (i * 16) + j));<br />
}<br />
printf("\n");<br />
}<br />
UioMemUnmap((void *)address);<br />
●Visual Basic<br />
Declare Sub MemReadByte Lib "Kernel32.dll" Alias "CopyMemory" (ByRef buffer As Any, ByVal<br />
address As Long, ByVal length As Long)<br />
Dim address As Long<br />
Dim i, j As Long<br />
Dim Message As String<br />
Dim ret As Long<br />
address = UioMemMap(&HD4000000, &H02000000);<br />
If address = 0 Then Exit Sub<br />
MemReadByte buffer(0), address, 256<br />
For I = 0 To 15<br />
For J = 0 To 15<br />
Message = Message & Hex(buffer(I * 16 + J)) & " "<br />
Next<br />
Message = Message & vbCrLf<br />
Next<br />
MsgBox Message<br />
ret = UioMemUnmap(address)<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
10
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
●Delphi<br />
var<br />
address: pointer;<br />
i, j: integer;<br />
buffer: array[0..255] of Byte;<br />
Message: string<br />
address := UioMemMap($d4000000, $02000000);<br />
if address = 0 then exit;<br />
CopyMemory(@buffer[0], address, 256);<br />
<strong>for</strong> i := 0 to 15 do<br />
begin<br />
<strong>for</strong> j := 0 to 15 do<br />
begin<br />
Message := Message + IntToHex(buffer[i*16 + j], 2);<br />
end;<br />
Message := Message + '\n';<br />
end;<br />
MessageDlg(Message, mtIn<strong>for</strong>mation, [mbOK], 0);<br />
UioMemUnmap(address);<br />
メモリ 領 域 (D4000000h)のデータを 読 み 込 んで 画 面 に 表 示 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
11
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
4. UioMemUnmap<br />
【 機 能 】<br />
ユーザモード(RING3)に 割 り 当 てた 物 理 メモリを 解 放 します。<br />
【 書 式 】<br />
●C 言 語<br />
BOOL WINAPI UioMemUnmap(<br />
VOID *base<br />
);<br />
●Visual Basic<br />
Declare Function UioMemUnmap Lib "ifmem4g.dll" ( _<br />
ByVal base As Long _<br />
) As Long<br />
●Delphi<br />
function UioMemUnmap(<br />
base: pointer<br />
): integer; stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
base<br />
解 放 するユーザメモリのアドレスを 指 定 します。<br />
UioMemMap 関 数 で 得 られたアドレスを 指 定 します。<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、TRUE が 返 されます。<br />
失 敗 した 場 合 には FALSE が 返 されます。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
12
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
【 使 用 例 】<br />
●C 言 語<br />
unsigned char *address;<br />
address = (unsigned char *)UioMemMap((void *)0xD4000000, 0x02000000);<br />
:<br />
UioMemUnmap((void *)address);<br />
●Visual Basic<br />
Dim address As Long<br />
address = UioMemMap(&HD4000000, &H02000000);<br />
:<br />
UioMemUnmap(address)<br />
●Delphi<br />
var<br />
address: pointer;<br />
address := UioMemMap($d4000000, $02000000);<br />
:<br />
UioMemUnmap(address);<br />
物 理 メモリを 解 放 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
13
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
5. PciGetCfgByte<br />
【 機 能 】<br />
PCI コンフィグレーションレジスタの 読 み 出 し(BYTE 単 位 )を 行 います。<br />
【 書 式 】<br />
●C 言 語<br />
BOOL WINAPI PciGetCfgByte(<br />
DWORD addr,<br />
BYTE *data<br />
);<br />
●Visual Basic<br />
Declare Function PciGetCfgByte Lib "ifmem4g.dll" ( _<br />
ByVal address As Long, _<br />
ByRef data As Byte _<br />
) As Long<br />
●Delphi<br />
function PciGetCfgByte(<br />
address: DWORD;<br />
var data: Byte<br />
): integer; stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
addr<br />
PCI コンフィグレーションレジスタアクセス 用 アドレスを 指 定 します。<br />
data<br />
読 み 出 しデータ 格 納 用 領 域 へのポインタ( 参 照 渡 し)を 指 定 します。<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、TRUE が 返 され、data に 有 効 な 値 が 格 納 されます。<br />
失 敗 した 場 合 には FALSE が 返 されます。(data に 格 納 される 値 は 不 定 です。)<br />
【 備 考 】<br />
addr は、80000000h + (BUS×10000h) + (DEV×800h) + (FUNC×100h) + REGで 指 定 します。<br />
パラメータ<br />
内 容<br />
BUS<br />
バス 番 号<br />
DEV<br />
デバイス 番 号<br />
FUNC ファンクション 番 号<br />
REG<br />
PCI コンフィグレーションレジスタオフセットアドレス<br />
(MK_PCI_ADDR マクロを 使 用 することもできます。)<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
14
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
【 使 用 例 】<br />
●C 言 語<br />
int ret ;<br />
BYTE data;<br />
ret = PciGetCfgByte(MK_PCI_ADDR(0, 2, 0, 4), &data);<br />
●Visual Basic<br />
Dim ret As Long<br />
Dim data As Byte<br />
ret = PciGetCfgByte(MK_PCI_ADDR(0, 2, 0, 4), data);<br />
●Delphi<br />
var<br />
ret: integer<br />
data: Byte;<br />
ret := PciGetCfgByte(MK_PCI_ADDR(0, 2, 0, 4), data);<br />
PCI デバイス(バス 番 号 0、デバイス 番 号 2、ファンクション 番 号 0)の コンフィグレーションレジスタ(オ<br />
フセットアドレス+4)から BYTE 単 位 でデータを 読 み 出 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
15
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
6. PciGetCfgWord<br />
【 機 能 】<br />
PCI コンフィグレーションレジスタの 読 み 出 し(WORD 単 位 )を 行 います。<br />
【 書 式 】<br />
●C 言 語<br />
BOOL WINAPI PciGetCfgWord(<br />
DWORD addr,<br />
WORD *data<br />
);<br />
●Visual Basic<br />
Declare Function PciGetCfgWord Lib "ifmem4g.dll" ( _<br />
ByVal address As Long, _<br />
ByRef data As Byte _<br />
) As Long<br />
●Delphi<br />
function PciGetCfgWord(<br />
address: DWORD;<br />
var data: Byte<br />
): integer; stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
addr<br />
PCI コンフィグレーションレジスタアクセス 用 アドレスを 指 定 します。<br />
data<br />
読 み 出 しデータ 格 納 用 領 域 へのポインタ( 参 照 渡 し)を 指 定 します。<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、TRUE が 返 され、data に 有 効 な 値 が 格 納 されます。<br />
失 敗 した 場 合 には FALSE が 返 されます。(data に 格 納 される 値 は 不 定 です。)<br />
【 備 考 】<br />
addr は、80000000h + (BUS×10000h) + (DEV×800h) + (FUNC×100h) + REGで 指 定 します。<br />
パラメータ<br />
内 容<br />
BUS<br />
バス 番 号<br />
DEV<br />
デバイス 番 号<br />
FUNC ファンクション 番 号<br />
REG<br />
PCI コンフィグレーションレジスタオフセットアドレス<br />
(MK_PCI_ADDR マクロを 使 用 することもできます。)<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
16
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
【 使 用 例 】<br />
●C 言 語<br />
int ret ;<br />
WORD data;<br />
ret = PciGetCfgWord(MK_PCI_ADDR(0, 2, 0, 4), &data);<br />
●Visual Basic<br />
Dim ret As Long<br />
Dim data As Short<br />
ret = PciGetCfgWord(MK_PCI_ADDR(0, 2, 0, 4), data);<br />
●Delphi<br />
var<br />
ret: integer<br />
data: word;<br />
ret := PciGetCfgWord(MK_PCI_ADDR(0, 2, 0, 4), data);<br />
PCI デバイス(バス 番 号 0、デバイス 番 号 2、ファンクション 番 号 0)の コンフィグレーションレジスタ(オ<br />
フセットアドレス+4)から WORD 単 位 でデータを 読 み 出 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
17
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
7. PciGetCfgDword<br />
【 機 能 】<br />
PCI コンフィグレーションレジスタの 読 み 出 し(DWORD 単 位 )を 行 います。<br />
【 書 式 】<br />
●C 言 語<br />
BOOL WINAPI PciGetCfgDword(<br />
DWORD addr,<br />
DWORD *data<br />
);<br />
●Visual Basic<br />
Declare Function PciGetCfgDword Lib "ifmem4g.dll" ( _<br />
ByVal address As Long, _<br />
ByRef data As Long _<br />
) As Long<br />
●Delphi<br />
function PciGetCfgDword(<br />
address: DWORD;<br />
var data: DWORD<br />
): integer; stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
addr<br />
PCI コンフィグレーションレジスタアクセス 用 アドレスを 指 定 します。<br />
data<br />
読 み 出 しデータ 格 納 用 領 域 へのポインタ( 参 照 渡 し)を 指 定 します。<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、TRUE が 返 され、data に 有 効 な 値 が 格 納 されます。<br />
失 敗 した 場 合 には FALSE が 返 されます。(data に 格 納 される 値 は 不 定 です。)<br />
【 備 考 】<br />
addr は、80000000h + (BUS×10000h) + (DEV×800h) + (FUNC×100h) + REGで 指 定 します。<br />
パラメータ<br />
内 容<br />
BUS<br />
バス 番 号<br />
DEV<br />
デバイス 番 号<br />
FUNC ファンクション 番 号<br />
REG<br />
PCI コンフィグレーションレジスタオフセットアドレス<br />
(MK_PCI_ADDR マクロを 使 用 することもできます。)<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
18
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
【 使 用 例 】<br />
●C 言 語<br />
int ret ;<br />
DWORD data;<br />
ret = PciGetCfgDword(MK_PCI_ADDR(0, 2, 0, 4), &data);<br />
●Visual Basic<br />
Dim ret As Long<br />
Dim data As Long<br />
ret = PciGetCfgDword(MK_PCI_ADDR(0, 2, 0, 4), data);<br />
●Delphi<br />
var<br />
ret: integer<br />
data: dword;<br />
ret := PciGetCfgDword(MK_PCI_ADDR(0, 2, 0, 4), data);<br />
PCI デバイス(バス 番 号 0、デバイス 番 号 2、ファンクション 番 号 0)の コンフィグレーションレジスタ(オ<br />
フセットアドレス+4)から DWORD 単 位 でデータを 読 み 出 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
19
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
8. PciSetCfgByte<br />
【 機 能 】<br />
PCI コンフィグレーションレジスタの 書 き 込 み(BYTE 単 位 )を 行 います。<br />
【 書 式 】<br />
●C 言 語<br />
BOOL WINAPI PciSetCfgByte(<br />
DWORD addr,<br />
BYTE data<br />
);<br />
●Visual Basic<br />
Declare Function PciSetCfgByte Lib "ifmem4g.dll" ( _<br />
ByVal address As Long, _<br />
ByVal data As Byte _<br />
) As Long<br />
●Delphi<br />
function PciSetCfgByte(<br />
address: DWORD;<br />
data: BYTE<br />
): integer; stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
addr<br />
PCI コンフィグレーションレジスタアクセス 用 アドレスを 指 定 します。<br />
data<br />
書 き 込 みデータを 指 定 します。<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、TRUE が 返 されます。<br />
失 敗 した 場 合 には FALSE が 返 されます。<br />
【 備 考 】<br />
addr は、80000000h + (BUS×10000h) + (DEV×800h) + (FUNC×100h) + REGで 指 定 します。<br />
パラメータ<br />
内 容<br />
BUS<br />
バス 番 号<br />
DEV<br />
デバイス 番 号<br />
FUNC ファンクション 番 号<br />
REG<br />
PCI コンフィグレーションレジスタオフセットアドレス<br />
(MK_PCI_ADDR マクロを 使 用 することもできます。)<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
20
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
【 使 用 例 】<br />
●C 言 語<br />
int ret ;<br />
ret= PciSetCfgByte(MK_PCI_ADDR(0, 2, 0, 4), 0x12);<br />
●Visual Basic<br />
Dim ret As Long<br />
ret = PciSetCfgByte(MK_PCI_ADDR(0, 2, 0, 4), &H12);<br />
●Delphi<br />
var<br />
ret: integer<br />
ret := PciSetCfgByte(MK_PCI_ADDR(0, 2, 0, 4), $12);<br />
PCI デバイス(バス 番 号 0、デバイス 番 号 2、ファンクション 番 号 0)の コンフィグレーションレジスタ(オ<br />
フセットアドレス+4) に BYTE データを 書 き 込 みます。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
21
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
9. PciSetCfgWord<br />
【 機 能 】<br />
PCI コンフィグレーションレジスタの 書 き 込 み(WORD 単 位 )を 行 います。<br />
【 書 式 】<br />
●C 言 語<br />
BOOL WINAPI PciSetCfgWord (<br />
DWORD addr,<br />
WORD data<br />
);<br />
●Visual Basic<br />
Declare Function PciSetCfgWord Lib "ifmem4g.dll" ( _<br />
ByVal address As Long, _<br />
ByVal data As Short _<br />
) As Long<br />
●Delphi<br />
function PciSetCfgWord(<br />
address: DWORD;<br />
data: WORD<br />
): integer; stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
addr<br />
PCI コンフィグレーションレジスタアクセス 用 アドレスを 指 定 します。<br />
data<br />
書 き 込 みデータを 指 定 します。<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、TRUE が 返 されます。<br />
失 敗 した 場 合 には FALSE が 返 されます。<br />
【 備 考 】<br />
addr は、80000000h + (BUS×10000h) + (DEV×800h) + (FUNC×100h) + REGで 指 定 します。<br />
パラメータ<br />
内 容<br />
BUS<br />
バス 番 号<br />
DEV<br />
デバイス 番 号<br />
FUNC ファンクション 番 号<br />
REG<br />
PCI コンフィグレーションレジスタオフセットアドレス<br />
(MK_PCI_ADDR マクロを 使 用 することもできます。)<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
22
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
【 使 用 例 】<br />
●C 言 語<br />
int ret;<br />
ret = PciSetCfgWord(MK_PCI_ADDR(0, 2, 0, 4), 0x1234);<br />
●Visual Basic<br />
Dim ret As Long<br />
ret = PciSetCfgWord(MK_PCI_ADDR(0, 2, 0, 4), &H1234);<br />
●Delphi<br />
var<br />
ret: integer<br />
ret := PciSetCfgWord(MK_PCI_ADDR(0, 2, 0, 4), $1234);<br />
PCI デバイス(バス 番 号 0、デバイス 番 号 2、ファンクション 番 号 0)の コンフィグレーションレジスタ(オ<br />
フセットアドレス+4) に WORD データを 書 き 込 みます。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
23
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
10. PciSetCfgDword<br />
【 機 能 】<br />
PCI コンフィグレーションレジスタの 書 き 込 み(DWORD 単 位 )を 行 います。<br />
【 書 式 】<br />
●C 言 語<br />
BOOL WINAPI PciSetCfgDword (<br />
DWORD addr,<br />
DWORD data<br />
);<br />
●Visual Basic<br />
Declare Function PciSetCfgDword Lib "ifmem4g.dll" ( _<br />
ByVal address As Long, _<br />
ByVal data As Long _<br />
) As Long<br />
●Delphi<br />
function PciSetCfgDword(<br />
address: DWORD;<br />
data: DWORD<br />
): integer; stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
addr<br />
PCI コンフィグレーションレジスタアクセス 用 アドレスを 指 定 します。<br />
data<br />
書 き 込 みデータを 指 定 します。<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、TRUE が 返 されます。<br />
失 敗 した 場 合 には FALSE が 返 されます。<br />
【 備 考 】<br />
addr は、80000000h + (BUS×10000h) + (DEV×800h) + (FUNC×100h) + REGで 指 定 します。<br />
パラメータ<br />
内 容<br />
BUS<br />
バス 番 号<br />
DEV<br />
デバイス 番 号<br />
FUNC ファンクション 番 号<br />
REG<br />
PCI コンフィグレーションレジスタオフセットアドレス<br />
(MK_PCI_ADDR マクロを 使 用 することもできます。)<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
24
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
【 使 用 例 】<br />
●C 言 語<br />
int ret;<br />
ret = PciSetCfgDword(MK_PCI_ADDR(0, 2, 0, 4), 0x12345678);<br />
●Visual Basic<br />
Dim ret As Long<br />
ret = PciSetCfgDword(MK_PCI_ADDR(0, 2, 0, 4), &H12345678);<br />
●Delphi<br />
var<br />
ret: integer<br />
ret := PciSetCfgDword(MK_PCI_ADDR(0, 2, 0, 4), $12345678);<br />
PCI デバイス(バス 番 号 0、デバイス 番 号 2、ファンクション 番 号 0)の コンフィグレーションレジスタ(オ<br />
フセットアドレス+4) に DWORD データを 書 き 込 みます。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
25
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
11. MK_PCI_ADDR<br />
【 機 能 】<br />
PCI コンフィグレーションレジスタアクセス 用 アドレスを 作 成 します。<br />
【 書 式 】<br />
●C 言 語<br />
DWORD MK_PCI_ADDR(<br />
bus,<br />
dev,<br />
func,<br />
reg<br />
);<br />
(MK_PCI_ADDR はマクロです)<br />
●Visual Basic<br />
Declare Function MK_PCI_ADDR Lib "ifmem4g.dll" ( _<br />
ByVal bus As Long, _<br />
ByVal dev As Long, _<br />
ByVal func As Long, _<br />
ByVal reg As Long _<br />
) As Long<br />
●Delphi<br />
function PciSetCfgDword(<br />
bus:<br />
DWORD;<br />
dev:<br />
DWORD;<br />
func: DWORD;<br />
reg:<br />
DWORD<br />
): DWORD; stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
bus<br />
バス 番 号 を 指 定 します。<br />
dev<br />
デバイス 番 号 を 指 定 します。<br />
func<br />
ファンクション 番 号 を 指 定 します。<br />
reg<br />
PCI コンフィグレーションレジスタのオフセットアドレスを 指 定 します。<br />
【 戻 り 値 】<br />
以 下 の 形 式 で PCI コンフィグレーションレジスタアクセス 用 アドレスが 生 成 されます。<br />
80000000h + (bus×10000h) + (dev×800h) + (func×100h) + reg<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
26
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
【 使 用 例 】<br />
●C 言 語<br />
DWORD addr;<br />
addr = MK_PCI_ADDR(0, 2, 0, 4);<br />
●Visual Basic<br />
Dim addr As Long<br />
addr = MK_PCI_ADDR(0, 2, 0, 4)<br />
●Delphi<br />
var<br />
addr: DWORD;<br />
addr := MK_PCI_ADDR(0, 2, 0, 4);<br />
バス 番 号 0、デバイス 番 号 2、ファンクション 番 号 0 のデバイスの PCI コンフィグレーションレジ<br />
スタ オフセットアドレス+4 にアクセスする 為 の PCI コンフィグレーションレジスタアクセス 用<br />
アドレスを 作 成 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
27
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
12. LbEnableCache<br />
【 機 能 】<br />
CPU のキャッシュを 有 効 にして、メモリ 共 有 <strong>インタフェース</strong>の 高 速 アクセスを 有 効 にします。<br />
【 書 式 】<br />
●C 言 語<br />
INT WINAPI LbEnableCache(<br />
DWORD offset,<br />
DWORD length<br />
);<br />
●Visual Basic<br />
Declare Function LbEnableCache Lib "ifmem4g.dll" ( _<br />
ByVal offset As Long, _<br />
ByVal length As Long,<br />
) As Long<br />
●Delphi<br />
function LbEnableCache (<br />
offset: DWORD;<br />
length: DWORD<br />
): Integer ; stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
offset<br />
キャッシュを 有 効 にする 共 有 メモリ 領 域 のオフセットアドレスを 指 定 します。<br />
offset = 4096 × m (m ≧ 0)である 必 要 があります。<br />
length<br />
キャッシュを 有 効 にする 領 域 の 大 きさを、バイト 単 位 で 表 した 値 を 指 定 します。<br />
length = 4096 ×2 n (n ≧ 0)である 必 要 があります。<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、LB_ERROR_SUCCESS が 返 されます。<br />
正 常 終 了 しなかった 場 合 は、 以 下 のエラーコードが 返 されます。<br />
エラーコード<br />
内 容<br />
LB_ERROR_DEVICE_NOT_FOUND メモリ 共 有 <strong>インタフェース</strong>が 見 つかりません。<br />
LB_ERROR_ALREADY_ENABLE すでにキャッシュが 有 効 になっています。<br />
LB_ERROR_INVALID_PARAMETER パラメータが 不 正 な 値 です。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
28
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
【 備 考 】<br />
offset から、length バイトのメモリ 領 域 を、ライトスルータイプに 設 定 します。これにより、 設<br />
定 された 範 囲 内 への 連 続 したメモリアクセスが 高 速 に 行 えるようになります。ある 程 度 の 大 きさ<br />
のまとまったデータ 転 送 時 に 効 果 を 発 揮 します。データ 量 が 多 ければ 多 いほど、その 効 果 は 大 き<br />
くなります。<br />
同 時 にキャッシュ 有 効 に 出 来 る 領 域 は、1 箇 所 だけです。<br />
offset, length の 値 が、 条 件 を 満 足 していない 場 合 、システムの 動 作 を 不 安 定 にしてしまう 危 険<br />
性 があります。<br />
キャッシュが 有 効 になっている 期 間 に 対 向 側 システムがキャッシュ 有 効 範 囲 へ 書 き 込 んだ 値 を 正<br />
しく 読 み 出 せるとは 限 らなくなります。また、 場 合 によっては、 対 向 側 システムが 書 き 込 んだ 値<br />
を 破 壊 する 危 険 性 もあります。キャッシュ 有 効 範 囲 について、 十 分 注 意 してご 使 用 ください。<br />
【 使 用 例 】<br />
●C 言 語<br />
INT ret;<br />
ret = LbEnableCache(0x3000000, 0x1000000);<br />
●Visual Basic<br />
Dim ret As Long<br />
ret = LbEnableCache(&H3000000, &H1000000)<br />
●Delphi<br />
var<br />
ret: Integer;<br />
ret := LbEnableCache($3000000, $1000000);<br />
共 有 メモリのオフセット 3000000h から 1M バイトをキャッシュ 有 効 にします。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
29
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
13. LbDisableCache<br />
【 機 能 】<br />
LbEnableCash 関 数 により 有 効 に 設 定 されているキャッシュ 設 定 を 無 効 にし、メモリ 共 有 インタフ<br />
ェースの 高 速 アクセスを 無 効 にします。<br />
【 書 式 】<br />
●C 言 語<br />
INT WINAPI LbDisableCache(VOID);<br />
●Visual Basic<br />
Declare Function LbDisableCache Lib "ifmem4g.dll" ( _<br />
) As Long<br />
●Delphi<br />
function LbDisableCache (<br />
): Integer ; stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
なし<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、LB_ERROR_SUCCESS が 返 されます。<br />
正 常 終 了 しなかった 場 合 は、 以 下 のエラーコードが 返 されます。<br />
エラーコード<br />
内 容<br />
LB_ERROR_DEVICE_NOT_FOUND メモリ 共 有 <strong>インタフェース</strong>が 見 つかりません。<br />
【 使 用 例 】<br />
●C 言 語<br />
INT ret;<br />
ret = LbDisableCache();<br />
●Visual Basic<br />
Dim ret As Long<br />
ret = LbDisableCache ()<br />
●Delphi<br />
var<br />
ret: Integer;<br />
ret := LbDisableCache ();<br />
共 有 メモリのキャッシュ 設 定 を 無 効 にします。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
30
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
14. LbSetEvent<br />
【 機 能 】<br />
メモリ 共 有 <strong>インタフェース</strong>の 割 り 込 みイベント 機 能 を 登 録 します。<br />
【 書 式 】<br />
●C 言 語<br />
INT WINAPI LbSetEvent(<br />
PLB_EVENT_CONFIG<br />
);<br />
EventConfig<br />
●Visual Basic<br />
Declare Function LbSetEvent Lib "ifmem4g.dll" ( _<br />
ByRef EventConfig As LB_EVENT_CONFIG _<br />
) As Long<br />
●Delphi<br />
function LbSetEvent(<br />
var EventConfig: LB_EVENT_CONFIG;<br />
): Integer: stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
EventConfig<br />
イベント 設 定 構 造 体 へのポインタ( 参 照 渡 し)を 指 定 します。<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、LB_ERROR_SUCCESS が 返 されます。<br />
正 常 終 了 しなかった 場 合 は、 以 下 のエラーコードが 返 されます。<br />
エラーコード<br />
内 容<br />
LB_ERROR_DEVICE_NOT_FOUND メモリ 共 有 <strong>インタフェース</strong>が 見 つかりません。<br />
【 備 考 】<br />
1. 本 関 数 は、 分 散 処 理 コンピュータ 上 以 外 では 使 用 できません。<br />
2. 本 関 数 はイベントマスクの 設 定 は 行 いません。イベントマスクの 設 定 は、ユーザアプリケーシ<br />
ョン 上 で 行 うようにしてください。<br />
3. 本 関 数 により 割 り 込 みイベント 機 能 を 有 効 にした 場 合 、 必 ずアプリケーション 終 了 前 に<br />
LbKillEvent 関 数 でイベント 機 能 の 解 除 を 行 ってください。<br />
4. すでにイベント 機 能 の 設 定 を 行 っている 状 態 で 本 API を 呼 び 出 した 場 合 、 新 しいイベント 設 定<br />
で 上 書 きされます。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
31
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
【 使 用 例 】<br />
●C 言 語<br />
INT WdtEventHandler(DWORD UserData)<br />
{<br />
:<br />
return 0;<br />
}<br />
INT ret;<br />
LB_EVENT_CONFIG EventConfig;<br />
PBYTE WdtAddress;<br />
WdtAddress = (PBYTE)UioMemMap(LB_BASE_ADDRESS0, 63);<br />
ZeroMemory(&EventConfig, sizeof(LB_EVENT_CONFIG));<br />
EventConfig.WdtCallBackProc = WdtEventHandler;<br />
EventConfig.WdtUserData = (DWORD)WdtAddress;<br />
ret = LbSetEvent(&EventConfig);<br />
*(WdtAddress + 0x25) = 0x01; // ウォッチドック 割 り 込 みを 有 効<br />
●Visual Basic<br />
Declare Sub UioWriteMemory Lib "Kernel32.dll" Alias "RtlMoveMemory" (ByVal address As Long,<br />
ByRef buffer As Any, ByVal length As Long)<br />
Declare Function WdtEventHandler(ByVal UserData As Long)<br />
:<br />
WdtEventHandler = 0<br />
End Function<br />
Dim ret As Long<br />
Dim EventConfig As LB_EVENT_CONFIG<br />
Dim WdtAddress As Long<br />
Dim Buffer(16) As Byte<br />
WdtAddress = UioMemMap(LB_BASE_ADDRESS0, 63)<br />
EventConfig.WdtCallBackProc = ChangeAddressOf(AddressOf WdtEventHandler)<br />
EventConfig.WdtUserData = WdtAddress<br />
ret = LbSetEvent(EventConfig)<br />
Buffer(0) = &H01<br />
UioWriteMemory(WdtAddress + 0x25, Buffer(0), 1) ' ウォッチドック 割 り 込 みを 有 効<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
32
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
●Delphi<br />
function WdtEventHandler(UserData: DWORD): Integer; stdcall<br />
begin<br />
:<br />
Result := 0;<br />
end;<br />
var<br />
ret: Integer;<br />
EventConfig: LB_EVENT_CONFIG;<br />
WdtAddress: pointer;<br />
Buffer: array[0..15] of Byte;<br />
WdtAddress := UioMemMap(LB_BASE_ADDRESS0, 63);<br />
ZeroMemory(@EventConfig, SizeOf(LB_EVENT_CONFIG));<br />
EventConfig.WdtCallBackProc := Addr(WdtEventHandler);<br />
EventConfig.WdtAddress := WdtAddress;<br />
ret := LbSetEvent(EventConfig);<br />
Buffer[0] := $01;<br />
CopyMemory(WdtAddress + $25, @Buffer[0], 1) ' ウォッチドック 割 り 込 みを 有 効<br />
割 り 込 みイベントを 登 録 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
33
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
15. LbKillEvent<br />
【 機 能 】<br />
メモリ 共 有 <strong>インタフェース</strong>の 割 り 込 みイベント 機 能 の 解 除 を 行 います。<br />
【 書 式 】<br />
●C 言 語<br />
INT WINAPI LbKillEvent(VOID);<br />
●Visual Basic<br />
Declare Function LbKillEvent Lib "ifmem4g.dll" ( _<br />
) As Long<br />
●Delphi<br />
function LbSetEvent(<br />
): Integer: stdcall; external 'ifmem4g.dll';<br />
【パラメータ】<br />
なし<br />
【 戻 り 値 】<br />
正 常 終 了 した 場 合 は、LB_ERROR_SUCCESS が 返 されます。<br />
正 常 終 了 しなかった 場 合 は、 以 下 のエラーコードが 返 されます。<br />
エラーコード<br />
内 容<br />
LB_ERROR_DEVICE_NOT_FOUND メモリ 共 有 <strong>インタフェース</strong>が 見 つかりません。<br />
【 備 考 】<br />
本 関 数 は、 分 散 処 理 コンピュータ 上 以 外 では 使 用 できません。<br />
【 使 用 例 】<br />
●C 言 語<br />
INT ret;<br />
ret = LbKillEvent();<br />
●Visual Basic<br />
Dim ret As Long<br />
ret = LbKillEvent()<br />
●Delphi<br />
var<br />
ret: Integer;<br />
ret := LbKillEvent();<br />
割 り 込 みイベント 機 能 の 解 除 を 行 います。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
34
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
16. WdtCallBackProc<br />
【 機 能 】<br />
メモリ 共 有 <strong>インタフェース</strong>のウォッチドック 割 り 込 みイベント 発 生 によってコールされるコール<br />
バック 関 数 のプレースホルダです。<br />
【 書 式 】<br />
●C 言 語<br />
INT WdtCallBackProc(<br />
DWORD<br />
);<br />
UserData<br />
●Visual Basic<br />
Declare Function WdtCallBackProc ( _<br />
ByVal UserData As Long _<br />
) As Long<br />
●Delphi<br />
function WdtCallBackProc(<br />
UserData: DWORD;<br />
) :Integer; stdcall<br />
【パラメータ】<br />
UserData<br />
LbSetEvent 関 数 で 設 定 したユーザデータです。<br />
【 戻 り 値 】<br />
コールバック 関 数 実 行 後 、ウォッチドック 割 り 込 みを 無 効 にする 場 合 、 戻 り 値 に 0 を 設 定 します。<br />
コールバック 関 数 実 行 後 、ウォッチドック 割 り 込 みを 有 効 にする 場 合 、 戻 り 値 に 1 を 設 定 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
35
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
17. AckCallBackProc<br />
【 機 能 】<br />
メモリ 共 有 <strong>インタフェース</strong>の ACK 割 り 込 みイベント 発 生 によってコールされるコールバック 関 数<br />
のプレースホルダです。<br />
【 書 式 】<br />
●C 言 語<br />
INT AckCallBackProc(<br />
DWORD<br />
);<br />
UserData<br />
●Visual Basic<br />
Declare Function AckCallBackProc ( _<br />
ByVal UserData As Long _<br />
) As Long<br />
●Delphi<br />
function AckCallBackProc(<br />
UserData: DWORD;<br />
) :Integer; stdcall<br />
【パラメータ】<br />
UserData<br />
LbSetEvent 関 数 で 設 定 したユーザデータです。<br />
【 戻 り 値 】<br />
コールバック 関 数 実 行 後 、ACK 割 り 込 みを 無 効 にする 場 合 、 戻 り 値 に 0 を 設 定 します。<br />
コールバック 関 数 実 行 後 、ACK 割 り 込 みを 有 効 にする 場 合 、 戻 り 値 に 1 を 設 定 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
36
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
18. StbCallBackProc<br />
【 機 能 】<br />
メモリ 共 有 <strong>インタフェース</strong>の STB 割 り 込 みイベント 発 生 によってコールされるコールバック 関 数<br />
のプレースホルダです。<br />
【 書 式 】<br />
●C 言 語<br />
INT StbCallBackProc(<br />
DWORD<br />
);<br />
UserData<br />
●Visual Basic<br />
Declare Function StbCallBackProc ( _<br />
ByVal UserData As Long _<br />
) As Long<br />
●Delphi<br />
function StbCallBackProc(<br />
UserData: DWORD;<br />
) :Integer; stdcall<br />
【パラメータ】<br />
UserData<br />
LbSetEvent 関 数 で 設 定 したユーザデータです。<br />
【 戻 り 値 】<br />
コールバック 関 数 実 行 後 、STB 割 り 込 みを 無 効 にする 場 合 、 戻 り 値 に 0 を 設 定 します。<br />
コールバック 関 数 実 行 後 、STB 割 り 込 みを 有 効 にする 場 合 、 戻 り 値 に 1 を 設 定 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
37
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
19. WriteFifoCallBackProc<br />
【 機 能 】<br />
メモリ 共 有 <strong>インタフェース</strong>のライト 用 FIFO 割 り 込 みイベント 発 生 によってコールされるコール<br />
バック 関 数 のプレースホルダです。<br />
【 書 式 】<br />
●C 言 語<br />
INT WriteFifoCallBackProc(<br />
DWORD<br />
DWORD<br />
);<br />
EventMask,<br />
UserData<br />
●Visual Basic<br />
Declare Function WriteFifoCallBackProc ( _<br />
ByVal EventMask As Long _<br />
ByVal UserData As Long _<br />
) As Long<br />
●Delphi<br />
function WriteFifoCallBackProc(<br />
EventMask: DWORD;<br />
UserData: DWORD;<br />
) :Integer; stdcall<br />
【パラメータ】<br />
EventMask<br />
コールバック 関 数 を 呼 び 出 した、 割 り 込 みイベント 要 因 です。<br />
EventMask<br />
内 容<br />
1 ライト 用 FIFO EMPTY 割 り 込 みイベントが 有 効 です<br />
2 ライト 用 FIFO フル 解 除 割 り 込 みイベントが 有 効 です。<br />
UserData<br />
LbSetEvent 関 数 で 設 定 したユーザデータです。<br />
【 戻 り 値 】<br />
コールバック 関 数 実 行 後 、ライト 用 FIFO 割 り 込 みを 無 効 にする 場 合 、 戻 り 値 に 0 を 設 定 します。<br />
コールバック 関 数 実 行 後 、ライト 用 FIFO 割 り 込 みを 有 効 にする 場 合 、 戻 り 値 に 1 を 設 定 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
38
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
20. ReadFifoCallBackProc<br />
【 機 能 】<br />
メモリ 共 有 <strong>インタフェース</strong>のリード 用 FIFO 割 り 込 みイベント 発 生 によってコールされるコール<br />
バック 関 数 のプレースホルダです。<br />
【 書 式 】<br />
●C 言 語<br />
INT ReadFifoCallBackProc(<br />
DWORD<br />
DWORD<br />
);<br />
EventMask,<br />
UserData<br />
●Visual Basic<br />
Declare Function ReadFifoCallBackProc ( _<br />
ByVal EventMask As Long _<br />
ByVal UserData As Long _<br />
) As Long<br />
●Delphi<br />
function ReadFifoCallBackProc(<br />
EventMask: DWORD;<br />
UserData: DWORD;<br />
) :Integer; stdcall<br />
【パラメータ】<br />
EventMask<br />
コールバック 関 数 を 呼 び 出 した、 割 り 込 みイベント 要 因 です。<br />
EventMask<br />
内 容<br />
1 リード 用 FIFO EMPTY 解 除 割 り 込 みイベントが 有 効 です<br />
2 リード 用 FIFO フル 割 り 込 みイベントが 有 効 です。<br />
UserData<br />
LbSetEvent 関 数 で 設 定 したユーザデータです。<br />
【 戻 り 値 】<br />
コールバック 関 数 実 行 後 、リード 用 FIFO 割 り 込 みを 無 効 にする 場 合 、 戻 り 値 に 0 を 設 定 します。<br />
コールバック 関 数 実 行 後 、リード 用 FIFO 割 り 込 みを 有 効 にする 場 合 、 戻 り 値 に 1 を 設 定 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
39
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
3.3 構 造 体<br />
1. LB_EVENT_CONFIG 構 造 体<br />
メモリ 共 有 <strong>インタフェース</strong>のイベント 情 報 を 設 定 する 構 造 体 です。<br />
●C 言 語<br />
typedef struct {<br />
LPLBCALLBACK<br />
WdtCallBackProc;<br />
DWORD<br />
WdtUserData;<br />
LPLBCALLBACK<br />
AckCallBackProc;<br />
DWORD<br />
AckUserData;<br />
LPLBCALLBACK<br />
StbCallBackProc;<br />
DWORD<br />
StbUserData;<br />
LPLBFIFOCALLBACK WriteFifoCallBackProc1;<br />
DWORD<br />
WriteFifoUserData1;<br />
LPLBFIFOCALLBACK ReadFifoCallBackProc1;<br />
DWORD<br />
ReadFifoUserData1;<br />
LPLBFIFOCALLBACK WriteFifoCallBackProc2;<br />
DWORD<br />
WriteFifoUserData2;<br />
LPLBFIFOCALLBACK ReadFifoCallBackProc2;<br />
DWORD<br />
ReadFifoUserData2;<br />
} LB_EVENT_CONFIG, *LB_EVENT_CONFIG;<br />
●Visual Basic<br />
Type LB_EVENT_CONFIG<br />
WdtCallBackProc<br />
WdtUserData<br />
AckCallBackProc<br />
AckUserData<br />
StbCallBackProc<br />
StbUserData<br />
WriteFifoCallBackProc1<br />
WriteFifoUserData1<br />
ReadFifoCallBackProc1<br />
ReadFifoUserData1<br />
WriteFifoCallBackProc2<br />
WriteFifoUserData2<br />
ReadFifoCallBackProc2<br />
ReadFifoUserData2<br />
End Type<br />
As Long<br />
As Long<br />
As Long<br />
As Long<br />
As Long<br />
As Long<br />
As Long<br />
As Long<br />
As Long<br />
As Long<br />
As Long<br />
As Long<br />
As Long<br />
As Long<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
40
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
●Delphi<br />
type<br />
LB_EVENT_CONFIG = record<br />
WdtCallBackProc<br />
WdtUserData<br />
AckCallBackProc<br />
AckUserData<br />
StbCallBackProc<br />
StbUserData<br />
WriteFifoCallBackProc1<br />
WriteFifoUserData1<br />
ReadFifoCallBackProc1<br />
ReadFifoUserData1<br />
WriteFifoCallBackProc2<br />
WriteFifoUserData2<br />
ReadFifoCallBackProc2<br />
ReadFifoUserData2<br />
End Type<br />
pointer;<br />
DWORD;<br />
pointer;<br />
DWORD;<br />
pointer;<br />
DWORD;<br />
pointer;<br />
DWORD;<br />
pointer;<br />
DWORD;<br />
pointer;<br />
DWORD;<br />
pointer;<br />
DWORD;<br />
メンバ<br />
WdtCallBackProc<br />
WdtUserData<br />
AckCallBackProc<br />
AckUserData<br />
StbCallBackProc<br />
StbUserData<br />
説 明<br />
メモリ 共 有 <strong>インタフェース</strong>のウォッチドック 割 り 込 みイベント 発 生 時<br />
に 呼 び 出 されるコールバック 関 数 のポインタを 指 定 してください。<br />
コールバック 関 数 を 使 用 しない 場 合 は、C 言 語 では NULL、Visual Basic、<br />
Delphi では 0 を 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>のウォッチドック 割 り 込 みコールバック 関<br />
数 へ 引 き 渡 すユーザ・データを 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>の ACK 割 り 込 みイベント 発 生 時 に 呼 び 出 さ<br />
れるコールバック 関 数 のポインタを 指 定 してください。<br />
コールバック 関 数 を 使 用 しない 場 合 は、C 言 語 では NULL、Visual Basic、<br />
Delphi では 0 を 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>の ACK 割 り 込 みコールバック 関 数 へ 引 き 渡<br />
すユーザ・データを 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>の STB 割 り 込 みイベント 発 生 時 に 呼 び 出 さ<br />
れるコールバック 関 数 のポインタを 指 定 してください。<br />
コールバック 関 数 を 使 用 しない 場 合 は、C 言 語 では NULL、Visual Basic、<br />
Delphi では 0 を 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>の STB 割 り 込 みコールバック 関 数 へ 引 き 渡<br />
すユーザ・データを 指 定 してください。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
41
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
WriteFifoCallBackProc1<br />
WriteFifoUserData1<br />
ReadFifoCallBackProc1<br />
ReadFifoUserData1<br />
WriteFifoCallBackProc2<br />
WriteFifoUserData2<br />
ReadFifoCallBackProc2<br />
ReadFifoUserData2<br />
メモリ 共 有 <strong>インタフェース</strong>のライト 用 FIFO1 割 り 込 み 発 生 時 に 呼 び 出<br />
されるコールバック 関 数 のポインタを 指 定 してください。<br />
コールバック 関 数 を 使 用 しない 場 合 は、C 言 語 では NULL、Visual Basic、<br />
Delphi では 0 を 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>のライト 用 FIFO1 割 り 込 みコールバック 関<br />
数 へ 引 き 渡 すユーザ・データを 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>のリード 用 FIFO1 割 り 込 み 発 生 時 に 呼 び 出<br />
されるコールバック 関 数 のポインタを 指 定 してください。<br />
コールバック 関 数 を 使 用 しない 場 合 は、C 言 語 では NULL、Visual Basic、<br />
Delphi では 0 を 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>のリード 用 FIFO1 割 り 込 みコールバック 関<br />
数 へ 引 き 渡 すユーザ・データを 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>のライト 用 FIFO2 割 り 込 み 発 生 時 に 呼 び 出<br />
されるコールバック 関 数 のポインタを 指 定 してください。<br />
コールバック 関 数 を 使 用 しない 場 合 は、C 言 語 では NULL、Visual Basic、<br />
Delphi では 0 を 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>のライト 用 FIFO2 割 り 込 みコールバック 関<br />
数 へ 引 き 渡 すユーザ・データを 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>のリード 用 FIFO2 割 り 込 み 発 生 時 に 呼 び 出<br />
されるコールバック 関 数 のポインタを 指 定 してください。<br />
コールバック 関 数 を 使 用 しない 場 合 は、C 言 語 では NULL、Visual Basic、<br />
Delphi では 0 を 指 定 してください。<br />
メモリ 共 有 <strong>インタフェース</strong>のリード 用 FIFO2 割 り 込 みコールバック 関<br />
数 へ 引 き 渡 すユーザ・データを 指 定 してください。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
42
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
第 5 章 サンプルプログラム<br />
以 下 、 各 サンプルプログラムの 概 要 を 説 明 します。<br />
各 種 言 語 に 対 応 したサンプルプログラムはそれぞれ 以 下 の 場 所 にインストールされます。<br />
・Visual C++<br />
「(インストール 指 定 先 ディレクトリ)\Sample\VC」<br />
・Visual Basic<br />
「(インストール 指 定 先 ディレクトリ)\Sample\VB」<br />
・Delphi<br />
「(インストール 指 定 先 ディレクトリ)\Sample\Delphi」<br />
5.1 IoReadWrite<br />
【 概 要 】<br />
「IoReadWrite」は I/O ポートのデータ 読 み 込 み、データ 書 き 込 みを 行 うサンプルプログラムです。<br />
【 実 行 手 順 】<br />
サンプルプログラムには 実 行 形 式 のファイルが 付 属 していません。<br />
ソースコードをコンパイルして 実 行 ファイルを 生 成 してから、 動 作 させてください。<br />
●Visual C++の 場 合<br />
Visual C++(Visual Studio)を 起 動 し、「ファイル」メニューから「ワークスペースを 開 く」を<br />
選 び、メイクファイル「IoReadWrite.mak」を 開 き、ビルドしてください。<br />
作 成 後 、「IoReadWrite」を 起 動 してください。<br />
【 内 容 】<br />
I/O ポートアクセス 関 数 を 使 用 し、I/O ポートのデータを 読 み 出 し、 表 示 します。<br />
読 み 出 したデータの 各 ビットを 反 転 させ、I/O ポートへの 書 き 込 みます。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
43
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
5.2 MemReadWrite<br />
【 概 要 】<br />
「MemReadWrite」はメモリのデータ 読 み 込 み、データ 書 き 込 みを 行 うサンプルプログラムです。<br />
【 実 行 手 順 】<br />
サンプルプログラムには 実 行 形 式 のファイルが 付 属 していません。<br />
ソースコードをコンパイルして 実 行 ファイルを 生 成 してから、 動 作 させてください。<br />
●Visual C++の 場 合<br />
Visual C++(Visual Studio)を 起 動 し、「ファイル」メニューから「ワークスペースを 開 く」を<br />
選 び、メイクファイル「MemReadWrite.mak」を 開 き、ビルドしてください。<br />
●Visual Basic の 場 合<br />
Visual Basic を 起 動 し、プロジェクトファイル「MemReadWrite.vbp」を 開 き、ビルドしてくださ<br />
い。<br />
●Delphi の 場 合<br />
Delphi を 起 動 し、プロジェクトファイル「MemReadWrite.dpr」を 開 き、ビルドしてください。<br />
作 成 後 、「MemReadWrite」を 起 動 してください。<br />
【 内 容 】<br />
物 理 メモリアクセス 関 数 を 使 用 し、 物 理 メモリのデータを 読 み 出 し、 表 示 します。<br />
その 後 、 物 理 メモリへデータの 書 き 込 みます。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
44
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
第 6 章 ユーティリティ<br />
4.1 メモリダンプユーティリティプログラム<br />
メモリをダンプし 表 示 するユーティリティプログラムです。<br />
【 操 作 方 法 】<br />
1.「スタート」メニュー-「Interface <strong>BPC</strong>-<strong>0821</strong>」-「メモリダンプユーティリティプログラム」<br />
を 選 択 してユーティリティプログラムを 起 動 させます。<br />
2.ユーティリティを 起 動 時 メモリ 共 有 <strong>インタフェース</strong>が 見 つかった 場 合 、 共 有 メモリ 領 域 ( 先 頭 か<br />
ら 1M バイト)をダンプします。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
45
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
メモリ 共 有 <strong>インタフェース</strong>が 見 つからなかった 場 合 、「ファイル」―「 表 示 領 域 の 設 定 」メニュ<br />
ーから、ダンプ 表 示 する 領 域 を 指 定 してください。<br />
「ダンプアドレス」にダンプする 先 頭 アドレス、「サイズ」にダンプするサイズをバイト 単 位 で<br />
入 力 し「OK」ボタンを 押 します。<br />
※ダンプアドレス、サイズは 256(100h)バイト 単 位 で 設 定 します。<br />
3. 先 頭 アドレスから 128 バイトのデータが 画 面 上 に 表 示 されます。データは 1 秒 周 期 に 更 新 しま<br />
す。<br />
4.「 編 集 」メニューから、「 書 き 込 み」「フィル」「コピー」の 操 作 を 行 います。<br />
5.「 表 示 」―「 表 示 オフセットを 変 更 」メニューから、 画 面 表 示 する 先 頭 アドレスを 変 更 します。<br />
6.「ファイル」―「ファイル 読 み 込 み」「ファイル 書 き 込 み」メニューから、ファイルの 読 み 書 き<br />
を 行 います。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
46
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
以 下 の 設 定 を 行 い「OK」ボタンを 押 すことでファイル 読 み 込 みまたはファイル 書 き 込 みを 行 い<br />
ます。<br />
設 定 項 目<br />
内 容<br />
ファイル 名<br />
読 み 込 みを 行 うまたは 書 き 込 みを 行 うファイル 名 を 指 定 しま<br />
す。<br />
※ファイル 名 テキストボックス 右 横 のボダンを 押 すことでフ<br />
ァイル 選 択 ダイアログが 開 きます。<br />
オフセットアドレス 読 み 込 み 時 :ファイルから 読 み 込 んだデータを 格 納 する 先 頭<br />
のオフセットアドレスを 指 定 します。<br />
書 き 込 み 時 :ファイルに 書 き 込 むデータが 格 納 された 先 頭 の<br />
オフセットアドレスを 指 定 します。<br />
サイズ<br />
読 み 込 みまたは 書 き 込 みバイトサイズを 指 定 します。<br />
7.「ファイル」―「アプリケーションの 終 了 」メニューでユーティリティを 終 了 します。<br />
【メニュー】<br />
「ファイル」メニュー<br />
メニュー<br />
内 容<br />
表 示 領 域 の 設 定<br />
ダンプ 表 示 する 領 域 を 設 定 します。<br />
ファイル 読 み 込 み 指 定 領 域 へファイルから 読 み 込 んだデータを 格 納 します。<br />
ファイル 書 き 込 み 指 定 領 域 から 読 み 込 んだデータをファイルへ 書 き 込 みます。<br />
アプリケーションの 終 了 ユーティリティを 終 了 します。<br />
「 編 集 」メニュー<br />
メニュー<br />
ライト<br />
フィル<br />
コピー<br />
「 表 示 」メニュー<br />
メニュー<br />
表 示 オフセットを 変 更<br />
内 容<br />
指 定 領 域 へデータを 書 き 込 みます。<br />
指 定 領 域 へデータをフィルします。<br />
指 定 領 域 のデータを 別 領 域 にコピーします。<br />
内 容<br />
画 面 表 示 する 先 頭 オフセットアドレスを 変 更 します。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
47
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
第 7 章 重 要 な 情 報<br />
保 証 の 内 容 と 制 限<br />
弊 社 は 本 ドキュメントに 含 まれるソースプログラムの 実 行 が 中 断 しないこと、またはその 実 行 に<br />
誤 りが 無 いことを 保 証 していません。<br />
本 製 品 の 品 質 や 使 用 に 起 因 する、 性 能 に 起 因 するいかなるリスクも 使 用 者 が 負 うものとします。<br />
弊 社 はドキュメント 内 の 情 報 の 正 確 さに 万 全 を 期 しています。 万 一 、 誤 記 または 誤 植 などがあっ<br />
た 場 合 、 弊 社 は 予 告 無 く 改 訂 する 場 合 があります。ドキュメントまたはドキュメント 内 の 情 報 に<br />
起 因 するいかなる 損 害 に 対 しても 弊 社 は 責 任 を 負 いません。<br />
ドキュメント 内 の 図 や 表 は 説 明 のためであり、ユーザ 個 別 の 応 用 事 例 により 変 化 する 場 合 があり<br />
ます。<br />
著 作 権 、 知 的 所 有 権<br />
弊 社 は 本 製 品 に 含 まれるおよび 本 製 品 に 対 する 権 利 や 知 的 所 有 権 を 保 持 しています。<br />
本 製 品 はコンピュータ ソフトウェア、 映 像 / 音 声 ( 例 えば 図 、 文 章 、 写 真 など)を 含 んでいます。<br />
医 療 機 器 / 器 具 への 適 用 における 注 意<br />
弊 社 の 製 品 は 人 命 に 関 わるような 状 況 下 で 使 用 される 機 器 に 用 いられる 事 を 目 的 として 設 計 、 製<br />
造 された 物 では 有 りません。<br />
弊 社 の 製 品 は 人 体 の 検 査 などに 使 用 するに 適 する 信 頼 性 を 確 保 する 事 を 意 図 された 部 品 や 検 査 機<br />
器 と 共 に 設 計 された 物 では 有 りません。<br />
医 療 機 器 、 治 療 器 具 などの 本 製 品 の 適 用 により、 製 品 の 故 障 、ユーザ、 設 計 者 の 過 失 などにより、<br />
損 傷 / 損 害 を 引 き 起 こす 場 合 が 有 ります。<br />
複 製 の 禁 止<br />
弊 社 の 許 可 なく、 本 ドキュメントの 全 て、または 一 部 に 関 わらず、 複 製 、 改 変 などを 行 うことは<br />
できません。<br />
責 任 の 制 限<br />
弊 社 は、 弊 社 または 再 販 売 者 の 予 見 の 有 無 にかかわらず 発 生 したいかなる 特 別 損 害 、 偶 発 的 損 害 、<br />
間 接 的 な 損 害 、 重 大 な 損 害 について、 責 任 を 負 いません。<br />
本 製 品 (ハードウェア,ソフトウェア)のシステム 組 み 込 み、 使 用 、ならびに 本 製 品 から 得 られる<br />
結 果 に 関 する 一 切 のリスクについては、 本 製 品 の 使 用 者 に 帰 属 するものとします。<br />
本 製 品 に 含 まれるバグ、あるいは 本 製 品 の 供 給 ( 納 期 遅 延 )、 性 能 もしくは 使 用 に 起 因 する 付 帯 的<br />
損 害 もしくは 間 接 的 損 害 に 対 して、 弊 社 に 全 面 的 に 責 がある 場 合 でも、 弊 社 はその 製 品 に 対 する<br />
改 良 ( 正 常 に 動 作 する)、 代 品 交 換 までとし、 金 銭 面 での 賠 償 の 責 任 は 負 わないものとしますので、<br />
予 めご 了 承 ください。<br />
本 製 品 (ソフトウェアを 含 む)は、 日 本 国 内 仕 様 です。 本 製 品 を 日 本 国 外 で 使 用 された 場 合 、 弊<br />
社 は 一 切 責 任 を 負 いかねます。また、 弊 社 は 本 製 品 に 関 し、 海 外 での 保 守 サービスおよび 技 術 サ<br />
ポート 等 は 行 っておりません。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
48
<strong>BPC</strong>-<strong>0821</strong> <strong>Help</strong> <strong>for</strong> <strong>Windows</strong><br />
商 標 / 登 録 商 標<br />
本 書 に 掲 載 されている 会 社 名 、 製 品 名 は、それぞれ 各 社 の 商 標 または 登 録 商 標 です。<br />
© 2005, 2013 Interface Corporation. All rights reserved.<br />
49