2

Windows オペレーティング システムで Int 13h (ダイレクト ディスク読み取り/書き込み) を使用できますか、それとも Windows 保護モードでは使用できませんか? その場合、回避策はありますか? 前もって感謝します。

4

4 に答える 4

7

いいえ、Windowsサブシステムは、起動時に初期化すると、BIOS呼び出しがプロテクトモードではなく16ビットであり、int 13hが無効になるため、カーネルのBIOS割り込み処理を再構成します。これが、BIOSを完全にバイパスする32ビットプロテクトモード用に作成されたドライバーがある理由です。

どちらが疑問を投げかけます-なぜあなたはそれをやろうとしているのですか?

Windowsは、BIOSと通信しようとすると、「ねえ、あなたはコーディングします。Windowsのボスとして私に話しかけます。私を迂回することはできません。私のドメインの外を踏まないでください と言っているかのように、コードを強制終了します。

int 13hが使用されるのは、Windowsがロードされる前のブート段階か、システムとしてMSDOSを使用している場合、つまりWindowsがない場合は、MSDOSを起動するだけで、int13hを使用できます。どちらの場合も、16ビットモードであるため、BIOSにアクセスできます。

私の知る限り、一般的な割り込み0x2Eがあります。これは、カーネルのシステムコールです。

要するに、私はWindowsシステムをバイパスしようとすることをお勧めしません。そのため、それを行うためのドライバーなどがあります。ディスクI/Oサブシステムの一部としてドライバーと対話する方がよいでしょう。そしてそれがあなたのためにそれを処理させてください。

于 2010-01-23T16:09:25.473 に答える
1

適切なアクセス許可(管理者がアクセス許可を持っている)があれば、Win32 CreateFileおよび関連する関数を使用して、物理ドライブと論理パーティションに直接アクセスできます。MSDNのドキュメントを参照してください。

于 2010-01-23T16:20:51.313 に答える
1

他の人が述べているように、16 ビット (MSDOS) を使用しない限り動作しませんが、32 ビット システムでdebug.exeを使用している場合は、自分で試すことができます。(OS がクラッシュする可能性があります!) コマンド mov ax など.. int 13h などを入力して実行します。

于 2010-01-23T16:27:18.807 に答える
0

Int13hはWindowsでは機能しませ

于 2010-01-23T15:54:56.777 に答える