パソコンを快適に使う為の情報を紹介しています。

幸せになれるPCライフ

MSDN

32bitソフトの64bit環境での動作 Windows

WOW64実装の詳細 - マイクロソフト・MSDN 64bit対応Wiki

WOW64エミュレーターはユーザーモードで実行されます。 Ntdll.dllの32ビットバージョンとプロセッサのカーネル間のインターフェイスを提供し、カーネル呼び出しをインターセプトします。 WOW64エミュレーターは、次のDLLで構成されています。

Wow64.dllは、Ntoskrnl.exeエントリポイント関数のコアエミュレーションインフラストラクチャとサンクを提供します。
Wow64Win.dllは、Win32k.sysエントリポイント関数のサンクを提供します。
(x64のみ)Wow64Cpu.dllは、x64上でx86プログラムを実行するためのサポートを提供します。
(Intel Itaniumのみ)IA32Exec.binにはx86ソフトウェアエミュレータが含まれています。
(Intel Itaniumのみ)Wowia32x.dllは、IA32Exec.binとWOW64間のインターフェイスを提供します。
(ARM64のみ)xtajit.dllにはx86ソフトウェアエミュレータが含まれています。
(ARM64のみ)wowarmw.dllは、ARM64でARM32プログラムを実行するためのサポートを提供します。

これらのDLLは、64ビットバージョンのNtdll.dllとともに、32ビットプロセスにロードできる唯一の64ビットバイナリです。 ARM上のWindows 10では、CHPE(Compiled Hybrid Portable Executable)バイナリもx86 32ビットプロセスにロードできます。

起動時に、Wow64.dllはNtdll.dllのx86バージョン(または有効になっている場合はCHPEバージョン)を読み込み、必要なすべての32ビットDLLを読み込む初期化コードを実行します。ほとんどすべての32ビットDLLは、32ビットWindowsバイナリの変更されていないコピーですが、一部はパフォーマンス上の理由からCHPEとしてロードされます。これらのDLLの一部は、通常64ビットシステムコンポーネントとメモリを共有するため、WOW64での動作が32ビットWindowsでの動作と異なるように記述されています。 32ビット制限を超えるユーザーモードアドレス空間はすべて、システムによって予約されています。詳細については、WOW64でのパフォーマンスとメモリ消費を参照してください。

x86システムサービス呼び出しシーケンスを使用する代わりに、システム呼び出しを行う32ビットバイナリが再構築され、カスタム呼び出しシーケンスを使用します。この呼び出しシーケンスは、完全にユーザーモードのままであるため、WOW64がインターセプトするのに安価です。カスタム呼び出しシーケンスが検出されると、WOW64 CPUはネイティブ64ビットモードに戻り、Wow64.dllを呼び出します。サンクは、64ビットカーネルへの影響を軽減し、カーネルモードのクラッシュ、データ破損、またはセキュリティホールを引き起こす可能性のあるサンクのバグのリスクを軽減するために、ユーザーモードで実行されます。サンクは、32ビットスタックから引数を抽出し、64ビットに拡張してから、ネイティブシステムコールを行います。

 

環境変数

32ビットプロセスが64ビットプロセスによって作成される場合、または64ビットプロセスが32ビットプロセスによって作成される場合、WOW64は、作成されたプロセスの環境変数を次の表に示すように設定します。

プロセス 環境変数
64ビットプロセス PROCESSOR_ARCHITECTURE=AMD64 or PROCESSOR_ARCHITECTURE=IA64 or PROCESSOR_ARCHITECTURE=ARM64
ProgramFiles=%ProgramFiles%
ProgramW6432=%ProgramFiles%
CommonProgramFiles=%CommonProgramFiles%
CommonProgramW6432=%CommonProgramFiles%
Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP: The ProgramW6432 and CommonProgramW6432 environment variables were added starting with Windows 7 and Windows Server 2008 R2.
32ビットプロセス PROCESSOR_ARCHITECTURE=x86
PROCESSOR_ARCHITEW6432=%PROCESSOR_ARCHITECTURE%
ProgramFiles=%ProgramFiles(x86)%
ProgramW6432=%ProgramFiles%
CommonProgramFiles=%CommonProgramFiles(x86)%
CommonProgramW6432=%CommonProgramFiles%

 

グローバルフック

次の条件が満たされている場合、SetWindowsHookEx関数を使用してDLLを別のプロセスに挿入できます。

32ビットDLLは32ビットプロセスにのみ挿入でき、64ビットDLLは64ビットプロセスにのみ挿入できます。 32ビットDLLを64ビットプロセスに挿入したり、その逆を行うことはできません。
32ビットDLLと64ビットDLLには異なる名前が必要です。
DLLとプロセスのアーキテクチャは一致する必要があります。たとえば、32ビットのx86 DLLを32ビットのARMプロセスに挿入することはできません。

詳細については、SetWindowsHookExを参照してください。

