XP32Bit版のメモリ4G超でHAL.DLLにパッチ適用が必要な理由

突破Windows XP 4G内存限制续
Get Windows XP x86 to recognize more than 4Gb with PAE? - Windows XP - MSFN Forum

Windows XP で、4G以上のメモリを認識させるための記事を見てたのですが、どうやら、XPの場合、4G以上のメモリを実装してる場合に必要な処理が、Windows 2000とは違って、欠落しているようです。

 L800222FC:
          and    byte ptr [L8001A4D4],00h
 L80022303:
          push    00000001h
          push    00000010h
          push    01000000h
          push    ebx
          mov    dword ptr [L8001A4E4],00000040h
          mov    edi,00010000h
          call    SUB_L80021E14
          cmp    eax,esi
          jnz    L80022327
          xor    edi,edi
 L80022327:
          mov    [L8001A4F0],eax
          xor    eax,eax
          mov    [L8001A4F4],esi
          mov    [L8001A4E8],edi
          cmp    [FFDF027Dh],al
          setnz    al
          test    al,al
          jz     L80022379
          push    00000001h
          push    00000030h
          push    FFFFFFFFh
          push    ebx
          mov    dword ptr [L8001A504],00004000h
          mov    edi,00030000h
          call    SUB_L80021E14
          cmp    eax,esi
          jnz    L80022368
          xor    edi,edi
 L80022368:
          mov    [L8001A510],eax
          mov    [L8001A514],esi
          mov    [L8001A508],edi

こちら、Windows 2000の halmacpi.dll なのですが、この部分がXPではまるまる抜けています

だから、単純に NTOS の PAE カーネルにパッチを当てただけだとBSoDになってしまうというわけです。

後は、USBドライバにも問題があって、Server 2003からKB2868038 (Usbvideo.sys 5.2.3790.5198) や
KB2862330 (usbport.sys 5.2.3790.5203) を持ってこないといけないようですね・ω・

ちなみに、ntkrpamp.exe ですが、他国版でも、バージョンが同じだとコードベースではアドレスが同じなので、同じアドレスを書き換えれば動作します。

・ω・ Win2000は最初から対応してるのでよかった。

おすすめ

