64-bitų Windows versijos egzistuoja jau virš dešimtmečio (nuo Windows XP laikų). Nuo pat pradžių 64-bitų versijos pasižymėjo tarpusavio suderinamumo galimybe su 32-bitų programomis. Tai buvo pasiekta paliekant tiek senas 32-bitų sistemines programas bei bibliotekas, tiek pateikiant naujas, 64-bitų analogus. Senos 32-bitų programos buvo patalpintos į %WinDir%\SysWOW64 katalogą, o naujos 64-bitų programos liko visiems įprastoje vietoje - %WinDir%\System32 kataloge. Taigi, atrodytų viskas paprasta:

  • jeigu norima iškviesti, pvz., 32-bitų cmd.exe - paleidžiame iš %WinDir%\SysWOW64\cmd.exe
  • jeigu norima iškviesti, pvz., 64-bitų cmd.exe - paleidžiame iš %WinDir%\System32\cmd.exe

Įdomu pasidaro kai iš 32-bitų proceso norima paleisti 64-bitų programą. Windows aptiks 32-bitų aplikacijos kreipinį į %WinDir%\System32, bet kadangi ten tik 64-bitų programos, automatiškai kreipinį nukreips į %WinDir%\SysWOW64, taip užtikrinant, kad senos programos veikia ir toliau. Tačiau kartais norima iškviesti būtent 64-bitų versiją, ką daryti tokiu atveju? Išeitis - leisti programas iš specialaus menamo katalogo %WinDir%\Sysnative. Windows aptiks kreipinį į tokį katalogą ir automatiškai jį nukreips į %WinDir%\System32, t.y. 64-bitų versiją.

Taigi, nors ir painu, atminimui:

  • jeigu norima iškviesti, pvz., 32-bitų cmd.exe - paleidžiame iš %WinDir%\SysWOW64\cmd.exe
  • jeigu norima iškviesti, pvz., 64-bitų cmd.exe iš 64-bitų proceso - paleidžiame iš %WinDir%\System32\cmd.exe
  • jeigu norima iškviesti, pvz., 64-bitų cmd.exe iš 32-bitų proceso - paleidžiame iš %WinDir%\Sysnative\cmd.exe

Daugiau apie taip vadinamą Windows File System Redirector galima pasiskaityti MSDN.

Patiko (0)

Rodyk draugams