WH_MOUSE、WH_KEYBOARD、WH_JOURNAL *、WH_SHELL、および低レベルのフックは、フックを処理するスレッドではなく、フックをインストールしたスレッドで呼び出すことができることに注意してください。これらのフックでは、32ビットフックがフックチェーンで64ビットフックよりも先にある場合、32ビットフックと64ビットフックの両方が呼び出される可能性があります。詳細については、フックの使用を参照してください。

参考記事:WOW64 Implementation Details

 

最近パソコンが遅いと感じる事はありませんか?

Windowsは使用している間にいつの間にか、購入当初から比べると、動作が遅く、重くなってきます。
理由はドライバのインストール、Windowsアップデートなど色々あります。
そんな症状がソフトを入れるだけで解消します。

私も使用していますが、【アバスト クリーンアップ プレミアム】がおすすめです。

 

 

パソコンの遅い!重たい!をワンクリックで解決!

Advanced SystemCareだからできる

パソコンをワンクリックで高速で快適にすることはもちろん安全でクリーンに
Advanced SystemCareだからできる究極のソリューションを提供します。

より高速で快適なパソコンに

パソコンは使い続けるほど動作が遅くなっていきます。Advanced SystemCare は、スタートアップ項目の管理をはじめ、ブラウザ設定の最適化、RAM や CPU の監視をおこないパソコンの動作を高速化することができます。

さらに安全で安定したシステムに

パソコンは思わぬことから、スパイウェアに感染する可能性があり、不要なレジストリによりクラッシュなど重大な問題が発生する可能性があります。Advanced SystemCare なら、ワンクリックでこれらの問題を修正して、パソコンのセキュリティと安定性を向上させ、安心・安全にインターネットを楽しむことができます。

個人情報の保護

個人情報の漏洩防止のため、PC上に保管されている個人情報を安全に管理することが重要です。Advanced SystemCare は、連絡先をはじめローカルにあるメールデータなどのあらゆる個人情報への不正なアクセスを検出し、信頼されていないプログラムからのアクセスをブロックします。また、あなたのデジタルフィンガープリントを秘匿し追跡できないようにします。

 

ここがおすすめ

第31回Vectorプロレジ大賞 高速・快適化部門賞 受賞記念セール! 【世界2.5億人が愛用】わずか1クリックでエラーの修復、保護から最適化まで行なうパソコンの総合メンテナンスツール「Advanced SystemCare 12 PRO」が 【53%OFF】の【超特価1,980円】 無期限で利用できます。そしてパソコン3台まで利用可能です

 

SSDとハードディスクを両方搭載可能なノートパソコンをおすすめします。

堅牢なセキュリティー

指紋センサーを選択すると、指のタッチですばやくログインすることができます。また、TCG V2.0準拠のセキュリティーチップ(TPM)を内蔵。ビジネスに堅牢なセキュリティーを提供します。

パワフルなパフォーマンス

第8世代インテル® Core™ プロセッサー搭載。高速に起動が可能なインテル® Optane™ メモリーやAMD Radeon™ グラフィクスを選択可能。パワフルなパフォーマンスでビジネスの生産性に貢献します。また、USB3.1 Gen1 Type-C (Video-out 機能付き)、USB 3.1 Gen1(Powered USB)、HDMIなどの豊富なポートを備えているので、さまざまなデバイスを接続することが可能です。

長時間バッテリー駆動、急速充電

最大約14.3時間*1の長時間バッテリー駆動可能なので、どこでも快適に使えます。また、バッテリーが消耗しても、急速充電*2の機能により約1時間で80%のバッテリー充電が可能です。

 

SSD搭載でWindows10が25秒で起動

おすすめサイトをご紹介

  • この記事を書いた人

山本

はじめまして。「山本まこと」と申します。 フリーランスでシステムエンジニアを現役でさせて頂いています。 業務内容はシステム設計、プログラム作成等何でさせて頂いています。 特にサーバ構築、業務端末(パソコン)の構築の仕事を多くさせて頂いています。 サーバ構築はOSが24時間止まらず高パフォーマンスで動作する用に設定したり セキュリティ対策(脆弱性)を実施することやデータベースの構築も実施します。 業務端末(パソコン)の構築は業務アプリケーションが快適に動作するようOSの設定を実施します。 パソコンは日進月歩で性能はどんどん向上しています。 またマイクロソフトのOSもWinows7からWindows10へ移行する段階を迎えています。 Windows10においては、使い勝手はとても良くなっていますが、自動化が進み、一度不調になってしまうと設定変更での修復するにはコツが必要です。 また、マシンスペックについてもある程度のものが要求されます。 このホームページでは、皆さんがパソコンを快適に使っていただけるようにお役に立てたらと思い、記事を書かせて頂いています。

-32bitソフトの64bit環境での動作, Windows
-, , , ,

Copyright© 幸せになれるPCライフ , 2019 All Rights Reserved.