Windows 64 ビットの Sysnative フォルダーは仮想フォルダーであり、64 ビット システム上の System32 フォルダーを指すエイリアスです。システム上には物理的に存在しません。この投稿では、Windows の Sysnative フォルダー。
64 ビットの Windows 7 のリリースに伴い、Windows ディレクトリ内のフォルダーの通常の割り当てに小さな変更が導入されました。 64 ビット版の Windows 11、Windows 10、Windows 8、および Windows 7 には、2 つの新しいフォルダーが含まれています。シスネイティブそしてSysWOW64フォルダー。これは 64 ビット Windows のみで行われます。 64 ビット マシン上で 32 ビット Windows を実行している場合、これらは表示されません。 32 ビット マシン上で 32 ビット Windows を実行している場合も、これらは表示されません。
Windows ディレクトリの外に別のフォルダーがあり、そのフォルダーはプログラム ファイル (x86)。私たちは、プログラムの実行可能ファイルを格納するフォルダー Program Files の名前に慣れています。 64 ビット システムでは、64 ビット プログラムは Program Files フォルダーに保存され、32 ビット プログラムは Program Files (x86) に保存されます。ただし、Windows は 64 ビット マシン上で 32 ビット プログラムを実行するためにエミュレーションのようなものを使用します。したがって、必要なファイルにアクセスする方法を知るために、Windows (64 ビット) のシステム フォルダーが何であるかを知り、理解する必要があります。
32 ビット マシンとは異なり、32 ビット DLL はSystem32 フォルダー, 64 ビット版の Windows では、64 ビットに関連する DLL が System32 フォルダーに保存されます。これは、プログラミングの目的を容易にし、下位互換性を提供するためです。つまり、64 ビット プログラムがコード内で System32 を参照している場合、呼び出されたときに 64 ビット DLL が自動的に取得されます。これは、開発者が Windows 64 ビット用にプログラムのコードを変更する必要がないため役立ちます。
つまり、Windows はすべての 32 ビット DLL を Windows ディレクトリの System32 フォルダーから別のフォルダーに移動したため、64 ビットにアップグレードした後、API を使用している場合でも、適切な DLL を取得するために以前のプログラムを再コーディングする必要がなくなります。この問題は、32 ビット アプリケーションが System32 フォルダーにアクセスしようとすると発生します。この場合、プログラムは 64 ビット DLL を処理するように記述されていないため、クラッシュします。
読む: とは何ですかパンサーフォルダー?
Windows 64 ビットの SysWOW64 フォルダー
すべての 32 ビット DLL は新しいバージョンに移動されました。SysWOW64フォルダー64 ビット バージョンの Windows 11、Windows 10、Windows 8、および Windows 7 では、このため、32 ビット プログラムが 32 ビット DLL を呼び出すときは、SysWOW64 フォルダーに到達する必要があります。
読む:System32 フォルダーと SysWOW64 フォルダーの違い
開発者はプログラムやアプリケーションをスキャンして、DLL 関数が SysWOW64 フォルダーを指すようにする必要があると感じるかもしれません。しかし、マイクロソフトはすでにそれを処理しています。呼び出しているのが 32 ビット プログラムの場合C:\Windows\システム32、エミュレータはパスをリダイレクトしますC:\Windows\SysWOW64。つまり、32 ビット プログラムを Windows 64 ビットで実行するには、適切な下位互換性が確保され、DLL ファイル呼び出し時のエラーが回避されるようにエミュレータが使用されます。
Windows 64 ビットの Sysnative フォルダーとは何ですか
32 ビットのプログラムまたはアプリケーションに 64 ビット DLL が必要な場合があります。その場合、リダイレクトフォルダーを使用する必要があります。シスネイティブ。 SysNative は仮想フォルダーであり、System32 フォルダーを指すエイリアスであると考えることができます。それ自体はシステム上に物理的に存在しません。
したがって、32 ビット プログラムが 64 ビット DLL にアクセスする必要がある場合は、使用しないでください。C:\Windows\システム3232 ビット プログラム エミュレータは、それを SysWOW64 という 32 ビット DLL フォルダーに移動するためです。代わりに、使用してくださいC:\Windows\SysNativeDLL プログラムへのパスとして。パスで Sysnative を使用すると、SysWOW64 フォルダーではなく System32 フォルダーにリダイレクトされます。
ファイル Windows エクスプローラーを開くと、C:\Windows に Sysnative フォルダーが見つかりません。フォルダーオプションを隠しフォルダーとシステムフォルダーを表示する。これは、64 ビット Windows で実行している場合、Windows ファイル エクスプローラーは 64 ビット プログラムであり、Sysnative フォルダーは 32 ビット プログラムからのみ表示およびアクセスできるためです。
総括する:
- System32 フォルダーには 64 ビット DLL ファイルが含まれています。
- SysWOW64 には 32 ビット DLL ファイルが含まれており、32 ビット プログラムはこのフォルダーに自動リダイレクトされます。
- Sysnative は、32 ビット プログラムが 64 ビット DLL を呼び出すことを可能にするリダイレクト フォルダーです。
追加の読み物:MSDN。
読む: とは何ですかFOUND.000フォルダー?