JP2003525494A - Apparatus and method for swapping devices during operation of a computer - Google Patents

Apparatus and method for swapping devices during operation of a computer

Info

Publication number
JP2003525494A
JP2003525494A JP2001563993A JP2001563993A JP2003525494A JP 2003525494 A JP2003525494 A JP 2003525494A JP 2001563993 A JP2001563993 A JP 2001563993A JP 2001563993 A JP2001563993 A JP 2001563993A JP 2003525494 A JP2003525494 A JP 2003525494A
Authority
JP
Japan
Prior art keywords
controller
computer system
node
module
enumerator
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
JP2001563993A
Other languages
Japanese (ja)
Inventor
アライ,ススム
Original Assignee
フィーニックス テクノロジーズ リミテッド
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 フィーニックス テクノロジーズ リミテッド filed Critical フィーニックス テクノロジーズ リミテッド
Publication of JP2003525494A publication Critical patent/JP2003525494A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Abstract

(57)【要約】 コンピュータ・システム内のデバイスを交換するためのシステムにより、コンピュータ・システムの動作中またはスリープ状態の間に、ユーザがデバイスの交換を行うことが可能となる。このシステムは、コンピュータ・システムを再始動またはリブートせずに、新たに追加したデバイスを認識し、アクセスし、使用することが可能である。 Summary A system for exchanging devices in a computer system allows a user to exchange devices while the computer system is operating or in a sleep state. The system can recognize, access, and use the newly added device without restarting or rebooting the computer system.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】 (発明の分野) 本発明は一般に、デバイスをコンピュータと相互接続する分野に関し、より詳
細には、コンピュータの動作中に、コンピュータと相互接続されたデバイスをス
ワップまたは変更することに関する。
FIELD OF THE INVENTION The present invention relates generally to the field of interconnecting devices with computers, and more particularly to swapping or modifying devices interconnected with a computer while the computer is operating.

【0002】 (発明の背景) 完全「プラグアンドプレイ」のオペレーティング・システムとデバイスは、ユ
ーザが積極的な関与をほとんど、あるいは全くすることなく、デバイスの追加お
よび除去を扱うことができる。その結果、完全「プラグアンドプレイ」のシステ
ムにより、あまり熟達していないユーザが、容易かつシームレスにデバイスをイ
ンストールおよびスワップすることが可能となり、ユーザは、ソフトウェアを理
解し、またはプログラミング能力を有する必要がない。
BACKGROUND OF THE INVENTION Full "plug and play" operating systems and devices can handle device additions and removals with little or no active user involvement. As a result, a full "plug and play" system allows less-experienced users to easily and seamlessly install and swap devices, requiring them to understand software or have programming capabilities. There is no.

【0003】 各オペレーティング・システム内には、コンピュータのリソースのすべてと適
切に通信することができるように、コンピュータ内に含まれるデバイスを発見し
、初期化するための一連のドライバが存在する。Windows(登録商標)9
5または98(Microsoft Corporationの製品)などのオ
ペレーティング・システムの場合、オペレーティング・システムのインストール
中または起動中にドライバが始動したときに、ドライバは、コンピュータに接続
されたデバイスを列挙または認識する。しかし、一部のデバイスの場合、その関
連するデバイス・ドライバは、完全には「プラグアンドプレイ」可能ではない。
これらのドライバの例には、ハード・ディスク・ドライブ用のIDEドライバや
、フロッピィ・ドライブ用のフロッピィ・ドライバが含まれる。これらのドライ
バは完全には「プラグアンドプレイ」可能ではないので、これらのデバイスのド
ライバは、実行時にデバイスを列挙することができない。
Within each operating system is a set of drivers for discovering and initializing the devices contained within a computer so that it can properly communicate with all of the computer's resources. Windows (registered trademark) 9
For operating systems such as 5 or 98 (a product of Microsoft Corporation), the driver enumerates or recognizes devices attached to the computer when the driver is started during the installation or boot of the operating system. However, for some devices, their associated device drivers are not completely "plug and play".
Examples of these drivers include IDE drivers for hard disk drives and floppy drivers for floppy drives. The drivers for these devices cannot enumerate the devices at run time because these drivers are not completely "plug and play" capable.

【0004】 この制限のために、これらのオペレーティング・システムは、システムの動作
中(ホット・スワッピング)またはスリープ状態の間(ウォーム・スワッピング
)に、ハード・ドライブ、CD−ROMドライブ、およびフロッピィ・ドライブ
などの完全「プラグアンドプレイ」であるドライバを有さないデバイスのスワッ
プをサポートすることができない。逆に、これらのデバイスのうち1つを別のデ
バイスにスワップまたは交換すると、ユーザはコンピュータを再始動またはリブ
ートすることが必要となる。この要件はどちらも時間がかかり、ユーザにとって
不便である。
Due to this limitation, these operating systems allow hard drives, CD-ROM drives, and floppy drives to operate during system operation (hot swapping) or during sleep states (warm swapping). It cannot support swapping devices that do not have drivers that are fully "plug and play" such as. Conversely, swapping or replacing one of these devices with another would require the user to restart or reboot the computer. Both of these requirements are time consuming and inconvenient for the user.

【0005】 (発明の概要) 簡潔には、本発明は、コンピュータ・システム内に存在する第1デバイスを列
挙して、第1デバイスをコンピュータ・システムに対して認識可能とする方法で
あって、コンピュータ・システムが、メモリと、メモリ内に格納されたデータ構
造を使用してコンピュータ・システムの作動構成を確立するオペレーティング・
システムとを有し、データ構造が、コンピュータ・システム内に存在する各デバ
イスに対応する1つまたは複数のデバイス・ノードを有し、コンピュータ・シス
テムの動作中に、第1デバイスがコンピュータ・システム内に挿入されたという
表示をオペレーティング・システムに供給するステップと、この表示に応答して
、第1デバイスを制御するためのコントローラを列挙するステップと、第1デバ
イス・コントローラの列挙に応答して、第1デバイス・コントローラに関連する
ドライバを初期化するステップと、初期化したドライバを用いて、第1デバイス
・コントローラに関連するエニュメレータの位置を突き止めるステップと、位置
を突き止めたエニュメレータと共に第1デバイスを列挙するステップとを含み、
第1デバイス・コントローラに関連するドライバが、初期化されたときに、第1
デバイス・コントローラに関連するエニュメレータの位置を突き止めることだけ
が可能である方法を含む。
SUMMARY OF THE INVENTION Briefly, the present invention is a method for enumerating a first device present in a computer system and making the first device recognizable to the computer system, An operating system in which a computer system uses memory and data structures stored in the memory to establish the operating configuration of the computer system.
And a data structure having one or more device nodes corresponding to each device present in the computer system, the first device being in the computer system during operation of the computer system. Inserting an indication to the operating system that it has been inserted into the operating system, enumerating the controllers for controlling the first device in response to the indication, and responsive to enumerating the first device controllers, Initializing the driver associated with the first device controller, locating the enumerator associated with the first device controller using the initialized driver, and determining the first device with the located enumerator And enumerating steps,
When the driver associated with the first device controller is initialized, the first
It includes methods in which it is only possible to locate the enumerator associated with the device controller.

【0006】 この方法の別の態様では、第1デバイスを接続するステップの前に、この方法
は、コンピュータ・システム内の第2デバイスが現在アクセスされているかどう
かを判定するステップと、データ構造から、第2デバイスに対応するデバイス・
ノードと、第2デバイスを制御するためのコントローラに対応するデバイス・ノ
ードとを除去するステップと、第2デバイスと第2デバイス・コントローラとの
間で伝送される任意のデータ信号を、第2デバイス・コントローラから第2デバ
イスに送られることから分離するステップと、第2デバイスの電源をオフするス
テップとをさらに含む。
In another aspect of this method, prior to connecting the first device, the method determines from a data structure, a step of determining whether a second device in the computer system is currently being accessed. , The device corresponding to the second device
Removing the node and the device node corresponding to the controller for controlling the second device, and providing any data signal transmitted between the second device and the second device controller to the second device. Further comprising the steps of separating from being sent from the controller to the second device, and powering off the second device.

【0007】 この方法のさらに別の態様では、第2デバイスおよび第2デバイス・コントロ
ーラに対応するデバイス・ノードを除去するステップが、第2デバイスおよび第
2デバイス・コントローラに関連するすべてのドライバをアンロードするサブス
テップを含む。
In yet another aspect of the method, removing the device node corresponding to the second device and the second device controller removes all drivers associated with the second device and the second device controller. Includes loading substeps.

【0008】 本発明の別の態様では、コンピュータ・プログラム製品が、コンピュータ・シ
ステム内に存在する第1デバイスを列挙して、第1デバイスをコンピュータ・シ
ステムに対して認識可能にするための、コンピュータ可読プログラム・コード・
モジュールが埋め込まれているコンピュータ利用可能媒体であって、コンピュー
タ・システムが、メモリと、前記メモリ内に格納されたデータ構造を使用してコ
ンピュータ・システムの作動構成を確立するオペレーティング・システムとを有
し、データ構造が、コンピュータ・システム内に存在するデバイスに対応する1
つまたは複数のデバイス・ノードを有するコンピュータ利用可能媒体を備え、こ
のコンピュータ・プログラム製品は、コンピュータ・システムの動作中に第1デ
バイスをコンピュータ・システム内に挿入した後、第1デバイスを制御するコン
トローラを列挙する第1列挙モジュールと、第1デバイス・コントローラの列挙
に応答して、第1デバイス・コントローラに関連するドライバを初期化する初期
化モジュールと、初期化したドライバを用いて、第1デバイス・コントローラに
関連するエニュメレータを識別するロケータ・モジュールと、第1デバイス・コ
ントローラに関連する、位置を突き止めたエニュメレータと共に、第1デバイス
を列挙する第2列挙モジュールとを有し、第1デバイス・コントローラに関連し
たドライバは、初期化されたときに、第1デバイス・コントローラに関連するエ
ニュメレータの位置を突き止めることだけが可能である。
In another aspect of the invention, a computer program product for enumerating a first device present in a computer system to make the first device visible to the computer system. Readable program code
A computer usable medium in which a module is embedded, the computer system having a memory and an operating system for establishing a working configuration of the computer system using data structures stored in the memory. And the data structure corresponds to the device present in the computer system 1
A computer usable medium having one or more device nodes, the computer program product comprising a controller for controlling a first device after the first device is inserted into the computer system during operation of the computer system. A first enumeration module that enumerates the first device controller and an initialization module that initializes a driver associated with the first device controller in response to enumerating the first device controller; A first device controller having a locator module identifying an enumerator associated with the controller, and a second enumeration module enumerating the first device with a located enumerator associated with the first device controller Drivers related to When it is, it is only possible to locate the enumerator associated with the first device controller.

【0009】 (好ましい実施形態の詳細な説明) 本発明を特定の実施形態の状況下で説明するが、本発明は、それに限定されな
いものとする。
Detailed Description of the Preferred Embodiments The present invention will be described in the context of particular embodiments, but the invention is not intended to be limited thereto.

【0010】 図1に、本発明に適合するコンピュータ・システム10の構成要素の構成を示
す。図1に示すように、コンピュータ・システム10は、構成マネージャ20、
複数のデバイスまたはリソース30、レジストリ40、デブノード・ツリー(de
vnode tree)50、およびデバイス・ドライバ記憶域60を含む。上述の要素を
理解するために、定義を参照されたい。コンピュータ・システム10は、プラグ
アンドプレイ・フレームワーク内で実装されることが好ましい。図1には図示し
ていないが、コンピュータ・システム10は、プロセッサ、メモリ、モニタ、お
よび入力デバイスなどの他の要素を含む。入力デバイスは、キーボードまたはポ
インティング・デバイスなどである。当技術分野で周知の通り、追加の要素をコ
ンピュータ・システム10に含めることもできる。
FIG. 1 shows the configuration of the components of a computer system 10 according to the present invention. As shown in FIG. 1, the computer system 10 includes a configuration manager 20,
Multiple devices or resources 30, registry 40, fat node tree (de
vnode tree) 50, and device driver storage 60. See the definitions to understand the above elements. Computer system 10 is preferably implemented within a Plug and Play framework. Although not shown in FIG. 1, computer system 10 includes other elements such as a processor, memory, monitor, and input device. The input device is a keyboard or a pointing device. Additional elements may be included in computer system 10 as is well known in the art.

【0011】 以下は、コンピュータ・システム10内のこれらの要素に関する定義である。
「構成マネージャ」20は、仮想デバイス・ドライバ(VxD)として実装する
ことができるものであり、プラグアンドプレイ・フレームワークの中心的な構成
要素である。VxDは、特にWindows95および98用にフォーマットさ
れたドライバである。DLLおよびDOS TSRフォーマットを含む他のドラ
イバも可能である。構成マネージャ20は、コンピュータ・システム10内のす
べての構成管理を指示する。構成管理を指示するために、構成マネージャ20は
、レジストリ40、デブノード・ツリー50、およびデバイス・ドライバ記憶域
60の3つのデータ・ストアを使用することができ、エニュメレータ(enumerato
r)、アービトレータ、デバイス・ローダ、およびデバイス・ドライバの4つのソ
フトウェア・コンポーネントを扱うことができる。
The following are definitions for these elements within computer system 10.
The "configuration manager" 20, which can be implemented as a virtual device driver (VxD), is a central component of the Plug and Play framework. VxD is a driver specifically formatted for Windows 95 and 98. Other drivers are possible, including DLL and DOS TSR formats. The configuration manager 20 directs all configuration management within the computer system 10. To direct configuration management, the configuration manager 20 can use three data stores: a registry 40, a devnode tree 50, and a device driver storage 60, and an enumerato.
r), arbitrator, device loader, and device driver.

