esオペレーティングシステム上で実行しているプロセスはそれぞれ独自の階層的な名前空間をもっています。名前空間にアクセスするためのIContextインターフェイスポインタはICurrentProcessインターフェイスに対してgetRoot()メソッドを呼び出すことで取得できます。esオペレーティングシステムのランタイムライブラリ(libes++)をリンクしているプログラムからは、関数System()がICurrentProcessインターフェイスポインタを返しますので、下記のプログラムによって名前空間のルートのIContextインターフェイスポインタを取得できます。
IContext* root = System()->getRoot(); |
esの名前空間には、ファイルシステムのファイルやディレクトリにアクセスするためのインターフェイスポインタ、システムのデバイスドライバーにアクセスするためのインターフェイスポインタ、ソフトウェアコンポーネントに関する情報にアクセスするためインターフェイスポインタなど、あらゆるインターフェイスポインタがひとつの名前空間に階層的に登録されています。
esオペレーティングシステムが起動したときに最初に実行されるinitプロセスの保持している名前空間は以下のようになっています。
名前 | サポートしてるインターフェイス | 内容 |
class |
IClassStore |
IClassFactory インターフェイスをサポートしているソフトウェアコンポーネントのインターフェイスポインタが格納されています。 |
3979e8b4-2e86-11db-9c02-0009bf000001 |
IClassFactory |
CLSID_Process。新しいプロセスを作成するときに使用します。 |
397a9b6a-2e86-11db-9c02-0009bf000001 |
IClassFactory |
CLSID_CacheFactory。新しいメモリオブジェクトを作成するときに使用します。 |
397b45f6-2e86-11db-9c02-0009bf000001 |
IClassFactory |
CLSID_Monitor。新しいモニターを作成するときに使用します。 |
397be8bc-2e86-11db-9c02-0009bf000001 |
IClassFactory |
CLSID_PageSet。新しいページセットを作成するときに使用します。 |
397c8ccc-2e86-11db-9c02-0009bf000001 |
IClassFactory |
CLSID_Alarm。新しいタイマーを作成するときに使用します。 |
397d44f0-2e86-11db-9c02-0009bf000001 |
IClassFactory |
CLSID_Partition。新しいパーティションを作成するときに使用します。 |
397dec0c-2e86-11db-9c02-0009bf000001 |
IClassFactory |
CLSID_FatFileSystem。新しいFATファイルシステムを作成するときに使用します。 |
397e8e00-2e86-11db-9c02-0009bf000001 |
IClassFactory |
CLSID_IsoFileSystem。新しいISO 9660ファイルシステムを作成するときに使用します。 |
device |
IContext |
各種のデバイスドライバのインターフェイスポインタが格納されています。 |
rtc |
IRtc |
カレンダー時計にアクセスするためのインターフェイスポインタか格納されています。 |
cga |
IStream |
CGAのテキスト画面ににアクセスするためのインターフェイスポインタか格納されています。 |
beep |
IBeep |
ビープ音用のスピーカーにアクセスするためのインターフェイスポインタか格納されています。 |
framebuffer |
IPageable, IStream |
ビデオフレームバッファにアクセスするためのインターフェイスポインタか格納されています。 |
cursor |
ICursor |
マウスカーソルにアクセスするためのインターフェイスポインタか格納されています。 |
ethernet |
IStream, INetworkInterface |
Ethernetネットワークアダプタにアクセスするためのインターフェイスポインタか格納されています。 |
keyboard |
IStream |
キーボードにアクセスするためのインターフェイスポインタか格納されています。 |
loopback |
IStream, INetworkInterface |
ループバックインターフェイスにアクセスするためのインターフェイスポインタか格納されています。 |
mouse |
IStream |
マウスにアクセスするためのインターフェイスポインタか格納されています。 |
floppy |
IStream |
フロッピーディスクドライブにアクセスするためのインターフェイスポインタか格納されています。 |
ata |
IContext |
ATAデバイスにアクセスするためのインターフェイスポインタか格納されています。 |
channel0 |
IContext |
ATAデバイスのチャネル0にアクセスするためのインターフェイスポインタか格納されています。 |
device0 |
IDiskManagement, IPartition, IRemovableMedia, IStream |
ATAデバイスのチャネル0のプライマリーデバイスにアクセスするためのインターフェイスポインタか格納されています。 |
device1 |
IDiskManagement, IPartition, IRemovableMedia, IStream |
ATAデバイスのチャネル0のセカンダリーデバイスにアクセスするためのインターフェイスポインタか格納されています。 |
channel1 |
IContext |
ATAデバイスのチャネル1にアクセスするためのインターフェイスポインタか格納されています。 |
device0 |
IDiskManagement, IPartition, IRemovableMedia, IStream |
ATAデバイスのチャネル1のプライマリーデバイスにアクセスするためのインターフェイスポインタか格納されています。 |
device1 |
IDiskManagement, IPartition, IRemovableMedia, IStream |
ATAデバイスのチャネル1のセカンダリーデバイスにアクセスするためのインターフェイスポインタか格納されています。 |
soundInput |
IAudioFormat, IStream |
PCMサウンド入力用デバイスにアクセスするためのインターフェイスポインタか格納されています。 |
soundOutput |
IAudioFormat, IStream |
PCMサウンド出力用デバイスにアクセスするためのインターフェイスポインタか格納されています。 |
file |
IContext, ... |
ファイルシステムのファイルにアクセスするためのインターフェイスポインタが格納されています。 |
network |
IContext |
各種ネットワーク関連のインターフェイスポインタが格納されています。 |
config |
IInternetConfig |
TCP/IPネットワーク接続設定を行うためのインターフェイスポインタが格納されています。 |
resolver |
IResolver |
TCP/IPネットワークホストの名前解決を行うためのインターフェイスポインタが格納されています。 |
interface |
IContext |
TCP/IPネットワークインターフェイスに関するインターフェイスポインタか格納されています。 |
1 |
IContext |
ループバックインターフェイスに関するインターフェイスポインタか格納されています。 |
interface |
IStream, INetworkInterface |
ループバックインターフェイスにアクセスするためのインターフェイスポインタか格納されています。 |
2 |
IContext |
2番目のネットワークインターフェイスに関するインターフェイスポインタか格納されています。 |
interface |
IStream, INetworkInterface |
2番目のネットワークインターフェイスにアクセスするためのインターフェイスポインタか格納されています。 |
dhcp |
IService |
DHCPクライアントサービスのインターフェイスポインタが格納されています。 |
Copyright © 2006, 2007
Nintendo Co,. Ltd.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appears in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Nintendo makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.