14

I got this pop-up from the Windows firewall. What is "C:2\" in the path? The real path is D:\Steam\SteamApps\common\...

Windows Firewall dialog pop-up

I tried cd /d C:2\ in cmd and got "The system cannot find the path specified."

I also tried cd C:2\ in Powershell and got "Set-Location : Cannot find path 'C:\2\' because it does not exist."

So how is "C:2\" a shortcut for "D:\"?

Update:

I tried searching for C:2 in the registry, as @Tyson suggested. There are a lot of irrelevant search results when I search for C:2 in the registry with "Match whole string only" unchecked and no results with "Match whole string only" checked. Yet I found the key, it's in HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules and its value is v2.10|Action=Allow|Active=TRUE|Dir=In|Protocol=17|Profile=Private|App=C:2\steam\steamapps\common\sonic & all-stars racing transformed\asn_app_pcdx9_final.exe|Name=asn_app_pcdx9_final.exe|Desc=asn_app_pcdx9_final.exe|Defer=User|. There is a rule for D:\Steam\SteamApps\common\Sonic & All-Stars Racing Transformed\ASN_App_PcDx9_Final.exe in Windows Firewall with Advanced Security > Inbound Rules. I also found a rule for Team Fortress 2, which is v2.10|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Private|App=C:0\steam\steamapps\common\team fortress 2\hl2.exe|Name=hl2.exe|Desc=hl2.exe|Defer=User| in the registry and D:\Steam\SteamApps\common\Team Fortress 2\hl2.exe in the Windows firewall rule list. Other games installed in D:\Steam\... have D:\ both in the registry and Windows firewall rules. So it's probably how Steam makes aliases for drives other than C:\, but I'd like to know how it works, and why in one case it was C:2\, in another C:0\, and in the third one just D:\. I guess it's probably because it's an external HDD, and sometimes Steam couldn't find it the moment Windows woke up after sleep, so Steam assigned different aliases for it.

But what actually makes those aliases work? There are no folders called 2 or 0, it's just D:\Steam\...

  • 3
    If I were to hazard a guess. Steam reported the incorrect location for some reason, my educated guess, C:2\ is steam specific syntax. – Ramhound Aug 13 '14 at 11:06
  • 3
    Technically it's a valid path. It names the 2 subdirectory on the current working dir of the C drive. Of course, if the CWD on the C drive doesn't have such a subdir, then you can't CD to it. – MSalters Aug 13 '14 at 11:49
  • Does D: exist as a separate physical hard drive, or as a partition of the system drive? – Tyson Aug 13 '14 at 13:03
  • @Tyson: Separate physical drive. – HAL 9000 Aug 13 '14 at 16:00
  • 2
    that shoots one of my theories... If your registry comfortable level allows, try searching the registry for `C:2` – Tyson Aug 13 '14 at 16:10
2

#1 ADS

Could this be a file called C, which is actually a junction (symbolic link) accessible from the app's PATH, and for which there's an alternate NTFS stream ADS (Alternate Data Stream) so that C:1, C:2, C:3, etc. would resolve to a different location? Since Steam have been limited to single-drive installation for most of its existence, perhaps this was a hacky workaround to support relocating games?

Main issue: I'm not aware that ADS worked with folders, shortcut targets, links or junctions. However, if it did, that would bring it pretty close to this syntax.

#2 Relative path

On the link posted by KingZoingo, we can see that C: could be the current relative path:

"C:tempdir\tmp.txt" refers to a file in a subdirectory to the current directory on drive C.

Since it's legal to name a folder or junction "2", that would also lead to this syntax.

Main issue: I would have expected the Firewall to show the actual absolute path.

  • +1 for Relative path. Even though it seems wrong. The actual paths are provided, including D:\Steam\SteamApps\common\, so a subdirectory called 2 seems to not be a part of it. Still, your answer provides good thinking and the idea is good for people to be aware of, hence rendering your answer to be useful (even if it isn't the correct answer). – TOOGAM Nov 23 '16 at 4:07
0

Without seeing, what is actually in the running process memory, it's hard to tell.

Generally speaking, the program can do alot of crap to its own memory, that including altering or removing the "Command line" it was executed with. Or executing the child process. (As far as I recall, Steam go a long mile each time it start, checking for updates and re-re-restarting itself until it all lose any meaning.)

In short: even if the syntax itself of that line is somewhat "legal", the reality could be anything at all. There can't be a decisive answer, until someone with better tools face the same issue and investigate it in person.

0

The implicit question here, I think, is whether c:2\foo is legal in Windows. Google is not helpful here because the search strings are too common. But MSDN is helpful and confirms that it is not. See their page here. So that is another data point in support of your Steam client scribbling over the entry. Perhaps it's trying to tell you its opinion of the game :)

  • From your link: "C:tempdir\tmp.txt refers to a file in a subdirectory to the current directory on drive C." If tempdir is called "2", that would be a valid relative path. However, it's surprising that the firewall would not show the absolute path. – mtone Nov 22 '16 at 20:14
  • Great spot. Yes, that is certainly a possibility. – AlwaysLearning Nov 22 '16 at 20:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.