【0012】 「エニュメレータ」は、どのハードウェア・デバイスが現在コンピュータ・シ
ステム10内にインストールされており、どのリソースが必要かを判定する。し
たがって、列挙(エニューメレーション:enumeration)は、デバイスの発見または
識別である。構成マネージャ20と同様に、エニュメレータは、VxDとして実
装することもできる。各デバイスを識別した後、エニュメレータは、「デバイス
・ノード」を生成する。デバイス・ノードは、識別したデバイスについての基本
的な情報を含むデータ構造である。デバイス・ノードは、可能な構成、現在の構
成、ステータス情報、およびデバイスに対するドライバを示すフィールドを含む
ことができる。
An “enumerator” determines which hardware devices are currently installed in computer system 10 and which resources are needed. Thus, enumeration is the discovery or identification of devices. Like the configuration manager 20, the enumerator can also be implemented as VxD. After identifying each device, the enumerator creates a "device node". A device node is a data structure that contains basic information about the identified device. The device node may include fields that indicate possible configurations, current configurations, status information, and drivers for the devices.

【0013】 エニュメレータが新しいデバイスを識別した後、「デバイス・インストーラ」
と呼ばれるモジュールが「レジストリ」40内に新しいエントリを作成する。レ
ジストリ40は、これまでにコンピュータ・システム10内にインストールされ
た各デバイスについてのキーおよび値を含むエントリの階層ツリーを格納する。
各エントリに対するキーは、それぞれのデバイスに対する識別であり、各エント
リ中の値は、デバイスのタイプおよびその説明、列挙したときにどのドライバを
特定のデバイスに対してロードすべきか、ドライバ改訂番号、製造業者、および
デバイスの潜在的論理構成についての情報を含む。値に関する情報は、ベンダに
よりデバイスと共に供給されるデバイス情報ファイルから得ることができ、また
はそのデバイス自体から得ることができる。「デバイス情報ファイル」は、周知
のデバイスおよびその構成についての情報を含む。システム内にインストールさ
れたデバイスに関するデバイス・ノードを作成するために、エニュメレータは、
レジストリ40内の、デバイスに関するエントリに対応する情報を使用すること
ができる。
After the enumerator identifies the new device, "Device Installer"
Module creates a new entry in the "registry" 40. The registry 40 stores a hierarchical tree of entries including keys and values for each device that has been installed in the computer system 10 so far.
The key for each entry is an identification for each device, and the value in each entry is the type of device and its description, which driver should be loaded for a particular device when enumerated, driver revision number, manufacturing Contains information about the vendor and potential logical configuration of the device. Information about the value can be obtained from the device information file supplied by the vendor with the device, or it can be obtained from the device itself. The "device information file" contains information about known devices and their configurations. To create device nodes for the devices installed in your system, the enumerator
The information in registry 40 corresponding to the entry for the device can be used.

【0014】 エニュメレータによって作成された各デバイス・ノードは、「デブノード・ツ
リー」50内に配置される。デブノード・ツリー50は、コンピュータ・システ
ム10内に存在するハードウェアのすべてを記述する、デバイス・ノードの階層
ツリーである。デブノード・ツリー内の階層は、各デバイス・ノードを制御する
デバイスに関するデバイス・ノードの下の階層内にこれらのデバイス・ノードが
配置され、それによって制御の表示が与えられるように構築される。例えば、バ
スによって制御される各デバイスに関するデバイス・ノードは、バスに関するデ
バイス・ノードの下に配置される。バスに関するデバイス・ノードのようなデバ
イス・ノードは親ノードと呼ばれ、バスに接続されるデバイスのような、親ノー
ドによって制御されるデバイス・ノードは、子ノードと呼ばれる。
Each device node created by the enumerator is placed in a “dev node tree” 50. The fat node tree 50 is a hierarchical tree of device nodes that describes all of the hardware present in the computer system 10. The hierarchy in the fat node tree is constructed such that these device nodes are placed in a hierarchy below the device node for the device controlling each device node, thereby providing an indication of control. For example, the device node for each device controlled by the bus is located below the device node for the bus. A device node such as a device node for a bus is called a parent node, and a device node controlled by the parent node, such as a device connected to the bus, is called a child node.

【0015】 エニュメレータがデバイスを識別し、そのデバイス・ノードを作成した後、構
成マネージャ20は、そのデバイスに関連する「デバイス・ローダ」を呼び出す
。デバイス・ローダは、VxDとして実装することができるものであり、所与の
デバイス・ノードに対するデバイス・ドライバおよびエニュメレータをロードし
、管理する。デバイス・ローダは一般に、デバイスが様々な層のデバイス・ドラ
イバによって管理されるときに使用される。デバイス・ローダは、様々な層の動
作を調整し、すべてのデバイス・ドライバに当てはまる一般的な構成タスクを実
施する。
After the enumerator identifies the device and creates its device node, the configuration manager 20 calls the “device loader” associated with the device. A device loader, which can be implemented as a VxD, loads and manages device drivers and enumerators for a given device node. Device loaders are commonly used when devices are managed by various layers of device drivers. The device loader coordinates the various layers of operation and performs common configuration tasks that apply to all device drivers.

【0016】 「デバイス・ドライバ」はデバイス・ハードウェアを制御し、管理する。デバ
イス・ドライバは、所与のデバイスに特有のリソース要件を識別すること、およ
び構成マネージャ20によって割り当てられた構成で動作するようにデバイスを
設定することを担当する。コンピュータ・システム10内にインストールされた
すべてのデバイス30に関するデバイス・ドライバは、デバイス・ドライバ記憶
域60内に格納することができる。
A “device driver” controls and manages device hardware. The device driver is responsible for identifying the resource requirements specific to a given device and configuring the device to operate in the configuration assigned by the configuration manager 20. Device drivers for all devices 30 installed in computer system 10 may be stored in device driver storage 60.

【0017】 最後に、「アービトレータ」は、やはりVxDとして実装することができるも
のであり、デバイス30の間のリソースの競合を解決するために構成マネージャ
20によって使用される。アービトレータは、コンピュータ・システム10内に
インストールされたデバイス30に対する要件のリストを検討し、すべてのデバ
イスを満たすような最良のリソースの割振りを見つける。アービトレータは、入
出力(I/O)アドレス、メモリ・アドレス、割込み要求(IRQ)、および直
接メモリ・アクセス(DMA)チャネルを含む、コンピュータ・システム10内
のいくつかのリソースに対して競合のない割当てを行う。
Finally, an “arbitrator”, which can also be implemented as VxD, is used by the configuration manager 20 to resolve resource contention among devices 30. The arbitrator reviews the list of requirements for the devices 30 installed in the computer system 10 and finds the best resource allocation to meet all devices. The arbitrator is contention-free for some resources within computer system 10, including input / output (I / O) addresses, memory addresses, interrupt request (IRQ), and direct memory access (DMA) channels. Make an assignment.

【0018】 アービトレータ、エニュメレータ、レジストリ、デブノード・ツリー、構成マ
ネージャ、およびデバイス・ローダは、Microsoft Corporat
ionのWindows95およびWindows98中のソフトウェアを含む
、様々なソフトウェア・ベンダによって供給されるソフトウェアの標準アイテム
であることに留意されたい。
Arbitrators, enumerators, registries, fat node trees, configuration managers, and device loaders are available from Microsoft Corporation.
Note that it is a standard item of software supplied by various software vendors, including software in Windows 95 and Windows 98 of Ion.

【0019】 以下は、コンピュータ・システム10内の構成マネージャ20によって使用さ
れるデータ・ストアおよびソフトウェア・コンポーネントのより詳細な説明であ
る。コンピュータ・システムの作動構成を確立するための構成単位は、デバイス
・ノードである。上記で指摘したように、デバイス・ノードは、システム上に物
理的に存在するデバイス30の基本的なメモリ内の表現である。デバイス・ノー
ドは、デバイスおよびそのドライバに関する情報を含むデータ構造である。デバ
イス・ノード内に格納される情報は、デバイス識別(ID)、その現在割り当て
られている構成、可能な論理構成、状況情報、およびデバイス・ドライバ・エン
トリ・ポイントを含む。上記で指摘したように、デバイス・ノードはエニュメレ
ータによって作成される。デバイス・ノードの作成に応答して、構成マネージャ
20は適切なドライバをロードする。
The following is a more detailed description of the data stores and software components used by the configuration manager 20 in the computer system 10. The building block for establishing the operating configuration of a computer system is the device node. As pointed out above, a device node is a basic in-memory representation of a device 30 that physically resides on the system. A device node is a data structure that contains information about a device and its driver. The information stored in the device node includes the device identification (ID), its currently assigned configuration, possible logical configurations, status information, and device driver entry points. As pointed out above, device nodes are created by enumerators. In response to creating the device node, the configuration manager 20 loads the appropriate driver.

【0020】 デバイス・ノード・データ構造内で使用される「デバイスID」は、コンピュ
ータ・システム10内に含まれる可能性がある各デバイス30に固有のASCI
I文字列である。この文字列により、一般に、デバイスを見つけた構成要素が識
別される。この文字列は、レジストリ40中のキーとしての役割も果たすので、
デバイスについての情報を確実に取り出すことができるように、コンピュータ・
システム10内で一意でなければならない。この文字列を使用して、レジストリ
40内に格納された、デバイスについてのデータを相互参照することができる。
The “device ID” used in the device node data structure is an ASCI unique to each device 30 that may be included in the computer system 10.
It is an I character string. This string typically identifies the component that found the device. Since this character string also serves as a key in the registry 40,
To ensure that you can retrieve information about your device,
Must be unique within system 10. This string can be used to cross-reference data stored in the registry 40 about the device.

【0021】 以下はデバイスIDの例である: Root\PNP0000\0; IS
APNP\ADP1522_DEV0000\E8124123; BIOS\ PNP0100\0; およびPCMCIA\MEGAHERTZ−XJ12
4FM−936B。この例からわかるように、IDの第1部分により、デバイス
を見つけた構成要素が識別される。例えば、ISAPNPは、プラグアンドプレ
イ・デバイス用のISAバスに対応する。デバイスIDに関するこの命名方式は
、バス固有の命名方式である。
[0021]   The following is an example of a device ID: Root \*PNP0000 \ 0; IS
APNP \ ADP1522_DEV0000 \ E8124123; BIOS \ * PNP0100 \ 0; and PCMCIA \ MEGAHERTZ-XJ12
4FM-936B. As can be seen from this example, the first part of the ID
The component that finds is identified. For example, ISAPNP is a plug and play
It corresponds to the ISA bus for a device. This naming scheme for device ID is
, Is a bus-specific naming system.

【0022】 上記で論じたように、エニュメレータは、インストールしたハードウェアを識
別し、デバイス・ノードを作成する構成要素である。コンピュータ・システム1
0では、各バスは、それぞれのバス上のデバイスの位置を突き止めるための、構
成マネージャ20によって呼び出されるエニュメレータを含む。これらのバスに
は、PCI、EISA、PCMCIA、SCSI、および他のバスが含まれる。
これらのバス上のデバイスは一般に、プラグアンドプレイを完全にサポートする
ように構成される。ISAバスもプラグアンドプレイをサポートするように構成
することができ、それはISAPNPバスと呼ばれる。バス上で識別されるデバ
イスに対するデバイス・ノードは、デブノード・ツリー50上に子ノードを作成
するために、それ自体のエニュメレータを有することができる。これらの子デバ
イス・ノードのいずれも、デブノード・ツリー50上にそのデバイス・ノードの
次の子デバイス・ノードを作成するエニュメレータを有することができる。
As discussed above, an enumerator is a component that identifies installed hardware and creates device nodes. Computer system 1
At 0, each bus contains an enumerator called by the configuration manager 20 to locate the device on the respective bus. These buses include PCI, EISA, PCMCIA, SCSI, and other buses.
Devices on these buses are generally configured to fully support Plug and Play. The ISA bus can also be configured to support Plug and Play, which is called the ISAPNP bus. A device node for a device identified on the bus may have its own enumerator to create child nodes on the fat node tree 50. Any of these child device nodes can have an enumerator on the fat node tree 50 that creates the next child device node of that device node.

【0023】 レガシー・デバイスと呼ばれることもある、プラグアンドプレイ可能でない標
準ISAバス用に構成されたデバイスを識別するために、構成マネージャ20は
、エニュメレータの代わりに検出モジュールを使用することができる。検出モジ
ュールは、キーボードまたは割込みコントローラなどのデバイスを検出するため
の期待値を求めてハード・コード化I/O位置を検査するなど、レガシー・デバ
イスを識別するための方法を使用することができる。
The configuration manager 20 may use a detection module instead of an enumerator to identify devices configured for the standard ISA bus, which are sometimes referred to as legacy devices. The detection module may use methods for identifying legacy devices, such as checking hard coded I / O locations for expected values to detect devices such as keyboards or interrupt controllers.

【0024】 エニュメレータは、位置を突き止めたデバイスに対するデバイスIDを作成す
ることを担当する。上記で指摘したように、各識別子は一意であるべきであり、
各システム・ブートに対して常に同じであるべきである。文字列は、レジストリ
40中の固有エントリを識別するために使用することができるように構築すべき
である。文字列は一般に、エニュメレータの名前で開始し、その後にバックスラ
ッシュが続く。例えば、ISAプラグアンドプレイ・エニュメレータは、すべて
のデバイス識別子を「ISAPNP\」で始めることができる。
The enumerator is responsible for creating the device ID for the located device. As pointed out above, each identifier should be unique,
Should always be the same for each system boot. The string should be constructed so that it can be used to identify a unique entry in the registry 40. The string generally starts with the name of the enumerator, followed by a backslash. For example, the ISA Plug and Play enumerator can start all device identifiers with "ISAPNP \".

