JP2002024037A - ダイナミック・リンク・ライブラリ・ファイルの更新方法 - Google Patents

ダイナミック・リンク・ライブラリ・ファイルの更新方法

Info

Publication number
JP2002024037A
JP2002024037A JP2000201179A JP2000201179A JP2002024037A JP 2002024037 A JP2002024037 A JP 2002024037A JP 2000201179 A JP2000201179 A JP 2000201179A JP 2000201179 A JP2000201179 A JP 2000201179A JP 2002024037 A JP2002024037 A JP 2002024037A
Authority
JP
Japan
Prior art keywords
file
information
dll
file name
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000201179A
Other languages
English (en)
Inventor
Masaharu Sekiguchi
政春 関口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Micro Systems Co Ltd
Original Assignee
Renesas Micro Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Micro Systems Co Ltd filed Critical Renesas Micro Systems Co Ltd
Priority to JP2000201179A priority Critical patent/JP2002024037A/ja
Publication of JP2002024037A publication Critical patent/JP2002024037A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】ダイナミック・リンク・ライブラリ(DLL)
などの共用ファイルを更新するとき、オペレーティング
・システムを再起動する以前でも、更新内容を呼び出し
側のプログラムに反映できるようにする。 【解決手段】更新用の新DLLファイルを仮ファイル名
で情報処理システムに保持、更新対象DLLファイルの
正式ファイル名と仮ファイル名とのファイル名対応情報
テーブルを作成し、更新対象である現DLLファイルに
ファイル・ロード要求があるときには、ファイル・ロー
ド要求をフック処理して、現DLLファイル名を更新用
の新DLLファイルの仮ファイル名に変換して、OSに
ファイル・ロード処理要求するようにした。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ダイナミック・リ
ンク・ライブラリ・ファイル(DLLファイル)の更新
方法に関して、特に、OS(オペレーティング・システ
ム)を再起動する以前においても、現DLLファイルを
更新するように保持した新DLLファイルの内容を、呼
び出し側プログラムに即座に反映できるようにしたDL
Lファイルの更新方法に関する。
【0002】
【従来の技術】マイクロソフト社の「Windows」
や、IBM社の「OS/2」などのオペレーティング・
システムにおいては、副プログラム(所定の機能を実行
するプログラム・モジュール)などのファイルを、DL
L(あるいは、dll)という拡張子を持つファイル名
で別々に、ハード・ディスクなどの記憶装置に保持し
て、アプリケーション・プログラムなどの呼び出し側プ
ログラムが必要とするときだけ、該当のDLLファイル
を、情報処理システムのメモリ上にロードして、呼び出
し側のプログラムに動的にリンクする機能を備えてお
り、これを、「ダイナミック・リンク・ライブラリ(D
LL)」機能と称している。
【0003】従来、このDLLファイルを更新するとき
には、ファイル更新処理実行ルーチン(=インストー
ラ)により、更新用の新DLLファイルを仮ファイル名
でハード・ディスクなどの記憶装置に保持し、更新対象
の現DLLファイルの正式ファイル名と前記新DLLフ
ァイルの仮ファイル名との対応情報を、システム初期化
情報ファイルに保存した後に、実行中の全てのアプリケ
ーション・プログラムを停止して、OSを再起動するこ
とにより、前記のDLLファイルの更新を完了するよう
にしている。
【0004】すなわち、OSを再起動すると、初期化処
理実行ルーチンが、前記システム初期化情報ファイルに
保存された情報に基づいて、更新前の旧DLLファイル
を削除し、仮ファイル名で保持している新DLLファイ
ルに対して、その仮ファイル名を前記削除した旧DLL
ファイルの正式ファイル名にファイル名変更(リネー
ム)して、DLLファイルの更新処理を完了するように
していた。
【0005】したがって、呼び出し側プログラムには、
OSを再起動した後でなければ、更新した新DLLファ
イルの内容を反映することができなかった。
【0006】
【発明が解決しようとする課題】前述した従来技術にお
いては、更新用の新DLLファイルの内容を呼び出し側
プログラムに反映するために、OSを再起動する必要が
あるので、実行中のすべてのアプリケーション・プログ
ラムを一旦停止して、実行中の作業を中止する必要があ
った。
【0007】本発明は、現DLLファイルに対して更新
要求が発生したとき、実行中のアプリケーション・プロ
グラムを停止することなく、実行中の作業を継続可能に
するとともに、更新対象の現DLLファイルに対応する
新DLLファイルの内容を、OSを再起動することな
く、即座に呼び出し側プログラムに反映できるようにす
る手段を提供することを目的とするものである。
【0008】従来、この課題を解決するために、特開平
7−104992号公報に記載の発明では、「ファイル
更新管理手段が、アプリケーション・プログラムまたは
入力装置からファイルの更新通知を受けると、実時間置
換対象ファイルテーブルを検索して、登録されていたら
(更新ファイルが即時に置換する動的リンクプログラム
ファイルがあったら)、置換対象プロセステーブルに登
録されているプロセスにファイルの更新があったことを
通知して、該プロセスは、更新後のプログラムファイル
をロードして、呼び出しポインタを切り換えたあと、更
新前のプログラムファイルをキャンセルする」ようにし
て、更新ファイルの内容を実時間にプロセスに反映させ
るようにしている。
【0009】しかしながら、この特開平7−10499
2号公報に記載の発明においては、呼び出し側プログラ
ムである「プロセス」側に、ファイル更新にともなう処
理を、予め組み込んでおく必要があった。
【0010】また、特開平9−265384号公報に記
載の発明では、「副ロードモジュールを入れ替える際
に、新副ロードモジュール名変更手段により、副ロード
モジュール管理領域の副ロードモジュール識別子に対応
する副ロードモジュール名に対して、変更後の副ロード
モジュール名を格納して、副ロードモジュール呼び出し
手段が前記の副ロードモジュール管理領域を検索して副
ロードモジュール識別子に対応する副ロードモジュール
名の副ロードモジュールを呼び出す」ようにして、動的
リンク構造プログラムにおける副ロードモジュールの入
れ替えを実時間に行うようにしている。
【0011】しかしながら、この特開平9−26538
4号公報に記載の発明では、前記「副ロードモジュール
呼び出し手段」を、予め「副ロードモジュールの親であ
る主ロードモジュールの一部」として、すなわち呼び出
し側プログラムに、組み込んで置く必要があった。
【0012】本発明は、呼び出し側プログラムに、予め
何らかの手段を組み込んで置く必要のない、前記の目的
を達成する手段を提供するものである。
【0013】
【課題を解決するための手段】前記課題を解決するた
め、本発明のダイナミック・リンク・ライブラリ・ファ
イルの更新方法は、いくつかの副プログラム・ファイル
を、各々dllという拡張子をつけたファイル名で保持
し、呼び出し側のプログラムが必要とする場合のみ、指
定された副プログラム・ファイルを主メモリにロードし
て、呼び出し側のプログラムに動的にリンクするダイナ
ミック・リンク・ライブラリ(DLL)機能を備えたO
S下で動作する情報処理システムにおいて、前記副プロ
グラム・ファイル(以下、DLLファイルと呼ぶ)の中
の任意の副プログラム・ファイルを更新するとき、前記
情報処理システムのファイル更新処理実行ルーチン(以
下インストーラと呼ぶ)が、更新用の新DLLファイル
を仮ファイル名で前記情報処理システムに保持する第1
のステップと、更新対象の現DLLファイルの正式ファ
イル名と新DLLファイルの仮ファイル名との対応情報
を保持するファイル名対応情報テーブルを作成する第2
のステップと、呼び出し側プログラムからのOSに対す
るファイル・ロード処理要求をフックして、前記ファイ
ル・ロード要求されたDLLファイル名を前記ファイル
名対応情報テーブルから検索し、該当するDLLファイ
ル名が見つかったときには、対応する新DLLファイル
の仮ファイル名に変更し、該当のDLLファイル名が見
つからないときには要求されたDLLファイル名のまま
にして、ファイル・ロード処理するようにOSのファイ
ル・ロード処理機能をフック処理するフック処理実行ル
ーチンをOSに付加する第3のステップと、前記情報処
理システムを再起動したときに実行する初期化処理実行
ルーチンが参照するようにOSが標準的に作成するシス
テム初期化情報ファイルに対して、ファイル更新情報と
して前記ファイル名対応情報テーブルの情報と、ファイ
ル無効化情報として前記フック処理実行ルーチンを指定
する情報とを、追加する第4のステップとを含む手順を
実行するようにして、更新対象DLLファイルに対応す
る新DLLファイルの内容を即座に前記呼び出し側プロ
グラムに反映できるようにしたことを特徴とし、また、
前記情報処理システムを再起動したときには、前記情報
処理システムの初期化処理実行ルーチンが、前記のシス
テム初期化情報ファイルに基づいて、前記システム初期
化情報ファイルのファイル更新情報に現DLLファイル
の正式ファイル名があるものについては、現DLLファ
イルを削除する第5のステップと、前記システム初期化
情報ファイルのファイル更新情報に仮ファイル名がある
新DLLファイルについて、そのファイル名を対応する
更新前のDLLファイルの正式ファイル名に変更する第
6のステップと、前記第5及び第6のステップで更新処
理を終了したDLLファイルの正式ファイル名と仮ファ
イル名との対応情報を前記システム初期化情報ファイル
のファイル更新情報から削除すると共にファイル無効化
情報で指定された前記フック処理実行ルーチンを無効化
する第7のステップとを含む手順を実行するようにし
て、DLLファイルの更新処理を完了するようにした。
【0014】あるいは、いくつかの副プログラム・ファ
イルを、各々dllという拡張子をつけたファイル名で
保持し、呼び出し側のプログラムが必要とする場合の
み、指定された副プログラム・ファイルを主メモリにロ
ードして、呼び出し側のプログラムに動的にリンクする
ダイナミック・リンク・ライブラリ(DLL)機能を備
えたOS下で動作する情報処理システムにおいて、前記
副プログラム・ファイル(以下、DLLファイルと呼
ぶ)の中の任意の副プログラム・ファイルを更新すると
き、前記情報処理システムのファイル更新処理実行ルー
チン(以下インストーラと呼ぶ)が、更新用の新DLL
ファイルを仮ファイル名で前記情報処理システムに保持
する第8のステップと、前記情報処理システムを再起動
したときに実行する初期化処理実行ルーチンが参照する
ようにOSが標準的に作成するシステム初期化情報ファ
イルに対して、ファイル更新情報として更新対象の現D
LLファイルの正式ファイル名と新DLLファイルの仮
ファイル名との対応情報を追加する第9のステップと、
呼び出し側プログラムからのOSに対するファイル・ロ
ード処理要求をフックして、前記ファイル・ロード要求
されたDLLファイル名を前記システム初期化情報ファ
イルから検索し、該当するDLLファイル名が見つかっ
たときには、対応する新DLLファイルの仮ファイル名
に変更し、該当のDLLファイル名が見つからないとき
には要求されたDLLファイル名のままにして、ファイ
ル・ロード処理するようにOSのファイル・ロード処理
機能をフック処理するフック処理実行ルーチンをOSに
付加する第10のステップと、前記システム初期化情報
ファイルのファイル無効化情報に前記フック処理実行ル
ーチンを指示する情報を追加する第11のステップとを
含む手順を実行するようにして、更新対象DLLファイ
ルに対応する新DLLファイルの内容を即座に前記呼び
出し側プログラムに反映できるようにしたことを特徴と
し、また、前記情報処理システムを再起動したときに
は、前記情報処理システムの初期化処理実行ルーチン
が、前記のシステム初期化情報ファイルに基づいて、前
記システム初期化情報ファイルのファイル更新情報に現
DLLファイルの正式ファイル名があるものについて
は、現DLLファイルを削除する第5のステップと、前
記システム初期化情報ファイルのファイル更新情報に仮
ファイル名がある新DLLファイルについて、そのファ
イル名を対応する更新前のDLLファイルの正式ファイ
ル名に変更する第6のステップと、前記第5及び第6の
ステップで更新処理を終了したDLLファイルの正式フ
ァイル名と仮ファイル名との対応情報を前記システム初
期化情報ファイルのファイル更新情報から削除すると共
にファイル無効化情報で指定された前記フック処理実行
ルーチンを無効化する第7のステップとを含む手順を実
行するようにして、DLLファイルの更新処理を完了す
るようにした。
【0015】また、前記ダイナミック・リンク・ライブ
ラリ(DLL)機能を備えたOSが、マイクロソフト社
のウインドウズ(Windows)である場合、あるい
は、IBM社のOS/2である場合に、本発明のダイナ
ミック・リンク・ライブラリ・ファイルの更新方法を適
用した。
【0016】また、前記ファイル名対応情報テーブル
を、ハード・ディスクなどの前記情報処理システムの外
部記憶装置にファイル名をつけて保持する、あるいは、
前記ファイル名対応情報テーブルを前記情報処理システ
ムの主メモリ上に保持するようにし、前記初期化処理実
行ルーチンが、前記第7のステップに続けて前記ファイ
ル名対応情報テーブル・ファイルを無効化するステップ
を実行するようにした。
【0017】また、前記ダイナミック・リンク・ライブ
ラリ・ファイルの更新方法のインストーラ、フック処理
実行ルーチンあるいは初期化処理実行ルーチンの処理手
順を記録媒体に記録して、情報処理システムで利用でき
るようにした。
【0018】
【発明の実施の形態】本発明の実施の形態について、以
下に図面を参照して説明する。
【0019】図1は、本発明のダイナミック・リンク・
ライブラリ・ファイルの更新方法を説明するための模式
図、図2は、本発明のダイナミック・リンク・ライブラ
リ・ファイルの更新方法の第1の実施の形態のインスト
ーラの処理手順を説明するフローチャートである。
【0020】図1には、いくつかの副プログラム・ファ
イルを、各々dllという拡張子をつけたファイル名で
保持し、呼び出し側のプログラム2が必要とする場合の
み、指定された副プログラム・ファイル(以下、DLL
ファイルと呼ぶ)をメモリ3上にロードして、呼び出し
側のプログラム2に動的にリンクするダイナミック・リ
ンク・ライブラリ(DLL)機能を備えたOS(オペレ
ーティング・システム)4の下で動作する情報処理シス
テム9と、前記DLLファイルの中の任意のDLLファ
イル1を更新処理するファイル更新処理実行ルーチン
(以下インストーラと呼ぶ)5と、仮ファイル名で前記
情報処理システムに保持するようにした更新用の新DL
Lファイル6と、更新対象の現DLLファイル1の正式
ファイル名と、新DLLファイルの仮ファイル名との対
応情報を保持するファイル名対応情報テーブル7と、呼
び出し側プログラム2からのOSに対するファイル・ロ
ード処理要求21をフックして、前記ファイル・ロード
要求されたDLLファイル名を、前記ファイル名対応情
報テーブル7から検索し、該当するDLLファイル名が
見つかったときには、対応する新DLLファイルの仮フ
ァイル名に変更し、該当のDLLファイル名が見つから
ないときには要求されたDLLファイル名のままにし
て、OSのファイル・ロード処理実行ルーチン40に要
求するフック処理実行ルーチン50と、前記情報処理シ
ステム9を再起動したときに実行する初期化処理実行ル
ーチン41と、前記初期化処理実行ルーチン41が参照
するようにOSが標準的に作成するシステム初期化情報
ファイル8とを図示している。
【0021】図2に示すように、インストーラ5は、現
DLLファイル1(正式ファイル名を「File_A
(p).dll」とする)の更新要求があるときに、更
新用の新DLLファイル6を仮ファイル名(「File
_V(p).dll」とする)で前記情報処理システム
9に保持する第1のステップ201と、更新対象の現D
LLファイル1の正式ファイル名(「File_A
(p).dll」)と新DLLファイルの仮ファイル名
(File_V(p).dll」)との対応情報を保持
するファイル名対応情報テーブル7を作成する第2のス
テップ202と、呼び出し側プログラム2からのOSに
対するファイル・ロード処理要求21をフックして、前
記ファイル・ロード要求されたDLLファイル名(「F
ile_A(p).dll」が呼び出されたとする)を
前記ファイル名対応情報テーブル7から検索し、該当す
るDLLファイル名が見つかったときには、対応する新
DLLファイルの仮ファイル名(「File_V
(p).dll」)に変更し、該当のDLLファイル名
が見つからないときには要求されたDLLファイル名の
ままにして、ファイル・ロード処理するようにOSのフ
ァイル・ロード処理実行ルーチン40に要求するフック
処理実行ルーチン50をOSに付加する第3のステップ
203と、前記情報処理システムを再起動したときに前
記初期化処理実行ルーチン41が参照するようにOSが
標準的に作成するシステム初期化情報ファイル8に、フ
ァイル更新情報として前記ファイル名対応情報テーブル
7の情報と、ファイル無効化情報として前記フック処理
実行ルーチン50を指定する情報とを、追加する第4の
ステップ204とを含む手順を実行するように構成して
いる。
【0022】図3は、前述したインストーラの第3ステ
ップで付加する、OSへのファイル・ロード処理要求を
フック処理するフック処理実行ルーチン50の処理手順
を説明するフローチャートである。ここで、前記のフッ
ク(hook)とは、OSの機能について機能を変更・
追加することを容易にするために、予めOSの各機能に
対して組み込まれた機能で、このフックに、後から追加
した機能プログラム(フック処理実行ルーチン)への分
岐を指示する情報を格納するようにして、追加機能を実
行できるようにするものである。
【0023】図3に示すフック処理実行ルーチンは、呼
び出し側プログラム2から、OSに対してファイル・ロ
ード処理要求21があると、OSのファイル・ロード処
理実行ルーチン40のフック・エントリに格納したフッ
ク処理実行ルーチン50への分岐を指示する情報により
起動され、以下のフック処理を実行する。ここに、前記
のフック処理実行ルーチン50への分岐を指示するフッ
ク情報は、インストーラ5により、前記第3のステップ
において、OSに前記フック処理実行ルーチンを付加す
るときに、ファイル・ロード処理実行ルーチン40のフ
ック・エントリに格納する。
【0024】図3を参照すると、前記フック処理実行ル
ーチンは、最初のステップ301として、呼び出し側プ
ログラム2から呼び出し要求のあるDLLファイル名
(「File_A(p).dll」)を、前記ファイル
名対応情報テーブル7から検索する。次のステップ30
2では、検索の結果、呼び出し要求ファイル名が見つか
った場合には、呼び出し要求ファイル名を対応する仮フ
ァイル名(「File_V(p).dll」)に変換
し、見つからない場合には、呼び出し要求ファイル名を
そのままにして、次のステップ303で、OSに対して
前記ファイル名(この場合には、「File_V
(p).dll」)のDLLファイルをファイル・ロー
ド処理するように要求して、OSのファイル・ロード処
理実行ルーチン40に実行を移すようにして、フック処
理を終了するようにしている。
【0025】従って、前記インストーラ5によって、前
記の第1から第4のステップを実行後には、呼び出し側
プログラム2が、更新対象の現DLLファイル(「Fi
le_A(p).dll」)を呼び出したときには、前
記フック処理実行ルーチン50が、現DLLファイル名
を、更新用の新DLLファイルの仮ファイル名(「Fi
le_V(p).dll」)に変更して、OSに対して
ファイル・ロード処理要求するので、更新対象DLLフ
ァイルに対応する新DLLファイルの内容がメモリ3上
にロードされて、更新用の新DLLファイルの内容を即
座に前記呼び出し側プログラム2に反映することができ
るようになる。
【0026】図4は、本発明のダイナミック・リンク・
ライブラリ・ファイルの更新方法において、前記情報処
理システムを再起動したときに実行される前記初期化処
理実行ルーチン41の処理手順を説明するフローチャー
トである。
【0027】図4を参照すると、前記初期化処理実行ル
ーチン41は、前記のシステム初期化情報ファイル8に
基づいて、前記システム初期化情報ファイル8のファイ
ル更新情報に現DLLファイルの正式ファイル名がある
ものについては、現DLLファイルを削除する第5のス
テップ405と、前記システム初期化情報ファイル8の
ファイル更新情報の仮ファイル名をつけた新DLLファ
イルについて、そのファイル名を対応する更新前のDL
Lファイルの正式ファイル名に変更する第6のステップ
406と、前記第5及び第6のステップで更新処理を終
了したDLLファイルの正式ファイル名と仮ファイル名
との対応情報を前記システム初期化情報ファイル8のフ
ァイル更新情報から削除すると共にファイル無効化情報
で指示された前記フック処理実行ルーチンを無効化する
第7のステップ407とを含む手順を実行するように構
成している。
【0028】この初期化処理実行ルーチン41を実行す
ることにより、DLLファイルの更新処理が完了する。
【0029】ここに、前記ファイル名対応情報テーブル
を、ハード・ディスクなどの前記情報処理システムの外
部記憶装置にファイル名をつけて保持するようにしても
よいし、あるいは、前記ファイル名対応情報テーブル
を、前記情報処理システムのメモリ上に保持するように
してもよい。そして、前記初期化処理実行ルーチンが、
前記第7のステップに続けて前記ファイル名対応情報テ
ーブル・ファイルを無効化するステップを実行するよう
にする。
【0030】また、前述したダイナミック・リンク・ラ
イブラリ・ファイルの更新方法のインストーラやフック
処理実行ルーチン、あるいは初期化処理実行ルーチンの
処理手順を、記録媒体に記録して、情報処理システムで
利用できるようにしてもよい。
【0031】図5は、本発明のダイナミック・リンク・
ライブラリ・ファイルの更新方法の第2の実施の形態の
インストーラの処理手順を説明するフローチャートであ
る。
【0032】この第2の実施の形態のインストーラは、
更新用の新DLLファイルを仮ファイル名で前記情報処
理システムに保持する第8のステップ508と、更新対
象の現DLLファイルの正式ファイル名と新DLLファ
イルの仮ファイル名との対応情報を、前記情報処理シス
テムのOSが標準的に作成するシステム初期化情報ファ
イル8のファイル更新情報に追加する第9のステップ5
09と、呼び出し側プログラムからのOSに対するファ
イル・ロード処理要求をフックして、前記ファイル・ロ
ード要求されたDLLファイル名を前記システム初期化
情報ファイル8のファイル更新情報から検索し、該当す
るDLLファイル名が見つかったときには、対応する新
DLLファイルの仮ファイル名に変更し、該当のDLL
ファイル名が見つからないときには要求されたDLLフ
ァイル名のままにして、ファイル・ロード処理するよう
に、OSのファイル・ロード処理実行ルーチン40に要
求するフック処理実行ルーチン50をOSに付加する第
10のステップ510と、前記システム初期化情報ファ
イルのファイル無効化情報に前記フック処理実行ルーチ
ンを指示する情報を追加する第11のステップ511と
を含む手順を実行するように構成している。
【0033】この場合に付加するフック処理実行ルーチ
ンは、前述した図3のステップ301及び302におい
て、ファイル名対応情報テーブルに替えて、システム初
期化情報ファイル8のファイル更新情報を対象にして、
情報の追加、検索を実行するようにしている。
【0034】従って、前記インストーラによって、前記
第8から第11のステップを実行後には、呼び出し側プ
ログラムが、更新対象の現DLLファイルを呼び出した
ときには、前記フック処理実行ルーチンが、現DLLフ
ァイル名を、更新用の新DLLファイルの仮ファイル名
に変更して、OSに対してファイル・ロード処理要求す
るので、更新対象DLLファイルに対応する新DLLフ
ァイルの内容がメモリ上にロードされて、更新用の新D
LLファイルの内容を即座に前記呼び出し側プログラム
に反映することができるようになる。
【0035】また、前記情報処理システムを再起動した
とき、前記情報処理システムの初期化処理実行ルーチン
は、図4で説明したのと同様の処理手順により、DLL
ファイルの更新処理を完了する。
【0036】次に、前記ダイナミック・リンク・ライブ
ラリ(DLL)機能を備えたOSが、マイクロソフト社
のウインドウズ(Windows)である場合につい
て、本発明のDLLファイルの更新方法を説明する。
【0037】具体例として、3つの現共用ファイル(CO
MMON01.dll,COMMON02.dll,COMMON03.dll)を更新する場
合について説明する。インストーラは、第1ステップ
で、更新用の3つの新共用ファイルを仮ファイル名(FI
LE01.dll,FILE02.dll,FILE03.dll)で情報処理システム
に保持する。第2ステップにおいては、図6に示すよう
なファイル名対応情報テーブル(ファイル名:CONVNAM
E.DAT)を作成する。第3ステップでは、OSのファイ
ル・ロード処理実行ルーチンのフック・エントリに、前
述したフック処理実行ルーチンへの分岐情報を格納し
て、OSに対するファイル・ロード処理要求をフック処
理するフック処理実行ルーチン(ファイル名:CONVNAM
E.EXE)を付加する。第4ステップでは、OSが標準的
に作成する前記システム初期化情報ファイル(ファイル
名:WININIT.INI)に、ファイル更新情報及びファイル
無効化情報を追加する。
【0038】インストーラによって、前記のフック処理
実行ルーチンがOSに付加されると、それ以降に呼び出
し側プログラムからOSに対してファイル・ロード処理
要求があるときには、このファイル・ロード処理要求を
フックして、ファイル・ロード処理要求のあるファイル
名(例えば、「COMMON01.dll」)を、前記ファイル名対
応情報テーブル(CONVNAME.DAT)から検索して、該当す
るファイル名が有る場合にはファル名を対応する仮ファ
イル名(この場合には「FILE01.dll」)に変更して、O
Sにファイル・ロード処理要求するので、更新用の新D
LLファイルの内容を即座に呼び出し側プログラムに反
映できるようになる。
【0039】図7に、システム初期化情報ファイル(WI
NINIT.INI)の内容を例示する。図7において、最初の
第1行の「rename」は、ファイルの情報区画を示
すもので、後続の情報内容がファイル更新情報及びファ
イル無効化情報の区画であることを示す。第2行から第
4行目までは、ファイル更新情報で、等号の左辺のファ
イルを削除して、等号の右辺のファイルを左辺のファイ
ル名に変更(リネーム)するように指示する情報であ
る。第5行及び第6行目は、ファイル無効化情報を表し
ており、フック処理実行ルーチン(CONVNAME.EXE)及び
ファイル名対応情報テーブル(CONVNAME.DAT)のそれぞ
れのファイルを無効化するように指示する情報である。
【0040】OSを再起動したときには、OSの初期化
処理実行ルーチンは、このシステム初期化情報ファイル
の指示情報に従って各ファイルに対して、削除、リネー
ム、無効化の処理を実行する。
【0041】
【発明の効果】以上のように、本願発明のダイナミック
・リンク・ライブラリ・ファイルの更新方法によれば、
実行中のプログラムを停止することなく、起動中のオペ
レーティング・システムを再起動する以前に、実行中の
作業を中断する必要がなく、更新用の新DLLファイル
の内容を、呼び出し側プログラムに即座に反映すること
ができるという効果がある。
【0042】また、従来のOSを再起動してDLLファ
イルを更新する方法とも整合がとれているので、呼び出
し側プログラムにおいては何らの予備的な手段も要しな
いという効果がある。
【図面の簡単な説明】
【図1】本発明のダイナミック・リンク・ライブラリ・
ファイルの更新方法を説明する模式図である。
【図2】本発明のダイナミック・リンク・ライブラリ・
ファイルの更新方法の第1の実施の形態のインストーラ
の処理手順を説明するフローチャートである。
【図3】本発明のダイナミック・リンク・ライブラリ・
ファイルの更新方法のフック処理実行ルーチンの処理手
順を説明するフローチャートである。
【図4】本発明のダイナミック・リンク・ライブラリ・
ファイルの更新方法の初期化処理実行処理ルーチンの処
理手順を説明するフローチャートである。
【図5】本発明のダイナミック・リンク・ライブラリ・
ファイルの更新方法の第2の実施の形態のインストーラ
の処理手順を説明するフローチャートである。
【図6】ファイル名対応情報テーブルの内容を例示した
図である。
【図7】マイクロソフト社のウインドウズの場合のシス
テム初期化情報ファイル(WININIT.INI)の内容を例示
した図である。
【符号の説明】
1 DLLファイル 2 呼び出し側のプログラム 3 DLLファイル・ロード・メモリ 4 オペレーティング・システム(OS) 5 インストーラ 6 更新用の新DLLファイル 7 ファイル名対応情報テーブル 8 システム初期化情報ファイル 9 情報処理システム 21 ファイル・ロード処理要求 40 ファイル・ロード処理実行ルーチン 41 初期化処理実行ルーチン 50 フック処理実行ルーチン

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 いくつかの副プログラム・ファイルを、
    各々dllという拡張子をつけたファイル名で保持し、
    呼び出し側のプログラムが必要とする場合のみ、指定さ
    れた副プログラム・ファイルを主メモリにロードして、
    呼び出し側のプログラムに動的にリンクするダイナミッ
    ク・リンク・ライブラリ(DLL)機能を備えたOS下
    で動作する情報処理システムにおいて、前記副プログラ
    ム・ファイル(以下、DLLファイルと呼ぶ)の中の任
    意の副プログラム・ファイルを更新するとき、前記情報
    処理システムのファイル更新処理実行ルーチン(以下イ
    ンストーラと呼ぶ)が、更新用の新DLLファイルを仮
    ファイル名で前記情報処理システムに保持する第1のス
    テップと、更新対象の現DLLファイルの正式ファイル
    名と新DLLファイルの仮ファイル名との対応情報を保
    持するファイル名対応情報テーブルを作成する第2のス
    テップと、呼び出し側プログラムからのOSに対するフ
    ァイル・ロード処理要求をフックして、前記ファイル・
    ロード要求されたDLLファイル名を前記ファイル名対
    応情報テーブルから検索し、該当するDLLファイル名
    が見つかったときには、対応する新DLLファイルの仮
    ファイル名に変更し、該当のDLLファイル名が見つか
    らないときには要求されたDLLファイル名のままにし
    て、ファイル・ロード処理するようにOSのファイル・
    ロード処理機能をフック処理するフック処理実行ルーチ
    ンをOSに対して付加する第3のステップと、前記情報
    処理システムを再起動したときに実行する初期化処理実
    行ルーチンが参照するようにOSが標準的に作成するシ
    ステム初期化情報ファイルに対して、ファイル更新情報
    として前記ファイル名対応情報テーブルの情報と、ファ
    イル無効化情報として前記フック処理実行ルーチンを指
    定する情報とを、追加する第4のステップとを含む手順
    を実行するようにして、更新対象DLLファイルに対応
    する新DLLファイルの内容を即座に前記呼び出し側プ
    ログラムに反映できるようにしたことを特徴とし、ま
    た、前記情報処理システムを再起動したときには、前記
    情報処理システムの初期化処理実行ルーチンが、前記の
    システム初期化情報ファイルに基づいて、前記システム
    初期化情報ファイルのファイル更新情報に現DLLファ
    イルの正式ファイル名があるものについては、現DLL
    ファイルを削除する第5のステップと、前記システム初
    期化情報ファイルのファイル更新情報に仮ファイル名が
    ある新DLLファイルについて、そのファイル名を対応
    する更新前のDLLファイルの正式ファイル名に変更す
    る第6のステップと、前記第5及び第6のステップで更
    新処理を終了したDLLファイルの正式ファイル名と仮
    ファイル名との対応情報を前記システム初期化情報ファ
    イルのファイル更新情報から削除すると共にファイル無
    効化情報で指示された前記フック処理実行ルーチンを無
    効化する第7のステップとを含む手順を実行するように
    して、DLLファイルの更新処理を完了するようにした
    ダイナミック・リンク・ライブラリ・ファイルの更新方
    法。
  2. 【請求項2】 いくつかの副プログラム・ファイルを、
    各々dllという拡張子をつけたファイル名で保持し、
    呼び出し側のプログラムが必要とする場合のみ、指定さ
    れた副プログラム・ファイルを主メモリにロードして、
    呼び出し側のプログラムに動的にリンクするダイナミッ
    ク・リンク・ライブラリ(DLL)機能を備えたOS下
    で動作する情報処理システムにおいて、前記副プログラ
    ム・ファイル(以下、DLLファイルと呼ぶ)の中の任
    意の副プログラム・ファイルを更新するとき、前記情報
    処理システムのファイル更新処理実行ルーチン(以下イ
    ンストーラと呼ぶ)が、更新用の新DLLファイルを仮
    ファイル名で前記情報処理システムに保持する第8のス
    テップと、前記情報処理システムを再起動したときに実
    行する初期化処理実行ルーチンが参照するようにOSが
    標準的に作成するシステム初期化情報ファイルに対し
    て、ファイル更新情報として更新対象の現DLLファイ
    ルの正式ファイル名と新DLLファイルの仮ファイル名
    との対応情報を追加する第9のステップと、呼び出し側
    プログラムからのOSに対するファイル・ロード処理要
    求をフックして、前記ファイル・ロード要求されたDL
    Lファイル名を前記システム初期化情報ファイルのファ
    イル更新情報から検索し、該当するDLLファイル名が
    見つかったときには、対応する新DLLファイルの仮フ
    ァイル名に変更し、該当のDLLファイル名が見つから
    ないときには要求されたDLLファイル名のままにし
    て、ファイル・ロード処理するようにOSのファイル・
    ロード処理機能をフック処理するフック処理実行ルーチ
    ンをOSに付加する第10のステップと、前記システム
    初期化情報ファイルのファイル無効化情報に前記フック
    処理実行ルーチンを指示する情報を追加する第11のス
    テップとを含む手順を実行するようにして、更新対象D
    LLファイルに対応する新DLLファイルの内容を即座
    に前記呼び出し側プログラムに反映できるようにしたこ
    とを特徴とし、また、前記情報処理システムを再起動し
    たときには、前記情報処理システムの初期化処理実行ル
    ーチンが、前記のシステム初期化情報ファイルに基づい
    て、前記システム初期化情報ファイルのファイル更新情
    報に現DLLファイルの正式ファイル名があるものにつ
    いては、現DLLファイルを削除する第5のステップ
    と、前記ファイル更新管理情報ファイルに仮ファイル名
    のある新DLLファイルについて、そのファイル名を対
    応する更新前のDLLファイルの正式ファイル名に変更
    する第6のステップと、前記第5及び第6のステップで
    更新処理を終了したDLLファイルの正式ファイル名と
    仮ファイル名との対応情報を前記システム初期化情報フ
    ァイルのファイル更新情報から削除すると共にファイル
    無効化情報で指定された前記フック処理実行ルーチンを
    無効化する第7のステップとを含む手順を実行するよう
    にして、DLLファイルの更新処理を完了するようにし
    たダイナミック・リンク・ライブラリ・ファイルの更新
    方法。
  3. 【請求項3】 前記ダイナミック・リンク・ライブラリ
    (DLL)機能を備えたOSが、マイクロソフト社のウ
    インドウズ(Windows)である請求項1または2
    記載のダイナミック・リンク・ライブラリ・ファイルの
    更新方法。
  4. 【請求項4】 前記ダイナミック・リンク・ライブラリ
    (DLL)機能を備えたOSがIBM社のOS/2であ
    る請求項1または2記載のダイナミック・リンク・ライ
    ブラリ・ファイルの更新方法。
  5. 【請求項5】 前記ファイル名対応情報テーブルを、ハ
    ード・ディスクなどの前記情報処理システムの外部記憶
    装置にファイル名をつけて保持するようにし、前記初期
    化処理実行ルーチンが、前記第7のステップに続けて前
    記ファイル名対応情報テーブル・ファイルを無効化する
    ステップを実行するようにした請求項1、3、または4
    記載のダイナミック・リンク・ライブラリ・ファイルの
    更新方法。
  6. 【請求項6】 前記ファイル名対応情報テーブルを、前
    記情報処理システムのメモリ上に保持するようにし、前
    記初期化処理実行ルーチンが、前記第7のステップに続
    けて前記ファイル名対応情報テーブルを無効化するステ
    ップを実行するようにした請求項1、3、または4記載
    のダイナミック・リンク・ライブラリ・ファイルの更新
    方法。
  7. 【請求項7】 請求項1、2、3、4、5または6記載
    のダイナミック・リンク・ライブラリ・ファイルの更新
    方法のインストーラ、フック処理実行ルーチンあるいは
    初期化処理実行ルーチンの処理手順を、情報処理システ
    ムで利用できるように記録した記録媒体。