38件のフィードバック

  1. まりこ より:

    あなたにハッキングされた物です。
    ツイッターしなきゃよかった。最低。

  2. まりこ より:

    あなたにハッキングされた物です。
    ツイッターしなきゃよかった。最低。

  3. 黒翼猫 より:

    どなたかは存じませんが、アクセスログ拝見したところ、
    そちら、迷惑メール、ウィルスメールばらまいてるので有名なプロバイダさんですね。
    もしかして、ハッキングじゃなくてうちに飛んできた迷惑メール絡みの解析の話ですかね~。
    とりあえず、Twitterするだけで感染したりハッキングされるなんてことはありませんので
    ご安心ください。
    私は、Twitterつながりの人のPC触った覚えありませんし。
    Windows 8.1でIEなんか使ってる知り合いもいませんねぇ。
    本当にハッキングされたのなら、今すぐ警察に行くべきですね
    昔と違って今はちゃんと対応してくれますから ・ω・
    とりあえず、Twitterがらみで不審なことがあるなら、
    https://twitter.com/settings/applications
    で連携アプリケーションを確認してみることをお勧めします。

  4. 黒翼猫 より:

    どなたかは存じませんが、アクセスログ拝見したところ、
    そちら、迷惑メール、ウィルスメールばらまいてるので有名なプロバイダさんですね。
    もしかして、ハッキングじゃなくてうちに飛んできた迷惑メール絡みの解析の話ですかね~。
    とりあえず、Twitterするだけで感染したりハッキングされるなんてことはありませんので
    ご安心ください。
    私は、Twitterつながりの人のPC触った覚えありませんし。
    Windows 8.1でIEなんか使ってる知り合いもいませんねぇ。
    本当にハッキングされたのなら、今すぐ警察に行くべきですね
    昔と違って今はちゃんと対応してくれますから ・ω・
    とりあえず、Twitterがらみで不審なことがあるなら、
    https://twitter.com/settings/applications
    で連携アプリケーションを確認してみることをお勧めします。

  5. まりこ より:

    とぼけるんですね。

  6. まりこ より:

    とぼけるんですね。

  7. まりこ より:

    らばQで働いている人達は違法行為をしているんじゃないですか。

  8. まりこ より:

    らばQで働いている人達は違法行為をしているんじゃないですか。

  9. まりこ より:

    パソコンのこととか私わからないし、ばれなきゃなにしてもいいんですね。へえー楽しそう。

  10. まりこ より:

    パソコンのこととか私わからないし、ばれなきゃなにしてもいいんですね。へえー楽しそう。

  11. まりこ より:

    Twitterで、error403という方をフォローして、アルファのアカウントを頻繁に見るようになってから、パソコンの調子がおかしくなりました。私はパソコンに詳しくありません、彼らから離れるにはどうしたらいいんですか。

  12. まりこ より:

    Twitterで、error403という方をフォローして、アルファのアカウントを頻繁に見るようになってから、パソコンの調子がおかしくなりました。私はパソコンに詳しくありません、彼らから離れるにはどうしたらいいんですか。

  13. 黒翼猫 より:

    違法行為が具体的に何を指すかわかりませんが、
    らばQのライターの人と友達なだけで、サイト運営してる人のことはあまりよく知りません。
    調べてみましたが、らばQさんと error403 というアカウントに相関関係がないようですが、
    もうちょっと詳しく説明していただけるとありがたいです。
    Twitterのリンクサイト(たとえば、面白画像とかでよくリンクが張られる TwitPic は
    偽セキュリティソフトへの誘導リンクがあります。そういうのをクリックして、変なアプリを
    インストールしたんじゃありませんか?
    「らばQさんの知り合いだから、ハッキングしたんでしょう」とかあまりにも超越しすぎです・ω・;

  14. 黒翼猫 より:

    違法行為が具体的に何を指すかわかりませんが、
    らばQのライターの人と友達なだけで、サイト運営してる人のことはあまりよく知りません。
    調べてみましたが、らばQさんと error403 というアカウントに相関関係がないようですが、
    もうちょっと詳しく説明していただけるとありがたいです。
    Twitterのリンクサイト(たとえば、面白画像とかでよくリンクが張られる TwitPic は
    偽セキュリティソフトへの誘導リンクがあります。そういうのをクリックして、変なアプリを
    インストールしたんじゃありませんか?
    「らばQさんの知り合いだから、ハッキングしたんでしょう」とかあまりにも超越しすぎです・ω・;

  15. 名無し より:

    >まりこ さん
    あなたがログを出せば済む話しじゃなくて?

  16. 名無し より:

    >まりこ さん
    あなたがログを出せば済む話しじゃなくて?

  17. より:

    基地外乙

  18. より:

    基地外乙

  19. 名無し より:

    再び名無しです。
    >Twitterで、error403という方をフォローして、アルファのアカウントを頻繁に見るようになってから、パソコンの調子がおかしくなりました。
    これが正しいならば、Followしなければいいのでは?

  20. 名無し より:

    再び名無しです。
    >Twitterで、error403という方をフォローして、アルファのアカウントを頻繁に見るようになってから、パソコンの調子がおかしくなりました。
    これが正しいならば、Followしなければいいのでは?

  21. ああああ より:

    それなら、ウイルス対策ソフトを入れればいいのでは?

  22. ああああ より:

    それなら、ウイルス対策ソフトを入れればいいのでは?

  23. 良くわからないけど… より:

    これって、2000からXPがフォークした後で、2000の方へ赤字部分が追加されたという事でしょうか…。2000をメンテする人とXPを開発する人に分かれているが、情報が共有できていなかったのでしょうかね?wikipediaに書かれているXPと2000のサービスパックの項目を見ると共有できているとは思いますが…。個人的にそう思っただけだから、不安ではあります。

  24. 良くわからないけど… より:

    これって、2000からXPがフォークした後で、2000の方へ赤字部分が追加されたという事でしょうか…。2000をメンテする人とXPを開発する人に分かれているが、情報が共有できていなかったのでしょうかね?wikipediaに書かれているXPと2000のサービスパックの項目を見ると共有できているとは思いますが…。個人的にそう思っただけだから、不安ではあります。

  25. 名無しさん より:

    twitterすればハックされるなんて、さすが初心者の戯言と思いました。

  26. 名無しさん より:

    twitterすればハックされるなんて、さすが初心者の戯言と思いました。

  27. 黒翼猫 より:

    おそらく、ソースコードに #ifdef が追加されて、XPと2003で分岐して XPだと無効という形になってるんだと思います。

  28. 黒翼猫 より:

    おそらく、ソースコードに #ifdef が追加されて、XPと2003で分岐して XPだと無効という形になってるんだと思います。

  29. 名無し より:

    まりこ さんは逃げたのか?
    それともただの・・・?

  30. 名無し より:

    まりこ さんは逃げたのか?
    それともただの・・・?

  31. チューリップ より:

    Windows XP SP1まではPAE有効でメモリー4GBまで積んだ場合、3GB強ではなく4GBまでちゃんと認識したようす。
    リンク先等を調べるとXP SP1はPAE有効で16GBまで認識するようです。
    64GBまで使うにはntkrpamp.exeのパッチが必要なようです。
    XP SP2以降ではデータ実行防止機能(DEP)の機能の為に
    PAEをデフォルトで有効にしていますが、互換性の問題等を回避するために”4G以上のメモリを実装してる場合に必要な処理”を削除したのでしょう。
    しかしなぜかXP SP1の話題は全然出ないんだよな…

  32. チューリップ より:

    Windows XP SP1まではPAE有効でメモリー4GBまで積んだ場合、3GB強ではなく4GBまでちゃんと認識したようす。
    リンク先等を調べるとXP SP1はPAE有効で16GBまで認識するようです。
    64GBまで使うにはntkrpamp.exeのパッチが必要なようです。
    XP SP2以降ではデータ実行防止機能(DEP)の機能の為に
    PAEをデフォルトで有効にしていますが、互換性の問題等を回避するために”4G以上のメモリを実装してる場合に必要な処理”を削除したのでしょう。
    しかしなぜかXP SP1の話題は全然出ないんだよな…

  33. Garry050 より:

    XPとは直接関係は無いですが…
    Windows7ではReadFor4GB
    Windows8以降はPAE Patchで4GB以上認識できますが
    こちらの環境ではどうしてもIntel HD Graphics 3000が邪魔をしてブラックアウトしてしまいます。
    このブラックアウトをどうすれば回避できますかね…
    Intel HD Graphicsをインストールしていない状態だと正常に起動して4GB以上認識したんですがこれだとMinecraftなどのゲームが…
    ちなみにパソコンはDynabook B452/25Fです。

  34. Garry050 より:

    XPとは直接関係は無いですが…
    Windows7ではReadFor4GB
    Windows8以降はPAE Patchで4GB以上認識できますが
    こちらの環境ではどうしてもIntel HD Graphics 3000が邪魔をしてブラックアウトしてしまいます。
    このブラックアウトをどうすれば回避できますかね…
    Intel HD Graphicsをインストールしていない状態だと正常に起動して4GB以上認識したんですがこれだとMinecraftなどのゲームが…
    ちなみにパソコンはDynabook B452/25Fです。

  35. ちゅーりっぷ より:

    >>17
    海外のPATCHPAEやReadyfor4GBのスレでも同様の
    問題が報告されているようですね。インテルは
    対応する気がないようですので。(そもそもドライバ
    がWindows server 2008はサポート外)。
    なお回避方法はXPのドライバを入れる方法があるようです。(要infファイルの書き換え)しかしAeroが
    使えなくなってしまうというのが難点。

  36. ちゅーりっぷ より:

    >>17
    海外のPATCHPAEやReadyfor4GBのスレでも同様の
    問題が報告されているようですね。インテルは
    対応する気がないようですので。(そもそもドライバ
    がWindows server 2008はサポート外)。
    なお回避方法はXPのドライバを入れる方法があるようです。(要infファイルの書き換え)しかしAeroが
    使えなくなってしまうというのが難点。

  37. チューリップ より:

    XP SP1を入手して作動を確認してみました。
    PAE有効にした所、メモリ4GB迄フル認識しました。
    またtweakNTでserverモードにするとエディション
    によって最大認識メモリが変化します。(XP SP2/SP3
    ではバグるのでserverモードにしてはいけない。)
    しかしXP 無印/SP1でも、おそらくWin2000/2003に
    そんざいするコードが欠落している部分があるので、パッチしたXP SP2/SP3と同程度の安定度です。
    具体的には4GB超認識可能にしたWindows XP (無印~SP3)でVsuite RAMDisk server editionで管理領域内にだいたい4GBを超えるRAMDiskを作成すると
    ハングするorブルースクリンになります。
    この問題はWindows 2000やWindows server 2003では発生しません。

  38. チューリップ より:

    XP SP1を入手して作動を確認してみました。
    PAE有効にした所、メモリ4GB迄フル認識しました。
    またtweakNTでserverモードにするとエディション
    によって最大認識メモリが変化します。(XP SP2/SP3
    ではバグるのでserverモードにしてはいけない。)
    しかしXP 無印/SP1でも、おそらくWin2000/2003に
    そんざいするコードが欠落している部分があるので、パッチしたXP SP2/SP3と同程度の安定度です。
    具体的には4GB超認識可能にしたWindows XP (無印~SP3)でVsuite RAMDisk server editionで管理領域内にだいたい4GBを超えるRAMDiskを作成すると
    ハングするorブルースクリンになります。
    この問題はWindows 2000やWindows server 2003では発生しません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です