【0025】 エニュメレータは、デブノード・ツリー50を構築し、それぞれのエニュメレ
ータに関連するバス上のデバイス30の構成に参加することができる。大部分の
オペレーティング・システムでは、列挙プロセスは、コンピュータが起動するた
びに行われる。列挙プロセスの終了時に、デブノード・ツリー50は、利用可能
なシステム・リソース、必要なデバイス・ドライバ、およびそのリソースに対す
る他の要件についての情報を含む。
The enumerators can build a fat node tree 50 and participate in configuring devices 30 on the bus associated with each enumerator. In most operating systems, the enumeration process occurs every time the computer boots. At the end of the enumeration process, the fat node tree 50 contains information about available system resources, required device drivers, and other requirements for that resource.

【0026】 デブノード・ツリー50は、コンピュータ・システム10内のハードウェアの
構造を表すデバイス・ノードの階層ツリーである。したがって、デバイス・ノー
ドは、デブノード・ツリー50のルートにあるか、または親デバイス・ノードの
子である。デバイス・ノードは、複数の子デバイス・ノードを有することができ
る。デバイス・ノードの親の他の子は兄弟と呼ばれる。デブノード・ツリー50
は、コンピュータが起動する度に構築される。さらに、デバイス30がコンピュ
ータ・システム10から除去され、またはコンピュータ・システム10に加えら
れた場合に、コンピュータが動作中であってもデブノード・ツリー50を完全に
動的に変更することもできる。
The fat node tree 50 is a hierarchical tree of device nodes representing the structure of hardware in the computer system 10. Therefore, the device node is at the root of the fat node tree 50 or is a child of the parent device node. A device node can have multiple child device nodes. The other children of the device node's parent are called siblings. Fat node tree 50
Is built every time the computer boots. Further, if the device 30 is removed from or added to the computer system 10, the fat node tree 50 may be completely dynamically modified even when the computer is running.

【0027】 デブノード・ツリー50により、コンピュータ・システム10に関するいくつ
かの機能が提供される。まず、デブノード・ツリー50により、コンピュータ・
システム10内に存在するすべてのハードウェアが記述される。加えて、デブノ
ード・ツリー50により、エニュメレータがその子のハードウェアを構成する機
構が提供され、バス独立なドライバが可能となる。各バスに関するエニュメレー
タが、バスによって制御されるデバイスを、他のバスとは無関係に識別し、構成
することができるので、ドライバをバス独立にすることができる。通常、ドライ
バは、ツリー内のそれ自体の正確な位置について認識せず、それについて考慮し
ない。ドライバは一般に、それ自体のハードウェア・デバイスまたはデバイス・
ノードにのみ注目し、ツリー内の上層または下層は認識しない。
The fat node tree 50 provides several functions for the computer system 10. First, by using the fat node tree 50,
All hardware present in system 10 is described. In addition, the devnode tree 50 provides a mechanism by which an enumerator configures its child's hardware, allowing a bus-independent driver. Drivers can be bus independent because the enumerator for each bus can identify and configure the devices controlled by the bus independently of the other buses. Usually, the driver is unaware of its exact position in the tree and does not consider it. A driver is typically its own hardware device or device
Focus only on nodes, not the top or bottom layers in the tree.

【0028】 デブノード・ツリー50は、コンピュータ・システム10内のすべてのデバイ
ス30に関する構成情報を含み、構成マネージャ20はそれを使用して、割込み
要求(IRQ)、入出力(I/O)ポート、さらにはSCSI識別子のような共
用不能リソースなど、各デバイス30に関連するリソースを追跡する。デブノー
ド・ツリー50は、存在するデバイスおよびリソース、リソース要件、リソース
相互依存性、および現リソース割振りを記述する。
The devnode tree 50 contains configuration information for all devices 30 in the computer system 10, which the configuration manager 20 uses to request interrupt requests (IRQ), input / output (I / O) ports, Furthermore, it tracks resources associated with each device 30, such as non-sharable resources such as SCSI identifiers. The fat node tree 50 describes existing devices and resources, resource requirements, resource interdependencies, and current resource allocations.

【0029】 表Iに、いくつかの典型的なデバイスのデバイスIDを示すデブノード・ツリ
ーの例を示す。これらのデバイスは、このデブノード・ツリーの階層内で見つか
ると考えられる。デバイスID以外の各デバイス・ノードの実際の内容は示して
いない。
Table I shows an example of a fat node tree showing the device IDs of some typical devices. These devices are believed to be found within the hierarchy of this fat node tree. The actual contents of each device node other than the device ID are not shown.

【表1】 [Table 1]

【0030】 表Iに示すように、Rootノードは、Sound Blasterおよびプ
ラグアンドプレイBIOSに対する親ノードである。プラグアンドプレイBIO
Sは、一連の子ノードを有する。プラグアンドプレイBIOSに関するエニュメ
レータは、これらの各デバイスを識別し、各デバイスに関するデバイス・ノード
を作成する。ただし、各デバイス・ノードは、プラグアンドプレイBIOSデバ
イス・ノードに対する子である。上記で論じたように、この階層構造は、これら
の各子ノードがプラグアンドプレイBIOSによって制御されることを示す。同
様に、PCMCIAコントローラに関するエニュメレータは、PCMCIAコン
トローラによって制御されるネットワーク・アダプタを識別し、ネットワーク・
アダプタに関するデバイス・ノードを、PCMCIAコントローラに対する子ノ
ードとして作成することになる。
As shown in Table I, the Root node is the parent node for Sound Blaster and Plug and Play BIOS. Plug and Play BIO
S has a series of child nodes. The plug and play BIOS enumerator identifies each of these devices and creates a device node for each device. However, each device node is a child to the Plug and Play BIOS device node. As discussed above, this hierarchical structure indicates that each of these child nodes is controlled by the Plug and Play BIOS. Similarly, the enumerator for the PCMCIA controller identifies the network adapter controlled by the PCMCIA controller and
The device node for the adapter will be created as a child node to the PCMCIA controller.

【0031】 コンピュータ・システム10はまた、レジストリ40および(.INFファイ
ル名拡張子を有する)様々なデバイス情報ファイルも使用し、それらを拡張する
。レジストリ40は、特定のマシン上にこれまでにインストールされた、レガシ
ー・デバイスなどの完全にはプラグアンドプレイ可能でないデバイスを含むすべ
てのデバイス30についての情報を格納する。レジストリ40はまた、エニュメ
レータによって位置を突き止められたプラグアンドプレイ・デバイスについての
情報、デバイス特有の状態情報、デバイス・ドライバへのデバイスの結び付け、
および直前の周知の構成に関するデータも格納する。直前の周知の構成について
のデータは、リソースの割振りを加速するために使用される。
Computer system 10 also uses and extends the registry 40 and various device information files (having a .INF filename extension). The registry 40 stores information about all devices 30 that have ever been installed on a particular machine, including devices that are not fully Plug and Play capable, such as legacy devices. The registry 40 also provides information about the Plug and Play device located by the enumerator, device specific status information, binding of the device to device drivers,
And data about the last known configuration. The data about the last known configuration is used to accelerate the allocation of resources.

【0032】 上記で指摘したデバイス情報ファイルは、周知のデバイスとその構成について
の情報を含む。コンピュータ・システム10は、あるクラス情報ファイル(例え
ばSCSI.INFおよびMODEM.INF)を用いることができる。他のク
ラス情報ファイルはデバイスの製造業者によって提供される。新しいデバイスが
エニュメレータによって検出または列挙されたとき、そのデバイスIDに一致す
るエントリを求めて、すべての周知の.INFファイルが検索される。一致が見
つかったとき、適切なファイルがコピーされ、必要なデータが、レジストリ40
内の新たに作成されたレジストリ・エントリ中に複写される。
The device information file pointed out above contains information about known devices and their configurations. Computer system 10 may use certain class information files (eg, SCSI.INF and MODEM.INF). Other class information files are provided by the device manufacturer. When a new device is detected or enumerated by the enumerator, all known. The INF file is searched. When a match is found, the appropriate file is copied and the required data is stored in the registry 40
Copied into the newly created registry entry in.

【0033】 レジストリ40は、Windows95、Windows98、およびWin
dows NT(登録商標)で、Microsoft Win32(登録商標)
APIセットによってアクセスされるシステム共通データベースである。加えて
、Windows95およびWindows98により、レジストリ40への実
モード・アクセスが提供され、起動中に、保護モードに切り替わる前にレジスト
リ40を使用することが可能となる。先に指摘したように、レジストリ40は、
Windows 3.1フォーマットの.INIファイル内のエントリと類似の
(レジストリの木構造であるのに対して、Windows3.1の.INIファ
イルがフラットな構造を有することを除く)「キー」および「値」の階層ツリー
を格納する。オペレーティング・システムはレジストリ40を使用して、特定の
デバイスが列挙されたときにどのドライバをロードすべきかについての情報、な
らびにドライバ改訂番号、製造業者、およびデバイスの潜在的論理構成などの情
報を格納する。以下の表IIに、例示的レジストリ・エントリを示す。
The registry 40 includes Windows 95, Windows 98, and Win.
Dows NT (R), Microsoft Win32 (R)
It is a system common database accessed by an API set. In addition, Windows 95 and Windows 98 provide real mode access to the registry 40, allowing the registry 40 to be used during startup before switching to protected mode. As pointed out above, the registry 40
Windows 3.1 format. Stores a hierarchical tree of "keys" and "values" similar to the entries in the INI file (except that the .INI file in Windows 3.1 has a flat structure, which is a registry tree structure) . The operating system uses the registry 40 to store information about which driver to load when a particular device is enumerated, as well as information such as driver revision number, manufacturer, and potential logical configuration of the device. To do. Table II below shows exemplary registry entries.

【表2】 [Table 2]

【0034】 表II中のレジストリ・エントリは、特定のデバイスに関する、レジストリ4
0内に含めることができる情報の例を示す。この例では、デバイスはプログラマ
ブル割込みコントローラである。このデバイスに関する情報は、可能なブート構
成、このデバイスに関連するデバイス・ドライバ、固有ID、デバイスの情報フ
ァイルの名前、およびこのデバイスのデバイス・ドライバをロードするためのデ
バイス・ローダを含む。
The registry entries in Table II are the registry 4 for a particular device.
An example of information that can be included in 0 is shown. In this example, the device is a programmable interrupt controller. Information about this device includes the possible boot configuration, the device driver associated with this device, a unique ID, the name of the device's information file, and a device loader for loading the device driver for this device.

【0035】 大部分のプラグアンドプレイ・レジストリ・エントリは、レジストリ40のE
NUMツリー、すなわち\HKEY_LOCAL_MACHINE\ENUM内
に格納される。ENUMの下に、各エニュメレータはそれ自体のブランチを得て
、各エニュメレータがこれまでに列挙し、セットアップしたデバイスごとに1つ
の子をエニュメレータの下に有する。レガシー・デバイスなどの非プラグアンド
プレイ・ハードウェアに関するレジストリ・エントリを含むENUM\ROOT
と呼ばれる1つの特別なエニュメレータ・ブランチが存在する。非プラグアンド
プレイ・ハードウェアに関してはエニュメレータが存在しないが、上記で議論し
た他の手段を使用して非プラグアンドプレイ・ハードウェアを検出することがで
きる。例えば、オペレーティング・システムがインストールされたとき、検出モ
ジュールは、MSDET.INF情報ファイルなどの情報ファイル中のリストに
基づいてロードされる。プラグアンドプレイが完全には可能でないデバイスが検
出されたとき、そのデバイスについての情報がレジストリ40内の適切なデバイ
ス情報ファイルから取り出される。次いでこの情報は、レジストリ40内のHK
EY_LOCAL_MACHINE\ENUM\Rootブランチの下に作成さ
れた新しいノード内に格納される。
Most Plug and Play registry entries are in the registry 40 E
Stored in the NUM tree, \ HKEY_LOCAL_MACHINE \ ENUM. Under ENUM, each enumerator gets its own branch, and each enumerator has one child under the enumerator for each device it has enumerated and set up so far. ENUM \ ROOT containing registry entries for non-Plug and Play hardware such as legacy devices
There is one special enumerator branch called. There is no enumerator for non-Plug and Play hardware, but other means discussed above can be used to detect non-Plug and Play hardware. For example, when the operating system is installed, the detection module may be MSDET. It is loaded based on the list in the information file such as the INF information file. When a device is detected that is not completely Plug and Play capable, information about that device is retrieved from the appropriate device information file in the registry 40. This information is then sent to HK in the registry 40.
Stored in a new node created under the EY_LOCAL_MACHINE \ ENUM \ Root branch.

【0036】 エニュメレータまたは検出モジュールが、レジストリ40内にレジストリ・エ
ントリが存在しないデバイスを検出したときに、デバイス・インストーラは、レ
ジストリ40内に新しいエントリを作成する。情報の大部分はデバイスと共に供
給される.INFファイルによって供給されるか、またはデバイスのセットアッ
プ・モジュールによって直接供給される。レジストリ40はまた、構成特有の情
報も格納する。構成特有の情報は、収容可能なポータブル・コンピュータがドッ
キングされているか、それとも切り離されているかに関連する情報、ならびにユ
ーザ特有の情報である。
When the enumerator or detection module detects a device for which there is no registry entry in the registry 40, the device installer creates a new entry in the registry 40. Most of the information comes with the device. It is supplied by the INF file or directly by the device's setup module. The registry 40 also stores configuration-specific information. The configuration-specific information is information related to whether the portable computer that can be accommodated is docked or undocked, as well as user-specific information.

