問題タブ [wow64]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Wow64DisableWow64FsRedirectionおよびGetNamedSecurityInfo-避けられないERROR_BAD_EXE_FORMAT?
Wow64DisableWow64FsRedirection/を使用Wow64RevertWow64FsRedirectionしてWOW-64ファイルリダイレクトを無効にして復元しています(system32\からsyswow64\への変更といくつかのレジストリの変更)。MSDNページでは、DLLのロードを含むすべてのI / O操作に影響を与えるため、これらのペアを非常に接近して使用する必要があると警告しています。
私はかなり長い間これらをうまく使用してきましたが、今では一見不可能な状況に直面しています。私が呼び出そうとしている関数GetNamedSecurityInfoは、ファイルパスを取得する関数です。ファイルパスは頻繁にsystem32フォルダーに入るので、リダイレクトを無効にする必要があります。ただし、リダイレクトを無効にすると、関数はを返しますERROR_BAD_EXE_FORMAT。
含まれているDLLをプリロードしようとしましたLoadLibrary(TEXT("Advapi32.dll"))が、役に立ちませんでした。私の推測では、別のDLLをロードしていると思いますGetNamedSecurityInfoが、どちらかはわかりません。
それで、ここに質問があります。この状況に対処するための最良の方法は何ですか?使用する前に、可能なすべてのDLLをプリロードする必要がありますWow64DisableWow64FsRedirectionか?もっと良い方法はありますか?
ありがとう。
windows - 64ビットWindowsレジストリ-%ProgramFiles%が%ProgramFiles(x86)%に変換されるのはなぜですか?
次のコードを実行した後、32ビットプロセスで、データ%ProgramFiles%が自動的に変換されました。
結果
<-なんてこった。誰がそれを拡張しますか?
データを変換したくありません。-しかし、タイプREG_EXPAND_SZを使用する必要があります。
私はどのように行いますか?
python - os.path.exists("C:\\windows\\system32\\inetsrv\\metaback") が存在する場合でも False を返すのはなぜですか?
いくつかのディレクトリをクリーンアップすることになっているpythonプログラムを持っていますが、そのうちの1つはC:\windows\system32\inetsrv\metaback; ただし、os.path.exists()そのディレクトリが存在する場合でも、そのディレクトリに False を返します (そして、私はそれにアクセスする権限を持っています)。
また興味深いのは、windirstatツールも完全に見落としていることです。
これがなぜあるのか、そしてそれが存在するかどうかを確認する別の方法は何ですか? 私はそれを実行することさえできないようですos.listdir()。
更新: os.path.exists()Windows ボックスが 32 ビットの場合はこのディレクトリで機能しますが、64 ビットの場合は機能しません。32 ビット ボックスの windirstat でも正しく表示されます。
32bit-64bit - 32 ビットのみのマネージ C++ アセンブリを生成する方法
Visual Studio 2005 の Managed C++ で DLL をコンパイルする必要があります。
32Bitのcorflagをオンにして欲しい。参照については、 http://illuminatedcomputing.com/blog/?p=117を参照してください。
デフォルトでは、Win32 プラットフォームを選択し、liker で /MACHINE:X86 オプションを設定しますが、生成された DLL には 32 ビットの corflag がオフになっています。コマンドラインから実行することで見ることができます
corflags MyDll.dll
その dll を Windows 64 ビットで実行すると問題が発生します。したがって、dll を強制的に 32 ビットにする必要があります。
Visual Studio 2005 コンパイラを構成する方法について何か考えはありますか?
c# - 32 ビット OpenFileDialog --> 64 ビット System32?
32 ビット プログラムで、ファイルを開く/保存ダイアログに 64 ビット システムの System32 フォルダ内のファイルを表示するにはどうすればよいですか?
(Wow64DisableWow64FsRedirection何らかの理由でダイアログで機能しないため、機能しません。別のスレッド上にあるためだと思います。もちろんSysNative、ユーザーは内部で何が起こっているのかを認識していないため、使用は機能しません; 彼はコンピュータ上の「実際の」ファイルを見たいだけです。)
質問をする別の方法は次のとおりです。
ファイルを開くダイアログから 64 ビット フォルダを参照する32 ビット プログラムはありますか?System32
windows - WoW64エミュレーションレイヤーは何をしますか?

