char *fill_if_match (char *base, ULONG type, char *dest)
{
for (region *r = regions; r; r = r->next)
- if ((base >= r->start && base < r->end)
- /* Special case WOW64. The TEB is 8K within the region reserved
- for it. No idea what the lower 8K are used for. */
- || (r->teb && wincap.is_wow64 ()
- && r->start == base + 2 * wincap.page_size ()))
+ if (base >= r->start && base < r->end)
{
char *p = dest + __small_sprintf (dest, "[%s (tid %ld)",
r->teb ? "teb" : "stack",
differ, return the final path as symlink content and set symlen
to a negative value. This forces path_conv::check to restart
symlink evaluation with the new path. */
-#ifdef __i386__
- /* On WOW64, ignore any potential problems if the path is inside
- the Windows dir to avoid false positives for stuff under File
- System Redirector control. Believe it or not, but even
- GetFinalPathNameByHandleA returns the converted path for the
- Sysnative dir. I. e.
-
- C:\Windows\Sysnative --> C:\Windows\System32
-
- This is obviously wrong when using this path for further
- file manipulation because the non-final path points to another
- file than the final path. Oh well... */
- if (!fs.is_remote_drive () && wincap.is_wow64 ())
- {
- /* windows_directory_path is stored without trailing backslash,
- so we have to check this explicitely. */
- if (RtlEqualUnicodePathPrefix (&upath, &windows_directory_path, TRUE)
- && upath.Buffer[windows_directory_path.Length / sizeof (WCHAR)]
- == L'\\')
- goto file_not_symlink;
- }
-#endif /* __i386__ */
if ((pc_flags & (PC_SYM_FOLLOW | PC_SYM_NOFOLLOW_REP)) == PC_SYM_FOLLOW)
{
PWCHAR fpbuf = tp.w_get ();
int32_t hostid = 0x40291372; /* Choose a nice start value */
WCHAR wguid[38];
- reg_key key (HKEY_LOCAL_MACHINE,
- KEY_READ | (wincap.is_wow64() ? KEY_WOW64_64KEY : 0),
+ reg_key key (HKEY_LOCAL_MACHINE, KEY_READ,
L"SOFTWARE", L"Microsoft", L"Cryptography", NULL);
key.get_string (L"MachineGuid", wguid, 38,
L"00000000-0000-0000-0000-000000000000");
memset (name, 0, sizeof (*name));
/* sysname */
- __small_sprintf (name->sysname, "CYGWIN_%s-%u%s",
- wincap.osname (), wincap.build_number (),
- wincap.is_wow64 () ? "-WOW64" : "");
+ __small_sprintf (name->sysname, "CYGWIN_%s-%u",
+ wincap.osname (), wincap.build_number ());
/* nodename */
memset (buf, 0, sizeof buf);
cygwin_gethostname (buf, sizeof buf - 1);
memset (name, 0, sizeof (*name));
__small_sprintf (name->sysname, "CYGWIN_%s", wincap.osname ());
- /* Add a hint to the sysname, that we're running under WOW64. This might
- give an early clue if somebody encounters problems. */
- if (wincap.is_wow64 ())
- strncat (name->sysname, "-WOW",
- sizeof name->sysname - strlen (name->sysname) - 1);
-
/* Computer name */
cygwin_gethostname (name->nodename, sizeof (name->nodename) - 1);
((wincaps *)caps)->is_server = (version.wProductType != VER_NT_WORKSTATION);
#ifdef __x86_64__
- wow64 = 0;
/* 64 bit systems have one more guard page than their 32 bit counterpart. */
++((wincaps *)caps)->def_guard_pages;
-#else
- if (NT_SUCCESS (NtQueryInformationProcess (NtCurrentProcess (),
- ProcessWow64Information,
- &wow64, sizeof wow64, NULL))
- && !wow64)
#endif
{
((wincaps *)caps)->has_gaa_largeaddress_bug = false;
SYSTEM_INFO system_info;
RTL_OSVERSIONINFOEXW version;
char osnam[40];
- ULONG_PTR wow64;
void *caps;
public:
{ return (size_t) system_info.dwAllocationGranularity; }
const char *osname () const { return osnam; }
const DWORD build_number () const { return version.dwBuildNumber; }
- const bool is_wow64 () const { return !!wow64; }
#define IMPLEMENT(cap) cap() const { return ((wincaps *) this->caps)->cap; }