【0037】 デブノード・ツリー50とレジストリ40との区別は重要である。完全なプラ
グアンドプレイ・システムでは、デブノード・ツリー50は、現在インストール
されているデバイスの正確な階層表現である。それとは対照的に、レジストリ4
0は、それまでにインストールされたすべてのデバイス(そのデバイスが現在は
存在していない場合であっても)に関する情報を含む。レジストリ40内のデバ
イスの位置は、デブノード・ツリー50内に記述された階層構造を完全には反映
しない。レジストリ40では、デバイスはそのエニュメレータの下に位置するが
、すべてのエニュメレータはフラットなリスト内に保たれる。このことは、関連
するデバイスを識別するエニュメレータに従ってエニュメレータが階層構造内に
保たれないことを意味する。デブノード・ツリー50はメモリ内にのみ存在し、
一方レジストリ40はディスク上に保存される。
The distinction between the fat node tree 50 and the registry 40 is important. In a complete Plug and Play system, the fat node tree 50 is an exact hierarchical representation of the currently installed devices. In contrast, the registry 4
The 0 contains information about all previously installed devices (even if the device does not currently exist). The location of the device in the registry 40 does not fully reflect the hierarchical structure described in the fat node tree 50. In the registry 40, the device is located under its enumerator, but all enumerators are kept in a flat list. This means that the enumerator is not kept in a hierarchical structure according to the enumerator identifying the associated device. The fat node tree 50 exists only in memory,
On the other hand, the registry 40 is stored on the disk.

【0038】 先に指摘したように、デバイス・ドライバは、デバイス・ハードウェアを制御
および管理する。デバイス・ドライバは、所与のデバイス30に対する特有のリ
ソース要件を識別すること、および構成マネージャ20によって割り当てられた
構成で動作するようにそのデバイスを設定することを担当する。構成マネージャ
20は、デバイス・ドライバがそのタスクを実施するために使用することのでき
るサービスおよびメッセージを提供する。
As pointed out above, device drivers control and manage the device hardware. The device driver is responsible for identifying the unique resource requirements for a given device 30 and setting that device to operate in the configuration assigned by the configuration manager 20. The configuration manager 20 provides services and messages that device drivers can use to perform their tasks.

【0039】 デバイス・ドライバは、デバイス・ノードのデバイスの割り当てられた構成を
表すデブノード・ツリー50内のそのデバイス・ノードの部分を検査し、どのリ
ソースがそのデバイスに対して割り振られているかを判定する。プラグアンドプ
レイ・カードの場合、所与のデバイスに対して割り当てられるリソースは、ブー
トごとに変化し、さらにはコンピュータ・システム10の動作中にも(動的に)
変化する。論理構成は、ハードウェアの所与の部片に対して有効な様々な構成を
記述する。デバイスが動作不能か、それとも構成されているかなどの、デバイス
の状態についての情報が、デブノード・ツリー50内の各デバイス・ノード中の
構成マネージャ20によって管理される。ドライバは、構成マネージャ20に情
報を照会することによってこの情報を照会することができる。ドライバが特定の
デバイス・ノードに対してロードされたとき、ドライバは構成マネージャ20に
登録し、ハードウェア構成を割り当て、または変更するためにコールされる、そ
のデバイスに関するエントリ・ポイントを渡す。デバイス・ドライバまたは他の
構成要素は、デブノード・ツリー50またはデバイス・ノードに直接アクセスす
ることができないが、デバイス・ノードの識別についての情報を取り出すことが
でき、デバイス・ノード内の情報を取り出し、設定するタスクを実施することが
できる。構成マネージャ20は、これらのサービスを提供してデバイス・ノード
に関するタスクを実施する。しかし、デバイス・ドライバおよび他の構成要素は
、レジストリ40内の所与のデバイス・ノードについての情報を格納することが
でき、構成マネージャ20によってレジストリ40内に格納されたデバイス・ノ
ードについての情報を取り出すことができる。
The device driver examines the portion of the device node in the devnode tree 50 that represents the device's assigned configuration of the device to determine which resources are allocated to the device. To do. In the case of plug-and-play cards, the resources allocated to a given device change from boot to boot and even (dynamically) while the computer system 10 is running.
Change. Logical configurations describe the various configurations that are valid for a given piece of hardware. Information about the state of the device, such as whether the device is inoperable or configured, is managed by the configuration manager 20 in each device node in the devnode tree 50. The driver can query this information by querying the configuration manager 20 for the information. When a driver is loaded for a particular device node, the driver registers with the configuration manager 20 and passes the entry point for that device that is called to assign or change the hardware configuration. The device driver or other component cannot directly access the device node tree 50 or the device node, but can retrieve information about the identification of the device node and retrieve and set information within the device node. You can perform the tasks that you want. The configuration manager 20 provides these services to perform tasks on device nodes. However, device drivers and other components can store information about a given device node in the registry 40, and information about device nodes stored in the registry 40 by the configuration manager 20. You can take it out.

【0040】 デバイス・ローダは、所与のデバイス・ノードに関するデバイス・ドライバお
よびエニュメレータをロードし、管理する。デバイス・ローダは一般に、デバイ
スが様々な層のデバイス・ドライバによって管理されるときに使用される。デバ
イス・ローダは、様々な層の働きを調整し、すべてのデバイス・ドライバに当て
はまる一般的な構成タスクを実施する。
The device loader loads and manages device drivers and enumerators for a given device node. Device loaders are commonly used when devices are managed by various layers of device drivers. The device loader coordinates the work of the various layers and performs common configuration tasks that apply to all device drivers.

【0041】 デバイス・ローダは、構成マネージャ20によって所与のデバイス・ノードと
関連付けることができる。デバイス・ローダはまた、所与のデバイス・ノードま
たは所与の子デバイス・ノードに関するエニュメレータおよびデバイス・ドライ
バもロードすることができる。他のサービスには、プライベート値を取り出して
デバイス・ノードに割り当てること、デバイス・ノードに関連する、任意の動的
にロードした仮想デバイスに関するデバイス記述子ブロックを取り出すことが含
まれる。
The device loader can be associated with a given device node by the configuration manager 20. The device loader can also load enumerators and device drivers for a given device node or a given child device node. Other services include retrieving and assigning private values to device nodes and retrieving device descriptor blocks for any dynamically loaded virtual devices associated with the device node.

【0042】 アービトレータは、IRQおよびI/Oポートなどの様々なリソースの所有権
を割り当てる構成要素である。リソース・アービトレータは、デバイス間のリソ
ースの競合を解決する。アービトレータは、デバイスに関する要件のリストを検
討し、すべてのデバイスを満たすような、リソースの最良の割振りを見つける。
構成マネージャ20はまた、リソース・アービトレータのオペレーションをサポ
ートするためのサービスおよびメッセージも提供する。
Arbitrators are the components that assign ownership of various resources such as IRQs and I / O ports. The resource arbitrator resolves resource contention between devices. The arbitrator reviews the list of requirements for the device and finds the best allocation of resources to meet all the devices.
The configuration manager 20 also provides services and messages to support the operation of the resource arbitrator.

【0043】 要件のリストは、デバイス30が首尾よく動作するのに必要なタイプ・リソー
スと、そのリソースに関連する任意の制約とを識別する。IRQ、I/Oポート
、DMAチャネル、およびメモリの範囲は、リソースのタイプの例である。デバ
イス30が首尾よく動作するためにIRQ3とI/Oポート02F8とを組み合
わせて参照しなければならないことなど、諸制約はしばしばリソース相互依存性
である。
The list of requirements identifies the type resources required for the device 30 to operate successfully and any constraints associated with the resources. IRQs, I / O ports, DMA channels, and memory ranges are examples of resource types. Constraints are often resource interdependence, such as device 30 having to reference IRQ3 in combination with I / O port 02F8 for successful operation.

【0044】 論理構成は、デバイス30が首尾よく動作するのに必要なリソースの記述であ
る。任意の所与のデバイス30は、いくつかの可能な論理構成を有することがで
きる。構成マネージャ20は、デバイス30の論理構成を使用して、競合するデ
バイス間でどのようにリソースを割り振るかを決定する。構成マネージャ20は
、デバイス・ドライバ、エニュメレータ、および他の構成要素が論理構成を検査
し、作成するために使用することができるサービスを提供する。
The logical configuration is a description of the resources required for the device 30 to operate successfully. Any given device 30 can have several possible logical configurations. The configuration manager 20 uses the logical configuration of the device 30 to determine how to allocate resources among competing devices. The configuration manager 20 provides services that device drivers, enumerators, and other components can use to inspect and create logical configurations.

【0045】 リソース記述子は、論理構成内のリソースを記述する。メモリ、I/Oポート
、DMAチャネル、およびIRQに関するリソース記述子が存在する。他のリソ
ース記述子は、デバイスが利用可能な他のタイプのリソースを識別するために、
必要に応じて作成することができる。
Resource descriptors describe resources within a logical configuration. There are resource descriptors for memory, I / O ports, DMA channels, and IRQs. Other resource descriptors are used to identify other types of resources available to the device.
Can be created as needed.

【0046】 メモリ・リソース記述子は、メモリ・アドレス範囲を識別する。この記述子は
、各デバイスについての可能なメモリ構成を識別するMEM_RANGE構造の
メモリ・リソースおよびアレイを記述するMEM_DES構造を含む。I/Oポ
ート・リソース記述子は、I/Oポート・アドレス範囲を識別する。I/Oポー
ト・リソース記述子は、可能なポート構成を識別するIO_RANGE構造のI
/Oポート・リソースおよびアレイを記述するIO_DES構造を含む。
The memory resource descriptor identifies a memory address range. This descriptor contains a MEM_DES structure that describes the memory resources and array of MEM_RANGE structures that identify possible memory configurations for each device. The I / O port resource descriptor identifies an I / O port address range. The I / O Port Resource Descriptor is the I_RANGE structure's I that identifies the possible port configurations.
Contains IO_DES structures that describe / O port resources and arrays.

【0047】 DMAチャネル・リソース記述子は、DMAチャネル選択肢を識別する。この
記述子は、デバイスを使用することができるDMAチャネルを識別するDMA_
DES構造である。最後に、IRQリソース記述子は、1組のIRQ代替方法を
識別する。IRQリソース記述子は、デバイスが使用することができるIRQを
識別し、IRQを共用することができるかどうかを識別するIRQ_DES構造
である。
The DMA channel resource descriptor identifies a DMA channel option. This descriptor is a DMA_ that identifies the DMA channel that can use the device.
It is a DES structure. Finally, the IRQ resource descriptor identifies a set of IRQ alternatives. The IRQ resource descriptor is an IRQ_DES structure that identifies the IRQs that the device can use and whether the IRQs can be shared.

【0048】 I/Oポート・リソース記述子を扱うとき、IOR_Alias値およびIO
R_Decode値は、デバイスが応答するポート・エイリアスを指定する。ポ
ート・エイリアスは、あたかもそれが実際のI/Oポートのアドレスであるかの
ようにデバイス30が応答するアドレスである。加えて、あるカードは、実際に
異なる目的で追加のポートを使用するが、あたかもそのカードがエイリアスを使
用しているかのように見える復号化方式を使用する。例えば、ISAカードは、
10ビットを復号化することができ、03C0hを必要とする。このカードは、
IOR_Aliasオフセット04hおよびIOR_Decode 3を指定す
ることが必要となる(エイリアスは実際のポートとして使用されない)。便宜上
、エイリアス・フィールドを0に設定して、エイリアスが必要でないことを示す
ことができる。この場合、復号化フィールドは無視される。
When handling I / O port resource descriptors, IOR_Alias value and IO
The R_Decode value specifies the port alias to which the device responds. The port alias is the address that device 30 responds to as if it were the address of the actual I / O port. In addition, some cards actually use the additional ports for different purposes, but use a decoding scheme that makes it appear as if the card is using an alias. For example, the ISA card
It can decode 10 bits and requires 03C0h. This card is
It is necessary to specify IOR_Alias offset 04h and IOR_Decode 3 (aliases are not used as actual ports). For convenience, the alias field can be set to 0 to indicate that no alias is needed. In this case the decoded field is ignored.

【0049】 異なる機能を有する7C0h、0BC0h、および0FC0hのポートをカー
ドが使用すべき場合、IORエイリアス値は同一になり、IOR_Decode
値は0Fhになり、ポート・アドレスのビット11および12が重要であること
を示している。したがって、(PORT[i]+(nalias256))
&(decode256|03FFh)のすべてのポートに対して割り振られ
る。ただし、nは任意の整数であり、PORTは、IOR_nPorts、IO
R_Min、IOR_Maxフィールドによって指定される範囲である。最小エ
イリアスは4であり、最小復号化は3であることに留意されたい。
If the card should use ports 7C0h, 0BC0h, and 0FC0h with different functions, the IOR alias values will be the same and IOR_Decode
The value goes to 0Fh, indicating that bits 11 and 12 of the port address are important. Therefore, (PORT [i] + (n * alias * 256))
Allocated to all ports of & (decode * 256 | 03FFh). However, n is an arbitrary integer, and PORT is IOR_nPorts, IO
It is a range specified by the R_Min and IOR_Max fields. Note that the minimum alias is 4 and the minimum decoding is 3.