JP2000201179A 2000-07-03 2000-07-03 ダイナミック・リンク・ライブラリ・ファイルの更新方法 Pending JP2002024037A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000201179A JP2002024037A (ja) 2000-07-03 2000-07-03 ダイナミック・リンク・ライブラリ・ファイルの更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000201179A JP2002024037A (ja) 2000-07-03 2000-07-03 ダイナミック・リンク・ライブラリ・ファイルの更新方法

Publications (1)

Publication Number Publication Date
JP2002024037A true JP2002024037A (ja) 2002-01-25

Family

ID=18698917

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000201179A Pending JP2002024037A (ja) 2000-07-03 2000-07-03 ダイナミック・リンク・ライブラリ・ファイルの更新方法

Country Status (1)

Country Link
JP (1) JP2002024037A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334821A (ja) * 2006-06-19 2007-12-27 Trinity Security Systems Inc アプリケーション保護装置、アプリケーション保護方法およびアプリケーション保護プログラム
CN100451965C (zh) * 2005-12-07 2009-01-14 英业达股份有限公司 动态升级程序的方法
WO2011111249A1 (ja) * 2010-03-10 2011-09-15 株式会社日立製作所 仮想計算機システム及び仮想計算機の制御方法
JP2015527676A (ja) * 2012-09-12 2015-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation パッチングのための方法および装置
CN108427571A (zh) * 2018-02-07 2018-08-21 深圳市雁联计算系统有限公司 一种动态链接库更新方法及服务器

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100451965C (zh) * 2005-12-07 2009-01-14 英业达股份有限公司 动态升级程序的方法
JP2007334821A (ja) * 2006-06-19 2007-12-27 Trinity Security Systems Inc アプリケーション保護装置、アプリケーション保護方法およびアプリケーション保護プログラム
WO2011111249A1 (ja) * 2010-03-10 2011-09-15 株式会社日立製作所 仮想計算機システム及び仮想計算機の制御方法
JP2011186915A (ja) * 2010-03-10 2011-09-22 Hitachi Ltd 仮想計算機システム及び仮想計算機の制御方法
JP2015527676A (ja) * 2012-09-12 2015-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation パッチングのための方法および装置
US10241813B2 (en) 2012-09-12 2019-03-26 International Business Machines Corporation Method and apparatus for patching
CN108427571A (zh) * 2018-02-07 2018-08-21 深圳市雁联计算系统有限公司 一种动态链接库更新方法及服务器

