Synchronizace adresaru pod 64bit OS

Zde můžete volně diskutovat o programu Altap Salamander. Ptejte se, odpovídejte a vyjadřujte své názory. Prosíme, nevkládejte sem hlášení problémů či návrhy na nové funkce.
Raptor

Synchronizace adresaru pod 64bit OS

Post by Raptor »

Narazil jsem na zajimavou vec. Potreboval jsem udelat nejaky zaznam do hosts souboru tak se naviguju do zname slozky C:\Windows\System32\drivers\etc a ono najednou ta slozka tady neni. Rikam si co je to za blbost? Podivam se do Exploreru a vidim ji. V AS nevidim.
hosts.png
hosts.png (39.58 KiB) Viewed 13231 times
Fajn, asi je to teda omezeni AS ze neumi poradne pracovat pod 64bitem. Preziju to. Ale co jsem necekal, ze ve chvili kdy do slozky C:\Windows\SysWOW64\drivers vytvorim slozku etc tak najednou se ukaze adresar i v AS v te predchozi slozce C:\Windows\System32\drivers\ a muzu tam jit.

Nejake vysvetleni?
User avatar
Ether
Posts: 1471
Joined: 10 May 2007, 16:08
Location: Czech Republic
Contact:

Re: Synchronizace adresaru pod 64bit OS

Post by Ether »

Uvnitř SysWOW64 se nachází adresáře, které systém předkládá 32bitovým programům jako normální obsah systémového adresáře. Efektem je to, že co se objeví v SysWOW64, objeví se i v tomto virtuálním System32 (platí pouze pro 32bitové aplikace). "Tohle není chyba, to je vlastnost."

Doplnění: nejde tedy o synchronizaci, ve skutečnosti jsou to identické adresáře.
Ελληνικά rulez.
Raptor

Re: Synchronizace adresaru pod 64bit OS

Post by Raptor »

To chapu, ale proc tedy AS (jako 32b aplikace) nevidi komplet obsah system32 (ktery je pro 32b aplikace) a vidi ho az tehdy, pokud udelam kopii 32b dat do 64b dat? :-) Jde mi o to ze adresar C:\Windows\System32\drivers\etc existuje a AS ho nevidi, i kdyz by dle mne mel.
User avatar
Ether
Posts: 1471
Joined: 10 May 2007, 16:08
Location: Czech Republic
Contact:

Re: Synchronizace adresaru pod 64bit OS

Post by Ether »

Teď si nejsem jistý, co myslíš. Chápu správně, že?:
  • V Salamanderovi na začátku etc nebyl.
  • V Exploreru byl.
  • Když jsi vytvořil etc v Salamanderovi, objevil se prázdný adresář.
  • Zároveň se objevil prázdný adresář v SysWOW64.
Ελληνικά rulez.
Raptor

Re: Synchronizace adresaru pod 64bit OS

Post by Raptor »

Tak jeste jednou :-)
- C:\Windows\SysWOW64\drivers\etc - neexistuje
- C:\Windows\System32\drivers\etc - existuje (obsahuje dalsi soubory), ale AS to nevidi

Vytvorim adresar C:\Windows\SysWOW64\drivers\etc a najednou se ukaze i C:\Windows\System32\drivers\etc i s obsahem
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Synchronizace adresaru pod 64bit OS

Post by Jan Rysavy »

Zajímavé, potvrzuji popisované chování pod Windows Vista x64. Z eskalovaného Salamandera nelze vytvořit adresář C:\Windows\System32\drivers\etc (zobrazená chyba: adresář již existuje).
Pokud vytvořím adresář C:\Windows\SysWOW64\drivers\etc, je na cestě C:\Windows\SysWOW64\drivers\etc prázdný, ale na cestě C:\Windows\System32\drivers\etc se v něm zobrazují soubory, které jsou v tomto adresáři vidět z x64 Windows Exploreru.

Pravděpodobně jde o nějaký hack ve File System Redirector.

Přesunu vlákno do obecné diskuze, protože jde o věc společnou všem 32bitovým aplikacím běžícím pod x64 Windows. Nejde tedy o chybu na straně Salamandera.
User avatar
Ether
Posts: 1471
Joined: 10 May 2007, 16:08
Location: Czech Republic
Contact:

Re: Synchronizace adresaru pod 64bit OS

Post by Ether »

MSDN wrote:Certain subdirectories are exempt from redirection. Access to these subdirectories is not redirected to %windir%\SysWOW64:
  • %windir%\system32\catroot
  • %windir%\system32\catroot2
  • %windir%\system32\driversstore
  • %windir%\system32\drivers\etc
  • %windir%\system32\logfiles
  • %windir%\system32\spool