【0050】 ISAバスの歴史のため、PORT=n400+Z(ただし「Z」は100
h〜3ffhの範囲のポートであり、「N」は1以上である)の任意のポートを
使用するすべてのEISAおよびISAカードは、ポートZを予約し、他のポー
トをエイリアスとして扱うことになる。このセット内のポートが予約されるが、
ドライバは「Z」アドレスを予約しない場合、デバイスは、予約済みポート・ア
ドレスがISAバス上に存在しないローカル・バス(PCIなど)上にあると想
定される。
Due to the history of the ISA bus, PORT = n * 400 + Z (where “Z” is 100
All EISA and ISA cards using any port from h to 3ffh, where "N" is 1 or greater) will reserve port Z and treat other ports as aliases . The ports in this set are reserved,
If the driver does not reserve the "Z" address, the device is assumed to be on a local bus (such as PCI) where the reserved port address is not on the ISA bus.

【0051】 範囲リストは、2つの範囲が重なることのない、(DWORD形式の)I/O
ポート範囲またはメモリ・アドレス範囲のソート済みリストである。I/Oリソ
ースおよびメモリ・リソースを管理するリソース・アービトレータは、範囲リス
ト・サービスを使用して、所与のI/O範囲またはメモリ範囲が他の範囲と競合
するかどうかを発見する。これらのサービスは、オーバーラップを含む範囲リス
トを作成する試みを検出し、停止するか、またはオーバーラップが存在する組合
せ範囲を作成する。各範囲は、連続するアドレスの範囲を指定しなければならな
いが、範囲リスト自体が複数の範囲を含むことができ、その複数の範囲は、必ず
しもリスト中の何らかの他の範囲と連続する必要はない。
The range list is an I / O (in DWORD format) where the two ranges do not overlap.
It is a sorted list of port ranges or memory address ranges. The resource arbitrator, which manages I / O and memory resources, uses the range list service to discover if a given I / O range or memory range conflicts with other ranges. These services detect an attempt to create a range list that includes an overlap and either stop or create a combined range where an overlap exists. Each range must specify a contiguous range of addresses, but the range list itself can contain multiple ranges, which need not necessarily be contiguous with any other range in the list. .

【0052】 構成マネージャ20は、これらの構成要素およびリソースと協働し、コンピュ
ータ・システム10の各デバイス30がその割り当てられたIRQ番号、I/O
ポート・アドレス、および他のリソースを他のデバイスと競合することなく使用
できるように、すべてのデバイス30にとって動作可能な構成を見つける。構成
マネージャ20はまた、存在するデバイス30の数およびタイプの変化について
コンピュータ・システム10を監視する助けともなり、変化が生じたときに必要
に応じてデバイス30の再構成も管理する。構成を作成し、維持するために、構
成マネージャ20は、エニュメレータ、リソース・アービトレータ、デバイス・
ローダ、およびデバイス・ドライバと共に動作する。構成マネージャ20は、こ
れらの構成要素がその構成タスクを実施するために使用するサービスおよびメッ
セージを提供する。以下の表III に、構成マネージャ20によって提供されるい
くつかのサービス、およびそれら各サービスの説明のリストを示す。
The configuration manager 20 cooperates with these components and resources so that each device 30 of the computer system 10 has its assigned IRQ number, I / O.
Find a workable configuration for all devices 30 so that port addresses and other resources can be used without conflicting with other devices. The configuration manager 20 also helps monitor the computer system 10 for changes in the number and type of devices 30 present, and also manages the reconfiguration of the devices 30 as needed when changes occur. To create and maintain the configuration, the configuration manager 20 uses an enumerator, resource arbitrator, device
Works with loaders and device drivers. The configuration manager 20 provides the services and messages that these components use to perform their configuration tasks. Table III below lists some services provided by the configuration manager 20 and a description of each of them.

【表3】 これらのサービスをコンピュータ・システム10で使用することができ、コンピ
ュータ・システム10の動作中に、コンピュータ・システム10内にデバイス3
0を挿入し、認識することに対処することが可能となる。表III に示すサービス
に加えて、Windows95および98で標準的な、コンピュータ・システム
10で使用することのできる多くの他のサービスが存在する。Karen Ha
zzahによる「Writing Windows VxDs and Dev
ice Drivers,2nd edition」(R&D Books、1
997年出版)では、プラグアンドプレイ・フレームワークとその構成要素のよ
り完全な説明が与えられており、これを参照により本明細書に組み込む。
[Table 3] These services can be used by the computer system 10 and, during operation of the computer system 10, the device 3 within the computer system 10.
It becomes possible to deal with inserting 0 and recognizing. In addition to the services shown in Table III, there are many other services standard on Windows 95 and 98 that can be used with computer system 10. Karen Ha
"Writing Windows VxDs and Dev" by zzah
ice Drivers, 2nd edition "(R & D Books, 1
997), provides a more complete description of the Plug and Play framework and its components, which is incorporated herein by reference.

【0053】 図2aおよび2bは、完全「プラグアンドプレイ」可能なドライバを有さない
デバイスのための、動作中にコンピュータ・システム10内のデバイスを取り外
し、挿入するための、本発明に適合するプロセスの流れ図である。このプロセス
は、ソフトウェア・プログラム、このプロセスを実行するように配線されたハー
ドウェア・デバイス、またはそれらの何らかの組合せとして実現することができ
る。ハードウェア・デバイスは、プログラマブル・メモリ、ファームウェア、ま
たはプロセッサなどである。図2aを参照すると、コンピュータ・システム10
が起動されたとき、構成マネージャ20は、エニュメレータ、デバイス・ノード
、デバイス・ドライバ、およびレジストリ40を使用してデブノード・ツリー5
0を生成する(ステップ110)。
2a and 2b are compatible with the present invention for removing and inserting devices in computer system 10 during operation, for devices that do not have a fully "plug and play" capable driver. 4 is a flow chart of a process. This process may be implemented as a software program, a hardware device hardwired to perform this process, or some combination thereof. A hardware device is a programmable memory, firmware, processor, or the like. Referring to FIG. 2a, computer system 10
The configuration manager 20 uses the enumerator, device node, device driver, and registry 40 when the
0 is generated (step 110).

【0054】 コンピュータ・システム10の動作中(ホット・スワッピング)、またはスリ
ープ状態(ウォーム・スワッピング)の間、コンピュータ・システム10のユー
ザは、コンピュータ・システム10内に現在存在しているデバイスを異なるデバ
イスに交換し、またはスワップするように要求することができる(ステップ11
2)。この要求を行うために、ユーザは、コンピュータ・システム10で使用さ
れているオペレーティング・システムに適合するウィンドウズ(登録商標)タイ
プ・インターフェースまたは他のタイプのインターフェースによってコンピュー
タ・システム10に照会することができる。この要求では、ユーザは、デバイス
を取り外し、新しいデバイスを挿入するように指定することができる。あるいは
、デバイスが取り外されていない場合、ユーザは、単にデバイスを挿入するよう
指定することができる。この要求に応答して、構成マネージャ20は、ユーザが
取り外すように要求したデバイスのコントローラ用のドライバに対するコールを
行う(ステップ114)。このコールは、CONFIGMG_Query_Re
move_SubTreeサービスを使用して行うことができる。デバイス・コ
ントローラは、例えば、取り外すべきデバイスがハード・ドライブである場合、
IDEコントローラとすることができ、あるいは取り外すべきデバイスがフロッ
ピィ・ドライバである場合、フロッピィ・コントローラとすることができる。取
り外されるデバイスのタイプに応じて他のコントローラも可能である。
While the computer system 10 is operating (hot swapping) or sleeping (warm swapping), a user of the computer system 10 may choose a device that is currently present in the computer system 10 as a different device. Can be exchanged or requested to be swapped (step 11
2). To make this request, the user can query the computer system 10 through a Windows type interface or other type interface that is compatible with the operating system used by the computer system 10. . In this request, the user can specify to remove the device and insert a new device. Alternatively, if the device has not been removed, the user can simply specify to insert the device. In response to this request, the configuration manager 20 makes a call to the driver for the controller of the device that the user has requested to remove (step 114). This call is made by CONFIGMG_Query_Re
This can be done using the move_SubTree service. The device controller may, for example, if the device to remove is a hard drive,
It may be an IDE controller or, if the device to be removed is a floppy driver, a floppy controller. Other controllers are possible depending on the type of device being removed.

【0055】 デバイス・コントローラ用のドライバは、取り外すべきデバイスが現在使用中
であるかどうかを判定する(ステップ116)。例えば、デバイスがディスク・
ドライブである場合、ドライバは、ドライブ上のファイルが現在オープンされて
いるかどうかを判定することになる。この判定を行うために、CONFIGMG
_Query_Remove_SubTreeコールまたは照会を作成すること
ができる。ディスク・ドライブの場合、ディスク・ドライブは、ファイル・シス
テム・ドライバ、ディスク・ドライブ・ドライバ、およびディスク・コントロー
ラ・ドライバなどのいくつかの層のドライバによってアクセスすることができる
。ディスク・コントローラ・ドライバは、ディスク・ドライブ上のファイル・オ
ープンを認識しない可能性があるが、ディスク・コントローラ・ドライバは、そ
の判定を行うことができる他のドライバ層に、状況に関する照会を転送すること
ができる。
The driver for the device controller determines if the device to be removed is currently in use (step 116). For example, if the device is a disk
If it is a drive, the driver will determine if the file on the drive is currently open. In order to make this determination, CONFIGMG
A _Query_Remove_SubTree call or inquiry can be made. In the case of a disk drive, the disk drive can be accessed by several layers of drivers such as file system drivers, disk drive drivers, and disk controller drivers. The disk controller driver may not be aware of a file open on the disk drive, but the disk controller driver forwards the query about the situation to other driver layers that can make that determination. be able to.

【0056】 デバイスが現在使用中の場合、ユーザは、インターフェースを介して、デバイ
スを取り外せないことについて通知を受ける(ステップ118)。照会に応答し
てCR_REMOVE−VETOED表示が返された場合、デバイスは現在使用
中であると判定される。ディスク・ドライブの場合、ファイルをクローズし、フ
ァイルがクローズされた後に交換を再試行するようにというメッセージをユーザ
に与えることができる。一方、デバイスが使用されていない場合、ユーザは、イ
ンターフェースを介して、交換を続行できることについて通知を受ける(ステッ
プ120)。返される表示がCR_SUCCESSである場合、デバイスは使用
されていない。
If the device is currently in use, the user is notified via the interface that the device cannot be removed (step 118). If a CR_REMOVE-VETOED indication is returned in response to the query, the device is determined to be currently in use. For disk drives, the user may be given a message to close the file and retry the exchange after the file is closed. On the other hand, if the device is not in use, the user is notified via the interface that the exchange can continue (step 120). If the indication returned is CR_SUCCESS, the device is not in use.

【0057】 デバイスを取り外す前に、構成マネージャ20は、取り外すべきデバイス・コ
ントローラに関連するデブノード・ツリー50からデバイス・ノードをすべて除
去し、取り外すべきデバイスを含む、デバイス・コントローラによって制御され
るデバイスすべてを除去する(ステップ122)。このことは、CONFIG_
Remove_SubTreeサービスを使用して行うことができる。このオペ
レーションの結果として、除去したデバイス・ノードに関するドライバおよびド
ライブ名すべてがコンピュータ・システム10からアンロードされる。例えば、
フロッピィ・ディスク・ドライブおよびそのコントローラに関するデバイス・ノ
ードの除去により、その関連するドライバと、「a」ドライブなどのドライブ名
が除去される。
Prior to removing a device, the configuration manager 20 removes all device nodes from the devnodes tree 50 associated with the device controller to be removed, including all devices controlled by the device controller, including the device to be removed. Are removed (step 122). This means that CONFIG_
This can be done using the Remove_SubTree service. As a result of this operation, all drivers and drive letters for the removed device node are unloaded from computer system 10. For example,
Removing the device node for the floppy disk drive and its controller removes its associated driver and drive letter, such as the "a" drive.

【0058】 IDEコントローラによってどちらも制御されるCD−ROMおよびハード・
ドライブなど、交換されるデバイスが同じコントローラによって制御される場合
、そのコントローラに関するデバイス・ノードだけが除去される。しかし、交換
されるデバイスが異なるコントローラによって制御される場合、両方のコントロ
ーラに関するデバイス・ノードを除去することが必要となる。新しいデバイスが
、別のデバイスを取り外さずに挿入される場合は、その新しいデバイスを制御す
るコントローラに関するデバイス・ノードを除去するだけでよい。
CD-ROM and hardware, both controlled by the IDE controller
If the device to be replaced, such as a drive, is controlled by the same controller, then only the device node for that controller is removed. However, if the devices to be replaced are controlled by different controllers, it will be necessary to remove the device nodes for both controllers. If a new device is inserted without removing another device, then the device node for the controller controlling the new device need only be removed.

【0059】 デバイス・ノードを除去した後、除去すべきデバイスとそのコントローラとの
間で伝送される信号を分離する(ステップ124)。この信号分離を実行するた
めに、回路をコントローラ内に挿入することができ、またはコンピュータ・シス
テム10の、コントローラと、取り外すべきデバイスとの間に追加することがで
きる。この信号分離回路は、例えば、スイッチオフしたときに、コントローラと
、取り外すべき関連するデバイスとの間の信号の伝送を阻止するスイッチング・
デバイスでよい。信号分離回路に関するスイッチ制御は、デバイスを交換できる
という表示に応答することになる。信号分離は必須ではないが、コントローラと
取り外すべきデバイスとに対して生じ得る損傷を回避するために含むことが好ま
しい。交換される各デバイスが異なるコントローラによって制御される場合、挿
入すべきデバイスのコントローラに関する信号を分離することも必要となる。挿
入すべきデバイスのコントローラに関する信号の分離は、挿入すべきデバイスが
別のデバイスと交換されない場合にも必要である。
After removing the device node, the signal transmitted between the device to be removed and its controller is separated (step 124). To perform this signal isolation, circuitry can be inserted within the controller or added to computer system 10 between the controller and the device to be removed. This signal isolation circuit is, for example, a switching switch that prevents the transmission of signals between the controller and the associated device to be removed when switched off.
It can be a device. The switch control for the signal isolation circuit will be responsive to the indication that the device can be replaced. Signal isolation is not required, but is preferably included to avoid possible damage to the controller and the device to be removed. If each device to be replaced is controlled by a different controller, it will also be necessary to separate the signals for the controller of the device to be inserted. Signal isolation for the controller of the device to be inserted is also required if the device to be inserted is not replaced with another device.

