64-битов

Обяснено е папката Sysnative в 64-битова Windows

Обяснено е папката Sysnative в 64-битова Windows

С пускането на Windows 7 на 64-бита, имаше малка промяна, въведена в нормалното разпределение на папки в директорията на Windows. Две нови папки са включени в 64-битовото издание на Windows 10, Windows 8 и Windows 70. Те са Синативен и SysWOW64 папки. Това е само в 64-битов Windows. Ако стартирате 32-битов Windows на 64-битова машина, няма да ги видите. Нито ще ги видите, когато стартирате 32-битов Windows на 32-битова машина.

Има друга папка извън директорията на Windows и тя се нарича Програмни файлове (x86). Свикнали сме с името на папка Program Files, в която се намират изпълнимите файлове на нашите програми. В 64-битовите системи 64-битовите програми се съхраняват в папката Program Files, докато 32-битовите програми се намират в Program Files (x86). Windows обаче използва нещо като емулация за стартиране на 32-битови програми на 64-битова машина. И следователно е необходимо да знаете и разберете кои са системните папки под Windows (64 бита), за да знаете как да достигнете желания файл.

За разлика от 32-битовите машини, където 32-битовите DLL файлове се съхраняват в Папка System32, 64-битовата версия на Windows съхранява DLL файлове, свързани с 64 бита в папката System32. Това е за улесняване на целите на програмирането и за осигуряване на обратна съвместимост. Тоест, ако 64-битова програма се позовава на System32 в своя код, тя ще получи 64-битовата DLL автоматично при извикване. Това помага на разработчиците, тъй като не е необходимо да променят кода в своите програми за Windows 64-bit.

Накратко, Windows премести всички 32-битови DLL файлове от папката System32 в директорията на Windows в друга папка, така че предишните програми не трябва да бъдат прекодирани, за да получат правилните DLL файлове дори при използване на API - след надграждане до 64-битова. Проблемът възниква, когато 32-битово приложение се опитва да осъществи достъп до папката System32. В този случай програмата ще се срине, тъй като не е написана за обработка на 64-битови DLL файлове.

Прочети: Какво представлява папката Panther?

Папка SysWOW64 в Windows 64-bit

Всички 32-битови DLL файлове са преместени в новата Папка SysWOW64 в 64-битовата версия на Windows 10, Windows 8 и Windows 7, така че когато 32-битовите програми извикват 32-битови DLL файлове, те трябва да достигнат до папката SysWOW64.

Може да смятате, че разработчиците ще трябва да сканират своите програми и приложения, за да насочат DLL функциите към папката SysWOW64. Но Microsoft вече се погрижи за това. Ако това е 32-битова програма, която се обажда C: \ Windows \ System32, емулатор ще пренасочи пътя към C: \ Windows \ SysWOW64. Тоест, за стартиране на 32-битови програми в 64-битова Windows се използва емулатор, така че да има правилна обратна съвместимост и да се избегнат грешки при извикване на DLL файлове.

Прочети: Какво е НАМЕРЕНОТО.000 папка?

Sysnative Folder в 64-битова Windows

Възможно е да има случаи, когато 32-битова програма или приложение може да се нуждае от 64-битова DLL. В този случай ще трябва да използвате папката за пренасочване Синативен. Можете да разгледате SysNative като виртуална папка и псевдоним, който сочи към папката System32. Той не съществува физически във вашата система като такъв.

Така че, ако вашата 32-битова програма трябва да има достъп до 64-битова DLL, не използвайте C: \ Windows \ System32 защото 32-битовият програмен емулатор ще го отведе в 32-битовата DLL папка, наречена SysWOW64. Вместо това използвайте C: \ Windows \ SysNative като пътя към DLL програмата. Използването на Sysnative в пътя ще го пренасочи към папката System32 вместо папката SysWOW64.

Ако отворите File Windows Explorer, няма да намерите папката Sysnative в C: \ Windows. Дори ако сте задали Опции за папки да показват скрити и системни папки. Това е така, защото Windows File Explorer е 64-битова програма, когато се изпълнява в 64-битов Windows, а папката Sysnative е видима и достъпна само от 32-битови програми.

Да обобщим:

  1. Папките System32 съдържат 64-битови DLL файлове.
  2. SysWOW64 съдържа 32-битови DLL файлове и 32-битовите програми се пренасочват автоматично към тази папка
  3. Sysnative е папка за пренасочване, която позволява на 32-битовите програми да извикват 64-битови DLL файлове.

Допълнително четене: MSDN.

Искате ли да знаете разликата между папките System32 и SysWOW64?

Как да заснемете и поточно предадете игралната си сесия на Linux
В миналото играта на игри се смяташе само за хоби, но с течение на времето игралната индустрия отбеляза огромен ръст по отношение на технологиите и бр...
Най-добрите игри за игра с ръчно проследяване
Oculus Quest наскоро представи страхотната идея за ръчно проследяване без контролери. С непрекъснато нарастващия брой игри и дейности, които изпълнява...
Как да покажете OSD наслагване в приложения на цял екран за Linux и игри
Играта на цял екран или използване на приложения в режим на цял екран без разсейване може да ви откъсне от съответната системна информация, видима в п...