Z tohoto usuzuji, že vytvoření adresáře SysWOW64\drivers\etc ve skutečnosti nebylo potřeba, pouze se tím umožnil snadný přístup. Teoreticky by totiž jakýkoli přímý přístup do system32\drivers\etc měl být propuštěný do hlavního systémového adresáře (tedy nepřesměrovaný do SysWOW64). Jenže přístup na system32\drivers\ je přesměrovaný, takže když vylistuju adresář system32\drivers\, pošle mi systém listing SysWOW64\drivers\, ve kterém žádný etc není, takže se zdá, že se do něj dostat němůžu. Vytvořením adresáře etc jsme získali pouze položku v listingu, ale samotný adresář tam byl vždycky.

Potřeboval bych ale tuhle teorii ověřit tím, že by se vzal netčený 64bitový Windows (nebo se ten etc zrušil tak, aby nastal stejný stav jako na začátku - tedy do etc se zdánlivě nedá dostat), a pak by se v Salamanderovi zadala přímo cesta %windir%\system32\drivers\etc. Pokud se nepletu, tak by se měl bez problémů obsah zobrazit. Bohužel jsem v nemilém nedostatku 64bitových systému; pokud budu mít příležitost, tak odzkouším a podám zprávu.
Ελληνικά rulez.
Raptor

Re: Synchronizace adresaru pod 64bit OS

Post by Raptor »

ether wrote:pak by se v Salamanderovi zadala přímo cesta %windir%\system32\drivers\etc. Pokud se nepletu, tak by se měl bez problémů obsah zobrazit.
Nemuzu to rict ted na 100%, ale tusim jsem toto zkousel, i primo zmenit adresar pres Shift+F7 a AS hlasil ze adresar neexistuje.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Synchronizace adresaru pod 64bit OS

Post by Jan Rysavy »

Raptor wrote:Nemuzu to rict ted na 100%, ale tusim jsem toto zkousel, i primo zmenit adresar pres Shift+F7 a AS hlasil ze adresar neexistuje.
Běžná 32b aplikace by takto adresář C:\Windows\System32\drivers\etc skutečně měla otevřít. V Salamanderu to neprojde (nezkoumal jsem ve zdrojácích, ale je to téměř určitě tak), protože funkce pro změny cesty jsou poměrně komplikované. EDIT: pokud vytvoříte adresář C:\Windows\SysWOW64\drivers\etc, rutiny Salamandera tím obelstíte a umožníte vstup do C:\Windows\System32\drivers\etc.

Celá věc je tím myslím jasná, jde o výjimku v redirectoru, dle předpokladu.
Raptor

Re: Synchronizace adresaru pod 64bit OS

Post by Raptor »

No ja nevim co je vyreseno? Stale nejsem schopen pomoci AS jit a editovat hosts soubor, aniz bych delal zasahy do jine slozky.

Zaver (obecne a zjednodusene receno) je tedy takovy, ze AS neumoznuje editovat obsah slozky etc a mam cekat na 64bit verzi AS?
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Synchronizace adresaru pod 64bit OS

Post by Jan Rysavy »

Díky této výjimce to naopak lze, viz doplňení mého minulého příspěvku.

Jednoduše vytvořte adresář C:\Windows\SysWOW64\drivers\etc a následně editujte (tím pádem přístupné) C:\Windows\System32\drivers\etc\hosts.

Otestováno na Windows Vista x64.

x64 verze Salamandera již bude zobrazovat to samé co x64 Windows Explorer, tedy nebude podléhat redirectoru.
User avatar
Ether
Posts: 1471
Joined: 10 May 2007, 16:08
Location: Czech Republic
Contact:

Re: Synchronizace adresaru pod 64bit OS

Post by Ether »

Jen mě napadá, že by se dal jednodušše upravit DemoPlug plugin, aby si ve svém threadu Redirector vypl a zobrazoval skutečný stav filesystemu. Bohužel na to nemám vývojové prostředky, takže přenechávám případnému zájemci. Na potřebné funkce jsou odkazy v MSDN - File System Redirector.
Ελληνικά rulez.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Synchronizace adresaru pod 64bit OS

Post by Jan Rysavy »

Raptor wrote:No ja nevim co je vyreseno? Stale nejsem schopen pomoci AS jit a editovat hosts soubor, aniz bych delal zasahy do jine slozky.
Pomohlo Vám navržené řešení?
Raptor

Re: Synchronizace adresaru pod 64bit OS

Post by Raptor »

Jan Rysavy wrote:Pomohlo Vám navržené řešení?
Mno vzhledem k tomu, ze s tim "resenim" jsem prisel sam a hlasil jsem jak se pak AS chova, tak mi nic jineho nezbyva :D Obecne to beru ale spise jako takovou oberlicku nez reseni. Ale pockam jak se bude chovat 64b verze AS a pak se pripadne ozvu :-)
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Synchronizace adresaru pod 64bit OS

Post by Jan Rysavy »

Problém není na straně 32b aplikací (například Salamander) ale v tom, jak MS implementovali podporu pro 32b aplikace pod 64b Windows.
64b verze Salamandera se bude chovat z hlediska přístupnosti adresářů shodně s 64b Průzkumníkem.
Post Reply