【0060】 デバイスとそのコントローラとの間で伝送される信号を分離することに加えて
、取り外されるデバイスの電源をオフする(ステップ126)。信号を分離し、
デバイスの電源をオフした後、ユーザはコンピュータ・システム10からデバイ
スを取り外すことができる(ステップ128)。
In addition to isolating the signals transmitted between the device and its controller, the removed device is powered off (step 126). Separate the signals,
After powering off the device, the user may remove the device from computer system 10 (step 128).

【0061】 図2bに示すように、ユーザがコンピュータ・システム10からデバイスを取
り外した後、ユーザは新しいデバイスを挿入することができる(ステップ130
)。この交換を行う前に、コンピュータ・システム10が交換を続行する準備が
できたという表示をインターフェースを介してユーザに与えることができる。
As shown in FIG. 2b, after the user removes the device from computer system 10, the user can insert a new device (step 130).
). Prior to making this exchange, an indication may be provided to the user via the interface that computer system 10 is ready to continue the exchange.

【0062】 新しいデバイスの電源をオンし、分離した信号に再接続する前に、ユーザは、
新しいデバイスを挿入したという表示をインターフェースを介して与えることが
できる。あるいは、センサ回路をコンピュータ・システム10内に含めて、新し
いデバイスが挿入されたことを感知または判定することができ、新しいデバイス
が挿入されたという表示を与えることもできる。
Before powering on the new device and reconnecting to the isolated signal, the user must
An indication that a new device has been inserted can be provided via the interface. Alternatively, sensor circuitry can be included in computer system 10 to sense or determine that a new device has been inserted and provide an indication that a new device has been inserted.

【0063】 新しいデバイスが挿入されたという表示を受けて、新しいデバイスの電源をオ
ンし(ステップ132)、前述のコントローラからの分離した信号を新しいデバ
イスに再接続する(ステップ134)。この表示に応答して、構成マネージャ2
0は、新たに追加されたデバイスに関するコントローラを列挙または識別するよ
うに、エニュメレータに指令する(ステップ136)。このエニュメレータは、
新しいデバイスに関するコントローラが接続されるバスに対応する。列挙は、C
ONFIGMG_Reenumerate_DevNodeシステム・コールを
使用して行われる。コントローラを再列挙することにより、新しいデバイスに関
するコントローラの位置を突き止め、そのデバイス・ノードをデブノード・ツリ
ー50に加える(ステップ138)。交換するデバイスが異なるコントローラに
よって制御される場合、取り外したデバイスに関するコントローラも再び列挙す
る。
Receiving the indication that a new device has been inserted, the new device is powered on (step 132) and the separated signal from the controller described above is reconnected to the new device (step 134). In response to this display, the configuration manager 2
The 0 directs the enumerator to enumerate or identify the controller for the newly added device (step 136). This enumerator is
Corresponds to the bus to which the controller for the new device is connected. Enumeration is C
This is done using the ONFIGMG_Reenumerate_DevNode system call. Locate the controller for the new device by re-enumerating the controller and add the device node to the fat node tree 50 (step 138). If the replacement device is controlled by a different controller, the controller for the removed device is re-listed as well.

【0064】 コントローラに関するデバイス・ノードをデブノード・ツリー50に追加した
後、コントローラに対応するドライバも初期化する(ステップ140)。上記で
議論したように、コントローラに関するデブノードは、コントローラに関するド
ライバの位置に関係する情報を含むことができる。ドライバの初期化中、コント
ローラに関するドライバは、コントローラに関連するエニュメレータの位置を突
き止め、エニュメレータは、新しいデバイスがそのコントローラに接続されてい
るものとして列挙する(ステップ142)。この列挙の後、新しいデバイスに対
応するデバイス・ノードもデブノード・ツリー50に追加する(ステップ144
)。デブノード・ツリー50内に存在する新しいデバイスに関するデバイス・ノ
ードを用いて、コンピュータ・システム10は、あたかも新しいデバイスがブー
トアップ時にインストールされていたかのように新しいデバイスを認識し、使用
することができる。
After adding the device node for the controller to the fat node tree 50, the driver corresponding to the controller is also initialized (step 140). As discussed above, the fat node for the controller may include information related to the location of the driver for the controller. During driver initialization, the driver for the controller locates the enumerator associated with the controller and the enumerator enumerates the new device as connected to the controller (step 142). After this enumeration, the device node corresponding to the new device is also added to the fat node tree 50 (step 144).
). With the device node for the new device existing in the fat node tree 50, the computer system 10 can recognize and use the new device as if it were installed at bootup.

【0065】 上記で議論したように、Windows95および98などのオペレーティン
グ・システムは、コンピュータ・システム10が動作中の場合、完全には「プラ
グアンドプレイ」可能でないドライバを有するデバイスが挿入されたときに、そ
のデバイスを認識し、初期化することができない。逆に、これらのドライバは、
対応するドライバが初期化されたときにしかデバイスを列挙することができない
。対応するドライバの初期化は、伝統的にオペレーティング・システムの始動中
またはインストール中にのみ行われる。しかし図2aおよび2bのプロセスでは
、コントローラおよびデバイスに関するドライバがアンロードされ、次いで再初
期化される。これにより、コンピュータ・システム10が動作中またはスリープ
中であっても、新たにインストールしたデバイスを認識し、初期化することが可
能となる。
As discussed above, operating systems, such as Windows 95 and 98, operate when computer system 10 is in operation when a device with drivers that are not fully “plug and play” capable is inserted. , Unable to recognize and initialize that device. Conversely, these drivers
You can only enumerate devices when the corresponding driver is initialized. The initialization of the corresponding driver is traditionally done only during the startup or installation of the operating system. However, in the process of Figures 2a and 2b, the drivers for the controller and device are unloaded and then reinitialized. This allows the newly installed device to be recognized and initialized even when the computer system 10 is operating or sleeping.

【0066】 コンピュータ・システム10内に存在するデバイスを認識するプロセスは、エ
ニュメレータの使用に依拠する。エニュメレータは、バスまたはデバイス・コン
トローラに関するデバイス・ノードなど、特定のデバイス・ノードと関連付ける
ことができる。加えて、少なくとも1つのエニュメレータが、デブノード・ツリ
ー50のルート・ノードと関連付けられる。構成マネージャ20は、デブノード
・ツリー50のルート・ノードに関連するこのエニュメレータを使用して、始動
時に列挙プロセスを開始する。しかし、列挙プロセスは、エニュメレータがルー
ト・ノード、親ノード、または子ノードに関連するかの如何に関わらず同様に進
行する。図3に、本発明に適合する列挙プロセスの流れ図を示す。
The process of recognizing devices present in computer system 10 relies on the use of enumerators. An enumerator can be associated with a particular device node, such as a device node for a bus or device controller. In addition, at least one enumerator is associated with the root node of the fat node tree 50. The configuration manager 20 uses this enumerator associated with the root node of the fat node tree 50 to start the enumeration process at startup. However, the enumeration process proceeds similarly regardless of whether the enumerator is associated with the root node, parent node, or child node. FIG. 3 shows a flow chart of an enumeration process consistent with the present invention.

【0067】 まず、構成マネージャ20、またはデバイス・ノードに関連するデバイス・ド
ライバが、デバイス・ノードが関連するエニュメレータを含むかどうかを判定す
る(ステップ210)。関連するエニュメレータを含まない場合、そのデバイス
・ノードは、ドライバを列挙し、呼び出すために子ノードおよび関連するデバイ
スを有することができない。一方、デバイス・ノードがエニュメレータを含むと
構成マネージャ20またはデバイス・ドライバが判定した場合、エニュメレータ
を呼び出す(ステップ212)。次いで呼び出されたエニュメレータは、対応す
るデバイス・ノードのデバイスに関連するか、またはそれによって制御される任
意のデバイスを検索する(ステップ214)。このようなデバイスの位置を突き
止めた場合、エニュメレータは、位置を突き止めたデバイスに対応するエントリ
を求めてレジストリ40を検索する(ステップ216)。
First, it is determined whether the configuration manager 20, or the device driver associated with the device node, includes the enumerator with which the device node is associated (step 210). If it does not have an associated enumerator, that device node cannot have child nodes and associated devices to enumerate and call drivers. On the other hand, if the configuration manager 20 or the device driver determines that the device node contains an enumerator, then the enumerator is called (step 212). The invoked enumerator then searches for any device associated with or controlled by the device of the corresponding device node (step 214). When locating such a device, the enumerator searches the registry 40 for an entry corresponding to the locating device (step 216).

【0068】 位置を突き止めたデバイスに対応するエントリがレジストリ40内に見つから
ない場合、デバイス・インストーラと呼ばれるモジュールが、位置を突き止めた
デバイスのために、レジストリ40内に新しいエントリを作成する(ステップ2
18)。エントリをこのデバイスに対して作成した後、このデバイスは、他のイ
ンストールするデバイスまたは以前にインストールしたデバイスと同様に扱われ
る。エントリが見つかったか、またはエントリを新たに作成した場合、エニュメ
レータは、そのエントリのデバイス・ノードをデブノード・ツリー50に追加す
る(ステップ220)。デブノード・ツリー50に追加した、位置を突き止めた
デバイスに関するデバイス・ノードは、そのデバイスを見つけたエニュメレータ
を有するデバイス・ノードに対する子ノードとして含まれる。例えば、IDEコ
ントローラのデバイス・ノードに関するエニュメレータがハード・ドライブの位
置を突き止めた場合、そのハード・ドライブに関するデバイス・ノードは、デブ
ノード・ツリー50内のIDEコントローラに関するデバイス・ノードに対する
子ノードとして追加されることになる。エニュメレータはまた、デバイス・ノー
ド内の情報に基づいて、位置を突き止めたデバイスに関するデバイス・ドライバ
も識別し(ステップ222)、この情報を使用して、デバイス・ドライバを呼び
出す(ステップ224)。次いでこのプロセス自体を反復する。
If the entry corresponding to the located device is not found in the registry 40, a module called the device installer creates a new entry in the registry 40 for the located device (step 2).
18). After creating an entry for this device, this device will be treated like any other or previously installed device. If the entry is found or a new entry is created, the enumerator adds the entry's device node to the fat node tree 50 (step 220). The device node for the located device added to the fat node tree 50 is included as a child node to the device node having the enumerator that found the device. For example, if the enumerator for a device node of an IDE controller locates a hard drive, the device node for that hard drive is added as a child node to the device node for the IDE controller in the devnode tree 50. It will be. The enumerator also identifies the device driver for the located device based on the information in the device node (step 222) and uses this information to call the device driver (step 224). The process itself is then repeated.

【0069】 図4に、本発明に適合するデバイス・エクスチェンジャ70のブロック図を示
す。デバイス・エクスチェンジャ70は、ソフトウェア・プログラム、ハードウ
ェア・デバイス、またはそれらの何らかの組合せとして実装することができる。
ハードウェア・デバイスは、プログラマブル・メモリ、ファームウェア、または
プロセッサなどである。デバイス・エクスチェンジャ70は、図1に示すコンピ
ュータ・システム10などのコンピュータ・システムの一部として含めることが
できる。例えば、ソフトウェア・プログラムとして実装する場合、デバイス・エ
クスチェンジャは、活動化されるときにコンピュータ・システム10のメモリ内
にロードすることができる。
FIG. 4 shows a block diagram of a device exchanger 70 according to the present invention. The device exchanger 70 can be implemented as a software program, a hardware device, or some combination thereof.
A hardware device is a programmable memory, firmware, processor, or the like. The device exchanger 70 may be included as part of a computer system such as the computer system 10 shown in FIG. For example, if implemented as a software program, the device exchanger may be loaded into the memory of computer system 10 when activated.

【0070】 図4に示すように、デバイス・エクスチェンジャ70は、照会モジュール72
、除去モジュール74、分離および電源モジュール76、ならびに列挙モジュー
ル78を含む。これらのモジュールは、コンピュータ・システム10の動作中に
コンピュータ・システム10のメモリ内にロードすることができる。動作の際に
は、図4のコンピュータ・システム10のユーザは、コンピュータ・システム1
0内にインストールされたデバイス30を別のデバイスに交換するように、入力
デバイスを使用して要求を行うことができる。この要求は、デバイス・エクスチ
ェンジャ70の照会モジュール72によって受信され、照会モジュール72は、
取り外すべきデバイスが現在アクセスされているかどうかを判定する(図2aの
ステップ116)。アクセスされている場合、照会モジュール72は、コンピュ
ータ・システム10内のモニタなどのインターフェースを介して、そのデバイス
が現在使用されており、その時点で取り外すことができないことをユーザに通知
する(図2aのステップ118)。アクセスされていない場合、照会モジュール
72は、交換できることをユーザに通知する(図2aのステップ120)。
As shown in FIG. 4, the device exchanger 70 includes a query module 72.
, Removal module 74, isolation and power supply module 76, and enumeration module 78. These modules may be loaded into the memory of computer system 10 during operation of computer system 10. In operation, the user of computer system 10 of FIG.
A request can be made using the input device to replace the device 30 installed in 0 with another device. This request is received by the inquiry module 72 of the device exchanger 70, and the inquiry module 72
Determine if the device to be removed is currently being accessed (step 116 in Figure 2a). If so, the query module 72 notifies the user via an interface, such as a monitor, in the computer system 10 that the device is currently in use and cannot be removed at that time (FIG. 2a). Step 118). If not, the inquiry module 72 informs the user that it can be replaced (step 120 in Figure 2a).