すべてのWoW64アプリは、WoW64エミュレーションレイヤーを通過します。
このレイヤーで何が起こっているのか知りたいです(特に、アドレス空間をどのように変換できるか)
重要なポイントを教えてください。
c++ - 0Kのコンパイル中のx64システム上のwin32アプリケーションでのランタイムエラー(dllの読み込み)
私はもともと、VC9.0を使用してwin732ビットでwin32アプリケーションを設計しました。最近、win7 64ビットにアップグレードし、前のアプリケーションをビルドして実行しようとしました。
ビルドは正常に実行されますが(win32アプリケーション)、実行時に「[...]はコード-1073741701(0xc000007b)で終了しました」というエラーが表示されます。
これは、[意図された]32ビットdllの64ビットバージョンをロードした結果だと思います。
このプロジェクトの具体的な依存関係は次のとおりです。SDL.libSDLmain.libSDL_ttf.libopengl32.lib glu32.lib wininet.lib
SDLとSDL_ttfは32ビットバージョンのみです。Win32アプリケーションを要求すると、VisualStudioは\syswow64内のopenglファイルとglulibファイルをフェッチするのに十分賢いと思います。
それはwininetのせいでしょうか?それとも私は間違いを犯しましたか?
ありがとう、
vb6 - 64 ビット Win2k3 で MSDTC/oracle XA を使用する 32 ビット DLL
64 ビット システムで実行する必要がある COM+ アプリケーション (主に vb6 ベース) があります。Oracle データベース (10g、32 ビット) と通信することになっています。XA を無効にするとすべて正常に動作しますが、有効にすると次のエラーが表示されます。
XA トランザクション マネージャーは、XA リソース マネージャー DLL 内の "GetXaSwitch" 関数を呼び出しました。「GetXaSwitch」関数の呼び出しに失敗しました: ファイル=d:\nt\com\complus\dtc\dtc\xatm\src\xarmconn.cpp 行=2503。
私のオラクルクライアントは10g 32ビットです。
32 ビットと 64 ビットの互換性についてはよくわかりませんが、アプリケーションがレジストリの WOW64 部分 ([hklm/software/wow6432node/microsoft/msdtc/mtxoci]) にある MSDTC dll を呼び出していることがわかります。レジストリのネイティブ 64 ビット部分にある XADLL にアクセスします ([hklm/software/microsoft/msdtc/xall])。
そこで、そこにある参照を 32 ビット dll に変更しようとしましたが、読み込まれませんでした。
このエラーを修正する方法について何か考えがある人はいますか?
c# - .netWebアプリが64ビットWindows/IIS7.5で低速で実行される
asp.net 3.5 / sql server 2005で記述されたWebアプリがあり、ローカルマシン(winXP)とテストサーバー(win2003)で非常に高速に実行されますが、win2008を実行している運用サーバーでは一部のページの実行が非常に遅くなります。 r2。Webアプリはコンパイルされていませんが、2つの32ビットdll(intelligenciaurlrewriterとキャンペーンモニターAPI)を使用しています。アプリケーションプールで32ビットアプリを有効にするようにiis7.5を構成しましたが、これによる違いはありません。また、問題のページは、正常に読み込まれる他のページよりも、上記のdllを使用していません。問題のページは非常に重いデータベース作業を行っているので、本番サーバーが32ビットSQLを実行しているという事実と関係があるのではないかと思います!?!
誰かがこれらの症状を経験したことがありますか、または誰かが私がこれの底に到達する方法についていくつかのアドバイスを提供できますか?
乾杯
ティム
winapi - 32 ビット プロセスから %SystemRoot%\system32\calc.exe を開くと、別のファイルにリダイレクトされます。どれが、なぜ、どのように?
私は現在、ファイル形式の構造を理解するために PE ファイルをいじる C++ でいくつかのテスト コードを書いています。私のプロジェクトは 64 ビットにコンパイルするように設定されています。私のコードでは、%SystemRoot%\system32\calc.exe を開き、IMAGE_DOS_HEADER および IMAGE_NT_HEADERS 構造を読み取ります。同時に、同じ calc.exe を Notepad++ で 16 進エディター プラグインを使用して開いています。コードが読み取った値を Notepad++ と比較したところ、それらが異なることに気付きました。calc.exe を System32 から C:\Temp\calc.exe にコピーしたところ、値が一致しました。
Notepad++ は 32 ビット アプリケーションのようです (PE ファイルはチェックしていませんが、デフォルトで Program Files (x86) にインストールされているため、安全な想定のようです)。
この WinSxS は機能していますか? または、他に何が原因ですか?また、%SystemRoot%\system32\calc.exe を開く 32 ビット アプリケーションに実際に供給されるファイルはどれでしょうか?
ちょっと興味があるんだけど。これについて何か光を当ててくれてありがとう。