Similar Documents

Publication Publication Date Title
US6247024B1 (en) Method and system for performing deferred file removal in a file system
US7493314B2 (en) System and method for providing access to computer files across computer operating systems
US5603020A (en) Method for detecting file names by informing the task of the identification of the directory antecedent to the file
US5778389A (en) Method and system for synchronizing computer file directories
JP2505112B2 (ja) トランザクション管理方法
US7703090B2 (en) Patch un-installation
CA2465880C (en) Operating system abstraction and protection layer
US5930503A (en) System and method for on demand registration of tasks
US8112745B2 (en) Apparatus and method for capabilities verification and restriction of managed applications in an execution environment
US7886270B2 (en) Methods, systems, and computer program products for file version control management
JPH0619765A (ja) コンピュータシステムにおけるファイル管理方法及びファイル管理システム
EP1194851A1 (en) Restoration of a computer to a previous working state
US8561050B2 (en) Method and system for updating an application
US8918370B2 (en) Dynamic allocation of program libraries
US6336215B1 (en) Apparatus and method for on-line code only replacement of a running program using checkpoints
JP2002024037A (ja) ダイナミック・リンク・ライブラリ・ファイルの更新方法
US6681325B1 (en) Providing disk layout information to an operating system for booting after disk repartitioning
JP3138575B2 (ja) フアイル複写移行方式
JP2001101053A (ja) トランザクション管理方法及びトランザクション管理装置
JP2000315192A (ja) クライアントサーバシステム、サーバ、アプリケーション管理方法及び記録媒体
US20200379777A1 (en) Automatic hydration of feature file batches
JPH0895772A (ja) 計算機システム及びプログラム置換方法
US11340883B2 (en) Installing, updating or reconfiguring an application without disabling a write filter
CA2375517A1 (en) Method and apparatus to rename open files
JPH03196222A (ja) プログラム入替え方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040907

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041130