【0071】 デバイスを取り外す前に、除去モジュール74は、そのデバイスおよびその関
連するコントローラに関するデバイス・ノードをデブノード・ツリー50から除
去する(図2aのステップ122)。この除去はまた、そのデバイスおよびコン
トローラに関するドライバすべてと、そのドライブに対するドライブ名とをアン
ロードする。デバイス・ノードを除去することに加えて、分離および電源モジュ
ール76は、分離回路(図示せず)に信号を送り、取り外すデバイスとコントロ
ーラとの間で伝送される信号を分離する(図2aのステップ124)。分離およ
び電源モジュール76はまた、取り外すデバイスの電源をオフする(図2aのス
テップ126)。
Prior to removing the device, the removal module 74 removes the device node for that device and its associated controller from the fat node tree 50 (step 122 of FIG. 2a). This removal also unloads all drivers for that device and controller, and the drive letter for that drive. In addition to removing the device node, the isolation and power module 76 sends a signal to isolation circuitry (not shown) to isolate the signal transmitted between the device to be removed and the controller (step of FIG. 2a). 124). Isolation and power module 76 also powers off the device to be removed (step 126 in Figure 2a).

【0072】 デバイスを交換した後、分離および電源モジュール76は、新たに追加したデ
バイスが挿入されたという表示を受け取り、新たに追加したデバイスの電源をオ
ンし、コントローラと追加したデバイスとの間で伝送される信号を再接続するよ
うに分離回路に信号を送る(図2bのステップ132および134)。次いで、
やはり新たに追加したデバイスが挿入されたという表示を受け取る列挙モジュー
ル78は、新たに追加したデバイスに関するコントローラの位置を突き止め、コ
ントローラに関するデバイス・ノードをデブノード・ツリー50内に追加する(
図2bのステップ136および138)。このコントローラは、取り外したデバ
イスに関するコントローラと同一のコントローラでも、異なるコントローラでも
よい。コントローラに関するデバイス・ノードに関連するデバイス・ドライバは
、初期化され、コントローラに関連するエニュメレータを起動し、エニュメレー
タは、新たに追加したデバイスの位置を突き止め、そのデバイス・ノードをデブ
ノード・ツリー50に追加する(図2bのステップ140、142、および14
4)。この時点で、新たに追加したデバイスは、コンピュータ・システム10の
残りの部分から完全にアクセス可能となる。
After replacing the device, the isolation and power supply module 76 receives an indication that the newly added device has been inserted, powers on the newly added device, and switches between the controller and the added device. Send a signal to the isolation circuit to reconnect the transmitted signal (steps 132 and 134 of Figure 2b). Then
The enumeration module 78, which also receives an indication that the newly added device has been inserted, locates the controller for the newly added device and adds the device node for the controller in the fat node tree 50 (
2b, steps 136 and 138). This controller may be the same controller as the controller for the removed device or a different controller. The device driver associated with the device node for the controller is initialized and launches the enumerator associated with the controller, which locates the newly added device and adds that device node to the fat node tree 50. (Steps 140, 142, and 14 of FIG. 2b)
4). At this point, the newly added device is fully accessible to the rest of computer system 10.

【0073】 以上、本発明の好ましい実施形態の説明を、例示し、説明する目的で提示した
。これは、包括的なものではなく、開示の精密な形態に本発明を限定するもので
もない。上記の教示に照らして、修正形態および変形形態が可能であり、または
修正形態および変形形態を本発明の実施から得ることができる。実施形態は、本
発明の原理と、当業者が本発明を様々な実施形態で本発明を利用することを可能
にし、企図される特定の使用法に様々な修正形態を適合させることを可能にする
ような実際的な応用例とを説明するために選択し、説明した。本発明の範囲は、
本明細書に添付の特許請求の範囲とその均等物によって定義されるものとする。
The foregoing description of the preferred embodiment of the present invention has been presented for purposes of illustration and description. It is not exhaustive and does not limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings, or modifications and variations may be obtained from practicing the invention. The embodiments enable the principles of the invention and those skilled in the art to utilize the invention in various embodiments and to adapt various modifications to the particular intended use. Selected and described to illustrate practical applications such as The scope of the invention is
It is intended to be defined by the claims appended hereto and their equivalents.

【図面の簡単な説明】[Brief description of drawings]

【図1】 本発明に適合するコンピュータ・システムのブロック図である。[Figure 1]   FIG. 6 is a block diagram of a computer system compatible with the present invention.

【図2a】 本発明に適合するスワッピング・プロセスの流れ図である。Figure 2a   6 is a flow chart of a swapping process consistent with the present invention.

【図2b】 本発明に適合するスワッピング・プロセスの流れ図である。Figure 2b   6 is a flow chart of a swapping process consistent with the present invention.

【図3】 本発明に適合する列挙プロセスの流れ図である。[Figure 3]   6 is a flow chart of an enumeration process consistent with the present invention.

【図4】 本発明に適合するデバイス交換システムのブロック図である。[Figure 4]   It is a block diagram of the device exchange system suitable for this invention.

Claims (31)

