Windows オペレーティング システムで Int 13h (ダイレクト ディスク読み取り/書き込み) を使用できますか、それとも Windows 保護モードでは使用できませんか? その場合、回避策はありますか? 前もって感謝します。
4 に答える
いいえ、Windowsサブシステムは、起動時に初期化すると、BIOS呼び出しがプロテクトモードではなく16ビットであり、int 13hが無効になるため、カーネルのBIOS割り込み処理を再構成します。これが、BIOSを完全にバイパスする32ビットプロテクトモード用に作成されたドライバーがある理由です。
どちらが疑問を投げかけます-なぜあなたはそれをやろうとしているのですか?
Windowsは、BIOSと通信しようとすると、「ねえ、あなたはコーディングします。Windowsのボスとして私に話しかけます。私を迂回することはできません。私のドメインの外を踏まないでください 」と言っているかのように、コードを強制終了します。
int 13hが使用されるのは、Windowsがロードされる前のブート段階か、システムとしてMSDOSを使用している場合、つまりWindowsがない場合は、MSDOSを起動するだけで、int13hを使用できます。どちらの場合も、16ビットモードであるため、BIOSにアクセスできます。
私の知る限り、一般的な割り込み0x2Eがあります。これは、カーネルのシステムコールです。
要するに、私はWindowsシステムをバイパスしようとすることをお勧めしません。そのため、それを行うためのドライバーなどがあります。ディスクI/Oサブシステムの一部としてドライバーと対話する方がよいでしょう。そしてそれがあなたのためにそれを処理させてください。
適切なアクセス許可(管理者がアクセス許可を持っている)があれば、Win32 CreateFileおよび関連する関数を使用して、物理ドライブと論理パーティションに直接アクセスできます。MSDNのドキュメントを参照してください。
他の人が述べているように、16 ビット (MSDOS) を使用しない限り動作しませんが、32 ビット システムでdebug.exeを使用している場合は、自分で試すことができます。(OS がクラッシュする可能性があります!) コマンド mov ax など.. int 13h などを入力して実行します。
Int13hはWindowsでは機能しません