Windows NTベースのオペレーティングシステムはデバイスにどのように対処しますか?


9

私は次のような表記と混同しています

multi(0)disk(0)rdisk(0)partition(1)\ ...

そして

\ Device \ HardDisk1 \ DR1
\ Device \ Video0

これらのアドレスは、Windows XPやWindows 7などのWindows NTベースのオペレーティングシステムのコンテキストでのみ表示されます。これらのアドレスの意味と、ハードディスク、グラフィックアダプター、ヒューマンインターフェイスデバイス(キーボード)などのデバイスの参照にどのように使用されますか。 、マウスなど)、ネットワークアダプタ、その他のハードウェア


それらをどこでどのように参照する予定ですか?
KCotreau

これらの名前を使用するデバイスを参照するメッセージが表示されることがあります。私が理解したいのは、これらのアドレスの意味、他のデバイスがこれらの表記法を使用してどのようにアドレス指定されるか、およびアプリケーションがこれを使用してハードウェアに直接アクセスする方法(可能な場合)です。
bwDraco

Linuxは/devノードを使用して、ハードウェアへの直接アクセスを許可します。私が理解したいのは、Windowsでハードウェアにアクセスしてアクセスするための同様のメカニズムのように見えるものです。
bwDraco

Windows NT以降、私の知る限りでは、Windowsではハードウェアに直接アクセスすることはできません。それはそれ自身を保護する方法です。Windows 95/98 / MEを使用すると、すべてのプログラマーが可能であり、OSを不安定にする可能性がありました。解決策は、すべてをカーネルに通して、安全に実行できるかどうかを判断させることでした。そうでなければ、それはエラーをスローするかもしれませんが、悪いプログラミングからそれ自身を保護します...少なくともより大きな程度まで。
KCotreau

@KCotreau:それは本当ですが、無関係です。カーネルに尋ねる必要があります。しかし、ハードディスクにこれらのような名前がなかった場合、カーネルにまったく質問できませんでした。それはあなたが話しているハードディスクを知りません。
MSalters 2011

回答:


9

一般的な考えに反して、Windowsカーネルにルート化されたファイル(「ファイル」)システムがあります。* nixではルートは/、Windowsではルートです\。ただし、Win32サブシステムはそれを公開しません。WinObjでそれを探索できます。

いくつかの(おそらくおなじみの)NTデバイス名(MおよびN単なる整数):

  • \Device\HarddiskM\DRN:ディスク
  • \Device\HarddiskVolumeN:パーティション
  • \Device\CdRomN:光ディスクドライブ
  • \Device\KeyboardClassN:キーボード
  • \Device\MountPointManager:デバイスではありませんが、ストレージデバイスを追跡します
  • \Device\Null:データを食べてヌル(ゼロ)を出力する

\Device\HardDisk1\DR1ある本当のディスクの名前のWindowsに、そしてmulti(0)disk(0)rdisk(0)partition(1)遺産である-それはどのようにとは何の関係もありませんWindowsがデバイスを参照するのが、どのようにブートローダーは、ディスクを指します。どのように機能するか、私にはわかりません(このページではその一部について説明しています)が、Windowsが起動を開始した後のWindowsの問題ではありません。

新しいバージョンのWindowsは、ブート構成データ(BCD)を使用します。これは、BCD形式がレジストリの形式に似ているという名前のファイルであり、の代わりに使用されBoot.iniます。通常、ドライブ文字やファイルシステムパスではなく、一意の識別子(GUID)を使用してボリュームを参照します。これは、新しいバージョンのWindowsが使用するものです。


ストレージデバイス(など\Device\Video0)以外のハードウェアはどうですか?
bwDraco

@DragonLord:...それはどうですか?よく分からない。
user541686 2011

キーボード、マウス、ネットワークアダプタ、その他のデバイスを指すのにどのような名前が使用されていますか?
bwDraco

@DragonLord:いいですね、それを追加します。私はブートローディングに焦点を合わせただけで、質問がより一般的であることに気づきませんでした。
user541686 2011

おっしゃった「ルート化されたファイルシステム」は、Object Managerネームスペースと呼ばれます。WinObjリンクをクリックしていくつかの調査を行った後、これを見つけました。Windows NTは...内側にどのように働くかそれは非常に興味をそそられます
bwDraco

1

Windows Vista、Windows 7、およびServer 2008のBCD(ブート構成データストア)によって廃止された最初の行は、Windows XPまたはServer 2003のboot.iniファイルからのものであり、ルートディレクトリにあります。システムドライブの。これにより、Windowsに、起動に必要なシステムファイルを探す場所(ディスクとパーティション)がわかります。

「マルチ」と「rdisk」の詳細な説明については、こちらご覧ください。残りの部分は、ディスク0(0から始まり、そこから上に移動し、ディスクマネージャーでそれらの番号を確認できます)、パーティション1(ディスクとは異なり、1から番号が付けられて上に行く)を確認することを意味します。

http://support.microsoft.com/kb/102873

デバイスの列挙に関する限り、これは非常に複雑なプログラミングの主題であり、頭を爆発させたい場合は、ここで説明します。指定した形式は、デバイスがレジストリでハードウェアIDとしてアドレス指定される方法です。

実際問題として、このレジストリキーを確認できます。

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum

エラーと一致させるには、サブキーの1つにある「ハードウェアID」の値を取得して、エラーが参照するデバイスを正確に特定します。


1
NetBSD Foundationによってここ再発行されAdvanced RISC Computing Specificationのセクション4.2.7は、ARCパスに関するすべてを説明しています。
JdeBP 2011
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.