【特許請求の範囲】[Claims] 【請求項1】 コンピュータ・システム内に存在する第1デバイスを列挙し
て、第1デバイスをコンピュータ・システムに対して認識可能とする方法であっ
て、前記コンピュータ・システムが、メモリと、前記メモリ内に格納されたデー
タ構造を使用してコンピュータ・システムの作動構成を確立するオペレーティン
グ・システムとを有し、前記データ構造が、コンピュータ・システム内に存在す
る各デバイスに対応する1つまたは複数のデバイス・ノードを有し、 コンピュータ・システムの動作中に、第1デバイスがコンピュータ・システム
内に挿入されたという表示をオペレーティング・システムに供給するステップと
、 前記表示に応答して、第1デバイスを制御するための第1デバイス・コントロ
ーラを列挙するステップと、 第1デバイス・コントローラの列挙に応答して、第1デバイス・コントローラ
に関連する第1ドライバを初期化するステップと、 初期化した第1ドライバを用いて、第1デバイス・コントローラに関連するエ
ニュメレータの位置を突き止めるステップと、 位置を突き止めたエニュメレータと共に第1デバイスを列挙するステップとを
含み、 第1ドライバは、初期化されたときに、第1デバイス・コントローラに関連す
るエニュメレータの位置を突き止めることだけが可能である方法。
1. A method of enumerating a first device present in a computer system to make the first device recognizable to the computer system, the computer system comprising a memory and the memory. An operating system for establishing an operating configuration of a computer system using a data structure stored therein, the data structure corresponding to each device present in the computer system. Providing the operating system with an indication that the first device has been inserted into the computer system during operation of the computer system, the device node being responsive to the indication of the first device. Listing a first device controller for controlling, a first device controller Initializing a first driver associated with the first device controller in response to the enumeration of the device controller; and using the initialized first driver to locate the enumerator associated with the first device controller. Locating and enumerating the first device with the located enumerator, the first driver can only locate the enumerator associated with the first device controller when initialized How to be.
【請求項2】 第1デバイス・コントローラを列挙する前記ステップが、第
1デバイス・コントローラに関するデバイス・ノードをデータ構造に加えるサブ
ステップを含む請求項1に記載の方法。
2. The method of claim 1, wherein the step of listing a first device controller comprises the sub-step of adding a device node for the first device controller to a data structure.
【請求項3】 第1デバイス・コントローラを列挙する前記ステップが、コ
ンピュータ・システムのメモリ内に格納されたデバイス・ノードのリストから第
1デバイス・コントローラのデバイス・ノードの位置を突き止めるサブステップ
を含む請求項1に記載の方法。
3. The step of enumerating a first device controller includes the substep of locating a device node of the first device controller from a list of device nodes stored in a memory of the computer system. The method of claim 1.
【請求項4】 第1デバイスを列挙する前記ステップが、コンピュータ・シ
ステムのメモリ内に格納されたデバイス・ノードのリストから第1デバイスのデ
バイス・ノードの位置を突き止めるサブステップを含む請求項1に記載の方法。
4. The method of claim 1, wherein the step of listing a first device comprises a substep of locating a device node of the first device from a list of device nodes stored in a memory of the computer system. The method described.
【請求項5】 第1デバイスを列挙する前記ステップが、位置を突き止めた
第1デバイスのデバイス・ノードをデータ構造に加えるサブステップをさらに含
む請求項4に記載の方法。
5. The method of claim 4, wherein the step of listing a first device further comprises the sub-step of adding the located device node of the first device to a data structure.
【請求項6】 第1デバイスを列挙する前記ステップが、第1デバイスのデ
バイス・ノードをデータ構造に加えるサブステップを含む請求項1に記載の方法
6. The method of claim 1, wherein the step of listing a first device comprises the substep of adding a device node of the first device to a data structure.
【請求項7】 第1デバイスがコンピュータ・システムに接続された後に、
第1デバイスの電源をオンするステップと、 第1デバイスと第1デバイス・コントローラとの間で伝送される任意のデータ
信号を接続するステップとをさらに含む請求項1に記載の方法。
7. After the first device is connected to the computer system,
The method of claim 1, further comprising the steps of powering on the first device and connecting any data signals transmitted between the first device and the first device controller.
【請求項8】 第1デバイスを接続する前記ステップの前に、 コンピュータ・システム内の第2デバイスが現在アクセスされているかどうか
を判定するステップと、 データ構造から、第2デバイスに対応するデバイス・ノードと、第2デバイス
を制御するためのコントローラに対応するデバイス・ノードとを除去するステッ
プと、 第2デバイスと第2デバイス・コントローラとの間で伝送される任意のデータ
信号を、第2デバイス・コントローラから第2デバイスに送られることから分離
するステップと、 第2デバイスの電源をオフするステップとをさらに含む請求項1に記載の方法
8. Prior to said step of connecting a first device, determining whether a second device in the computer system is currently being accessed; and, from a data structure, a device corresponding to the second device. Removing the node and the device node corresponding to the controller for controlling the second device, and providing any data signal transmitted between the second device and the second device controller to the second device. The method of claim 1, further comprising: separating from being sent from the controller to the second device; and powering off the second device.
【請求項9】 第2デバイスおよび第2デバイス・コントローラに対応する
デバイス・ノードを除去する前記ステップが、第2デバイスおよび第2デバイス
・コントローラに関連するすべてのドライバをアンロードするサブステップを含
む請求項8に記載の方法。
9. The step of removing device nodes corresponding to a second device and a second device controller includes a substep of unloading all drivers associated with the second device and the second device controller. The method of claim 8.
【請求項10】 前記第1デバイス・コントローラおよび第2デバイス・コ
ントローラが同一のコントローラである請求項8に記載の方法。
10. The method of claim 8, wherein the first device controller and the second device controller are the same controller.
【請求項11】 分離したデータ信号を第1デバイスに接続するステップを
さらに含む請求項8に記載の方法。
11. The method of claim 8, further comprising connecting the separated data signal to the first device.
【請求項12】 前記第1デバイスが、フロッピィ・ドライブ、ハード・ド
ライブ、およびCD−ROMドライブのうちの1つである請求項1に記載の方法
12. The method of claim 1, wherein the first device is one of a floppy drive, a hard drive, and a CD-ROM drive.
【請求項13】 前記第1デバイス・コントローラが、IDEドライブ・コ
ントローラおよびフロッピィ・ドライブ・コントローラの一方である請求項1に
記載の方法。
13. The method of claim 1, wherein the first device controller is one of an IDE drive controller and a floppy drive controller.
【請求項14】 前記第2デバイスが、フロッピィ・ドライブ、ハード・ド
ライブ、およびCD−ROMドライブのうちの1つである請求項8に記載の方法
14. The method of claim 8, wherein the second device is one of a floppy drive, a hard drive, and a CD-ROM drive.
【請求項15】 前記第2デバイス・コントローラが、IDEドライブ・コ
ントローラおよびフロッピィ・ドライブ・コントローラの一方である請求項8に
記載の方法。
15. The method of claim 8, wherein the second device controller is one of an IDE drive controller and a floppy drive controller.
【請求項16】 コンピュータ・システム内に存在する第1デバイスを列挙
して、第1デバイスをコンピュータ・システムに対して認識可能にするための、
コンピュータ可読プログラム・コード・モジュールが埋め込まれているコンピュ
ータ利用可能媒体であって、前記コンピュータ・システムが、メモリと、前記メ
モリ内に格納されたデータ構造を使用してコンピュータ・システムの作動構成を
確立するオペレーティング・システムとを有し、前記データ構造が、コンピュー
タ・システム内に存在するデバイスに対応する1つまたは複数のデバイス・ノー
ドを有するコンピュータ利用可能媒体を備えるコンピュータ・プログラム製品で
あって、 コンピュータ・システムの動作中に第1デバイスをコンピュータ・システム内
に挿入した後、第1デバイスを制御する第1デバイス・コントローラを列挙する
第1列挙モジュールと、 第1デバイス・コントローラの列挙に応答して、第1デバイス・コントローラ
に関連する第1ドライバを初期化する初期化モジュールと、 初期化した第1ドライバを用いて、第1デバイス・コントローラに関連するエ
ニュメレータを識別するロケータ・モジュールと、 第1デバイス・コントローラに関連する、位置を突き止めたエニュメレータと
共に、第1デバイスを列挙する第2列挙モジュールとを有し、 第1ドライバは、初期化されたときに、第1デバイス・コントローラに関連す
るエニュメレータの位置を突き止めることだけが可能であるコンピュータ・プロ
グラム製品。
16. A method of enumerating first devices present in a computer system to make the first devices recognizable to the computer system,
A computer usable medium having a computer readable program code module embedded therein, the computer system establishing a working configuration of a computer system using a memory and a data structure stored in the memory. A computer-usable medium having an operating system and a data structure having one or more device nodes corresponding to devices present in the computer system, the computer program product comprising: A first enumeration module enumerating a first device controller controlling the first device after inserting the first device into the computer system during operation of the system; and in response to enumerating the first device controller. , 1st device An initialization module that initializes a first driver associated with the tracker, a locator module that uses the initialized first driver to identify an enumerator associated with the first device controller, and a locator module associated with the first device controller A second enumeration module enumerating the first device with the located enumerator, wherein the first driver locates the position of the enumerator associated with the first device controller when initialized. A computer program product that is only possible.
【請求項17】 前記第1列挙モジュールが、第1デバイス・コントローラ
に関するデバイス・ノードをデータ構造に加えるサブモジュールを含む請求項1
6に記載のコンピュータ・プログラム製品。
17. The first enumeration module includes a sub-module that adds a device node for a first device controller to a data structure.
A computer program product according to item 6.
【請求項18】 前記第1列挙モジュールが、コンピュータ・システムのメ
モリ内に格納されたデバイス・ノードのリストから第1デバイス・コントローラ
のデバイス・ノードの位置を突き止めるサブモジュールを含む請求項に記載16
のコンピュータ・プログラム製品。
18. The sub-module of claim 16, wherein the first enumeration module includes a sub-module for locating a device node of a first device controller from a list of device nodes stored in a memory of a computer system.
Computer program products.
【請求項19】 前記第2列挙モジュールが、コンピュータ・システムのメ
モリ内に格納されたデバイス・ノードのリストから第1デバイスのデバイス・ノ
ードの位置を突き止めるサブモジュールを含む請求項に記載16のコンピュータ
・プログラム製品。
19. The computer of claim 16, wherein the second enumeration module includes a sub-module for locating the device node of the first device from a list of device nodes stored in the memory of the computer system. -Program product.
【請求項20】 前記第2列挙モジュールが、位置を突き止めた第1デバイ
スのデバイス・ノードをデータ構造に加えるサブモジュールをさらに含む請求項
19に記載のコンピュータ・プログラム製品。
20. The computer program product of claim 19, wherein the second enumeration module further comprises a sub-module that adds the located device node of the first device to a data structure.
【請求項21】 前記第2列挙モジュールが、第1デバイスのデバイス・ノ
ードをデータ構造に加えるサブモジュールを含む請求項16に記載のコンピュー
タ・プログラム製品。
21. The computer program product of claim 16, wherein the second enumeration module includes a sub-module that adds a device node of the first device to a data structure.
【請求項22】 第1デバイスをコンピュータ・システムに接続した後に第
1デバイスの電源をオンする電源モジュールと、 第1デバイスと第1デバイス・コントローラとの間で伝送される任意のデータ
信号を接続するスイッチ・モジュールとをさらに備える請求項16に記載のコン
ピュータ・プログラム製品。
22. A power supply module for connecting the first device to a computer system and then turning on the power of the first device, and connecting an arbitrary data signal transmitted between the first device and the first device controller. The computer program product of claim 16, further comprising:
【請求項23】 コンピュータ・システム内の第2デバイスが現在アクセス
されているかどうかを判定する照会モジュールと、 データ構造から、第2デバイスに対応するデバイス・ノードと、第2デバイス
を制御するコントローラに対応するデバイス・ノードとを除去する除去モジュー
ルと、 第2デバイスと第2デバイス・コントローラとの間で伝送される任意のデータ
信号を、第2デバイス・コントローラから第2デバイスに送られることから分離
する分離モジュールと、 第2デバイスの電源をオフし、それによって第2デバイスをコンピュータ・シ
ステムから取り外すことができる電源モジュールとをさらに備える請求項16に
記載のコンピュータ・プログラム製品。
23. A query module for determining whether a second device in a computer system is currently being accessed, and a data structure to a device node corresponding to the second device and a controller for controlling the second device. A removal module for removing the corresponding device node and any data signal transmitted between the second device and the second device controller from being sent from the second device controller to the second device 17. The computer program product of claim 16, further comprising a separation module that enables the second device and a power supply module that powers off the second device, thereby removing the second device from the computer system.
【請求項24】 前記第1デバイス・コントローラおよび第2デバイス・コ
ントローラが同一のコントローラである請求項23に記載のコンピュータ・プロ
グラム製品。
24. The computer program product of claim 23, wherein the first device controller and the second device controller are the same controller.
【請求項25】 分離したデータ信号を第1デバイスに接続するスイッチ・
モジュールをさらに備える請求項23に記載のコンピュータ・プログラム製品。
25. A switch for connecting the separated data signal to the first device.
24. The computer program product of claim 23, further comprising a module.
【請求項26】 前記除去モジュールが、第2デバイスおよび第2デバイス
・コントローラに関連するすべてのドライバをアンロードするサブモジュールを
含む請求項23に記載のコンピュータ・プログラム製品。
26. The computer program product of claim 23, wherein the removal module includes a sub-module that unloads all drivers associated with the second device and the second device controller.
【請求項27】 前記第1デバイスが、フロッピィ・ドライブ、ハード・ド
ライブ、およびCD−ROMドライブのうちの1つである請求項16に記載のコ
ンピュータ・プログラム製品。
27. The computer program product of claim 16, wherein the first device is one of a floppy drive, a hard drive, and a CD-ROM drive.
【請求項28】 前記第1デバイス・コントローラが、IDEドライブ・コ
ントローラおよびフロッピィ・ドライブ・コントローラの一方である請求項16
に記載のコンピュータ・プログラム製品。
28. The first device controller is one of an IDE drive controller and a floppy drive controller.
A computer program product as described in.
【請求項29】 前記第2デバイスが、フロッピィ・ドライブ、ハード・ド
ライブ、およびCD−ROMドライブのうちの1つである請求項23に記載のコ
ンピュータ・プログラム製品。
29. The computer program product of claim 23, wherein the second device is one of a floppy drive, a hard drive, and a CD-ROM drive.
【請求項30】 前記第2デバイス・コントローラが、IDEドライブ・コ
ントローラおよびフロッピィ・ドライブ・コントローラの一方である請求項23
に記載のコンピュータ・プログラム製品。
30. The second device controller is one of an IDE drive controller and a floppy drive controller.
A computer program product as described in.
【請求項31】 コンピュータ・システム内に存在する第1デバイスを列挙
して、第1デバイスをコンピュータ・システムに対して認識可能とするコンピュ
ータ・システムであって、前記コンピュータ・システムが、メモリと、前記メモ
リ内に格納されたデータ構造を使用してコンピュータ・システムの作動構成を確
立するオペレーティング・システムとを有し、前記データ構造が、コンピュータ
・システム内に存在する各デバイスに対応する1つまたは複数のデバイス・ノー
ドを有し、 コンピュータ・システムの動作中に、第1デバイスがコンピュータ・システム
内に挿入されたという表示をオペレーティング・システムに供給する第1構成要
素と、 前記表示に応答して、第1デバイスを制御する第1デバイス・コントローラを
列挙する第2構成要素と、 第1デバイス・コントローラの列挙に応答して、第1デバイス・コントローラ
に関連する第1ドライバを列挙する第3構成要素と、 初期化した第1ドライバを用いて、第1デバイス・コントローラに関連するエ
ニュメレータの位置を突き止める第4構成要素と、 位置を突き止めたエニュメレータと共に第1デバイスを列挙する第5構成要素
とを備え、 第1ドライバは、初期化されたときに、第1デバイス・コントローラに関連す
るエニュメレータの位置を突き止めることだけが可能であるコンピュータ・シス
テム。
31. A computer system enumerating a first device existing in a computer system and making the first device recognizable to the computer system, the computer system comprising a memory and An operating system that uses a data structure stored in the memory to establish an operating configuration of a computer system, the data structure corresponding to each device present in the computer system. A first component having a plurality of device nodes, the first component providing to the operating system an indication that the first device has been inserted into the computer system during operation of the computer system; , Listing a first device controller controlling a first device, And a third component enumerating the first driver associated with the first device controller in response to enumerating the first device controller and the first device controller using the initialized first driver. A fourth component for locating an enumerator associated with the controller, and a fifth component for enumerating the first device with the located enumerator, the first driver, when initialized, the first device A computer system that is only able to locate the enumerator associated with the controller.
JP2001563993A 2000-03-02 2000-03-02 Apparatus and method for swapping devices during operation of a computer Pending JP2003525494A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2000/005378 WO2001065365A1 (en) 2000-03-02 2000-03-02 Apparatus and method for swapping devices while a computer is running

Publications (1)

Publication Number Publication Date
JP2003525494A true JP2003525494A (en) 2003-08-26

Family

ID=21741107

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001563993A Pending JP2003525494A (en) 2000-03-02 2000-03-02 Apparatus and method for swapping devices during operation of a computer

Country Status (3)

Country Link
JP (1) JP2003525494A (en)
CN (1) CN1199102C (en)
WO (1) WO2001065365A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010084617A1 (en) * 2009-01-26 2010-07-29 富士通株式会社 Information processor provided with configuration change function, system configuration change method, and system configuration change program
JP2011512596A (en) * 2008-02-18 2011-04-21 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. System and method for communicatively coupling a host computing device and a peripheral device

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574534B2 (en) * 2006-05-23 2009-08-11 International Business Machines Corporation Method for using device enumeration information to identify an operating system running on a computer system
US7958207B2 (en) 2006-07-10 2011-06-07 Koninklijke Philips Electronics N.V. Method of installing software for enabling a connection of a phone to an interconnected network
CN101931576B (en) * 2010-07-21 2015-04-01 中兴通讯股份有限公司 Wireless access equipment and method
CN106844260A (en) * 2016-12-16 2017-06-13 广州致远电子股份有限公司 A kind of device management method based on tree topology
CN106844261A (en) * 2016-12-19 2017-06-13 杰发科技(合肥)有限公司 The method and apparatus of hot plug is realized in recovery mode

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002510416A (en) * 1997-07-02 2002-04-02 サイプレス・セミコンダクタ・コーポレーション Bus interface system and method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781798A (en) * 1993-12-30 1998-07-14 International Business Machines Corporation Method and apparatus for providing hot swapping capability in a computer system with static peripheral driver software
US5787246A (en) * 1994-05-27 1998-07-28 Microsoft Corporation System for configuring devices for a computer system
US5794032A (en) * 1996-04-15 1998-08-11 Micron Electronics, Inc. System for the identification and configuration of computer hardware peripherals

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002510416A (en) * 1997-07-02 2002-04-02 サイプレス・セミコンダクタ・コーポレーション Bus interface system and method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011512596A (en) * 2008-02-18 2011-04-21 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. System and method for communicatively coupling a host computing device and a peripheral device
WO2010084617A1 (en) * 2009-01-26 2010-07-29 富士通株式会社 Information processor provided with configuration change function, system configuration change method, and system configuration change program
EP2390786A4 (en) * 2009-01-26 2012-08-08 Fujitsu Ltd Information processor provided with configuration change function, system configuration change method, and system configuration change program
JP5218568B2 (en) * 2009-01-26 2013-06-26 富士通株式会社 Information processing apparatus having configuration change function, system configuration change method, and system configuration change program

Also Published As

Publication number Publication date
WO2001065365A1 (en) 2001-09-07
CN1437726A (en) 2003-08-20
CN1199102C (en) 2005-04-27

Similar Documents

Publication Publication Date Title
US6496893B1 (en) Apparatus and method for swapping devices while a computer is running
US6003097A (en) System for automatically configuring a network adapter without manual intervention by using a registry data structure maintained within a computer system memory
US5748980A (en) System for configuring a computer system
US10445258B1 (en) Method for creation of device drivers and device objects for peripheral devices
US5819107A (en) Method for managing the assignment of device drivers in a computer system
US7308511B2 (en) System for allocating resources in a computer system
US8880864B2 (en) Parallelizing multiple boot images with virtual machines
US7222339B2 (en) Method for distributed update of firmware across a clustered platform infrastructure
US7363480B1 (en) Method, system, and computer-readable medium for updating the firmware of a computing device via a communications network
US5768542A (en) Method and apparatus for automatically configuring circuit cards in a computer system
US5787019A (en) System and method for handling dynamic changes in device states
KR100247719B1 (en) Automatic enabling method for a peripheral device, and computer readable medium for storing the enabling program
US6732166B1 (en) Method of distributed resource management of I/O devices in a network cluster
US5797031A (en) Method and apparatus for peripheral device control by clients in plural memory addressing modes
US20040230963A1 (en) Method for updating firmware in an operating system agnostic manner
US20050015430A1 (en) OS agnostic resource sharing across multiple computing platforms
US20040267708A1 (en) Device information collection and error detection in a pre-boot environment of a computer system
JP5081827B2 (en) Method for constructing remote data processing system, computer program thereof and data processing system
CN112306581B (en) Method and medium for managing Basic Input Output System (BIOS) configuration by baseboard management controller
JP4759941B2 (en) Boot image providing system and method, boot node device, boot server device, and program
US6397327B1 (en) Method and apparatus for configuring a computer system
JP2003525494A (en) Apparatus and method for swapping devices during operation of a computer
GB2450422A (en) Installing device drivers for a peripheral device when establishing a connection between the peripheral device and a computer
US20130097340A1 (en) Usb multi-functions device and method thereof
Cook et al. Plug and Play Technology

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091027

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100127

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100301

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100308

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100329

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100405

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100817