05.11.2014 Views

BPC-0821 Help for Windows - インタフェース

BPC-0821 Help for Windows - インタフェース

BPC-0821 Help for Windows - インタフェース

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!