カーネル オブジェクトの管理
Windows オブジェクト マネージャーは、 カーネル モード オペレーティング システムの一部であるオブジェクトを制御します。 オブジェクトは、オペレーティング システムが管理するデータのコレクションです。
一般的なカーネル モード オブジェクトには、次のオブジェクトがあります。
デバイス オブジェクト (「デバイス オブジェクトとデバイス スタック」を参照。)
ファイル オブジェクト
シンボリック リンク
レジストリ キー
スレッドとプロセス
カーネル ディスパッチャー オブジェクト (イベント オブジェクトやミューテックス オブジェクトなど) (「カーネル ディスパッチャー オブジェクト」を参照。)
コールバック オブジェクト (「コールバック オブジェクト」を参照。)
セクション オブジェクト (「セクション オブジェクトとビュー」を参照。)
カーネル モード オブジェクトを使用すると、オペレーティング システムで必要とするオブジェクトの部分を損なうことなく、オブジェクト マネージャーと連携してオブジェクトを操作することができます。 この原則は、カプセル化と呼ばれ、オブジェクト指向プログラミングの中心概念の 1 つです。 (カーネル モード オブジェクトはオブジェクト指向の他の側面を提供しないため、通常、カーネル モード プログラミングは、オブジェクト ベースと呼ばれます。) カーネル モード オブジェクトは、C++ または Microsoft COM のオブジェクトと同じ規則には従いません。
カーネル モード オブジェクトは、ポインターによって参照できます。 オブジェクトにはオブジェクト名を指定できます。 オブジェクト名の詳細については、「オブジェクト名」を参照してください。
ユーザー モードのプログラマは、ハンドルを使用して、間接参照によってのみオブジェクトを参照できます。 オブジェクトに名前がある場合は、ユーザー モードでその名前を使用してハンドルを取得できます。 ハンドルの詳細については、「オブジェクト ハンドル」を参照してください。
カーネル モード オブジェクトには、非常に特殊なライフ サイクルがあります。 オブジェクトのライフサイクルの詳細については、「オブジェクトのライフサイクル」を参照してください。
オブジェクトのセキュリティは、カーネル モード プログラミングの主な懸念事項となっています。 オブジェクトのセキュリティの詳細については、オブジェクトのセキュリティを参照してください。
カーネル モード環境では、オブジェクトは、仮想ディレクトリ システム (オブジェクトの名前空間とも呼ばれます) に格納されます。 これにより、親オブジェクトと子オブジェクトを持つ階層的な方法でオブジェクトにアクセスできます。 この名前空間は、ディレクトリのファイル システム セットに似ていますが、コンピューター上の特定のファイル システムに正確に対応しているわけではません。 オブジェクト ディレクトリの詳細については、「オブジェクト ディレクトリ」を参照してください。