* fhandler_console.cc (fhandler_console::read): Drop 9x specific
handling of AltGr key. * mmap.cc: Take NT for granted throughout. * wincap.cc: Remove map_view_of_file_ex_sucks, altgr_is_ctrl_alt, has_working_copy_on_write, share_mmaps_only_by_name, virtual_protect_works_on_shared_pages, has_mmap_alignment_bug and has_working_virtual_lock throughout. * wincap.h: Ditto.
This commit is contained in:
parent
eef57fe1e3
commit
3af640487f
|
@ -1,3 +1,14 @@
|
||||||
|
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* fhandler_console.cc (fhandler_console::read): Drop 9x specific
|
||||||
|
handling of AltGr key.
|
||||||
|
* mmap.cc: Take NT for granted throughout.
|
||||||
|
* wincap.cc: Remove map_view_of_file_ex_sucks, altgr_is_ctrl_alt,
|
||||||
|
has_working_copy_on_write, share_mmaps_only_by_name,
|
||||||
|
virtual_protect_works_on_shared_pages, has_mmap_alignment_bug and
|
||||||
|
has_working_virtual_lock throughout.
|
||||||
|
* wincap.h: Ditto.
|
||||||
|
|
||||||
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* fhandler.cc (fhandler_base::set_no_inheritance): Always use
|
* fhandler.cc (fhandler_base::set_no_inheritance): Always use
|
||||||
|
|
|
@ -385,17 +385,9 @@ fhandler_console::read (void *pv, size_t& buflen)
|
||||||
part is to distinguish whether the right Alt key should be
|
part is to distinguish whether the right Alt key should be
|
||||||
recognized as Alt, or as AltGr. */
|
recognized as Alt, or as AltGr. */
|
||||||
bool meta;
|
bool meta;
|
||||||
if (wincap.altgr_is_ctrl_alt ())
|
meta = (control_key_state & ALT_PRESSED) != 0
|
||||||
/* WinNT: AltGr is reported as Ctrl+Alt, and Ctrl+Alt is
|
&& ((control_key_state & CTRL_PRESSED) == 0
|
||||||
treated just like AltGr. However, if Ctrl+Alt+key generates
|
|| ((signed char) ich >= 0 && ich <= 0x1f || ich == 0x7f));
|
||||||
an ASCII control character, interpret is as META. */
|
|
||||||
meta = (control_key_state & ALT_PRESSED) != 0
|
|
||||||
&& ((control_key_state & CTRL_PRESSED) == 0
|
|
||||||
|| ((signed char) ich >= 0 && ich <= 0x1f || ich == 0x7f));
|
|
||||||
else
|
|
||||||
/* Win9x: there's no way to distinguish Alt from AltGr, so rely
|
|
||||||
on dev_state->meta_mask heuristic (see fhandler_console constructor). */
|
|
||||||
meta = (control_key_state & dev_state->meta_mask) != 0;
|
|
||||||
if (!meta)
|
if (!meta)
|
||||||
toadd = tmp + 1;
|
toadd = tmp + 1;
|
||||||
else if (dev_state->metabit)
|
else if (dev_state->metabit)
|
||||||
|
|
|
@ -105,9 +105,7 @@ gen_create_protect (DWORD openflags, int flags)
|
||||||
else if (openflags & GENERIC_WRITE)
|
else if (openflags & GENERIC_WRITE)
|
||||||
ret = PAGE_READWRITE;
|
ret = PAGE_READWRITE;
|
||||||
|
|
||||||
/* Ignore EXECUTE permission on 9x. */
|
if (openflags & GENERIC_EXECUTE)
|
||||||
if ((openflags & GENERIC_EXECUTE)
|
|
||||||
&& wincap.virtual_protect_works_on_shared_pages ())
|
|
||||||
ret <<= 4;
|
ret <<= 4;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -130,9 +128,7 @@ gen_protect (int prot, int flags)
|
||||||
else if (prot & PROT_READ)
|
else if (prot & PROT_READ)
|
||||||
ret = PAGE_READONLY;
|
ret = PAGE_READONLY;
|
||||||
|
|
||||||
/* Ignore EXECUTE permission on 9x. */
|
if (prot & PROT_EXEC)
|
||||||
if ((prot & PROT_EXEC)
|
|
||||||
&& wincap.virtual_protect_works_on_shared_pages ())
|
|
||||||
ret <<= 4;
|
ret <<= 4;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -833,7 +829,6 @@ mmap64 (void *addr, size_t len, int prot, int flags, int fd, _off64_t off)
|
||||||
struct __stat64 st;
|
struct __stat64 st;
|
||||||
|
|
||||||
DWORD pagesize = getpagesize ();
|
DWORD pagesize = getpagesize ();
|
||||||
DWORD checkpagesize;
|
|
||||||
|
|
||||||
fh_anonymous.set_io_handle (INVALID_HANDLE_VALUE);
|
fh_anonymous.set_io_handle (INVALID_HANDLE_VALUE);
|
||||||
fh_anonymous.set_access (GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE);
|
fh_anonymous.set_access (GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE);
|
||||||
|
@ -841,36 +836,18 @@ mmap64 (void *addr, size_t len, int prot, int flags, int fd, _off64_t off)
|
||||||
|
|
||||||
SetResourceLock (LOCK_MMAP_LIST, READ_LOCK | WRITE_LOCK, "mmap");
|
SetResourceLock (LOCK_MMAP_LIST, READ_LOCK | WRITE_LOCK, "mmap");
|
||||||
|
|
||||||
/* EINVAL error conditions. Note that the addr%pagesize test is deferred
|
/* EINVAL error conditions. */
|
||||||
to workaround a serious alignment problem in Windows 98. */
|
|
||||||
if (off % pagesize
|
if (off % pagesize
|
||||||
|| ((prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC)))
|
|| ((prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC)))
|
||||||
|| ((flags & MAP_TYPE) != MAP_SHARED
|
|| ((flags & MAP_TYPE) != MAP_SHARED
|
||||||
&& (flags & MAP_TYPE) != MAP_PRIVATE)
|
&& (flags & MAP_TYPE) != MAP_PRIVATE)
|
||||||
#if 0
|
|
||||||
|| (fixed (flags) && ((uintptr_t) addr % pagesize))
|
|| (fixed (flags) && ((uintptr_t) addr % pagesize))
|
||||||
#endif
|
|
||||||
|| !len)
|
|| !len)
|
||||||
{
|
{
|
||||||
set_errno (EINVAL);
|
set_errno (EINVAL);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* There's a serious alignment problem in Windows 98. MapViewOfFile
|
|
||||||
sometimes returns addresses which are page aligned instead of
|
|
||||||
granularity aligned. OTOH, it's not possible to force such an
|
|
||||||
address using MapViewOfFileEx. So what we do here to let it work
|
|
||||||
at least most of the time is, allow 4K aligned addresses in 98,
|
|
||||||
to enable remapping of formerly mapped pages. If no matching
|
|
||||||
free pages exist, check addr again, this time for the real alignment. */
|
|
||||||
checkpagesize = wincap.has_mmap_alignment_bug () ?
|
|
||||||
getsystempagesize () : pagesize;
|
|
||||||
if (fixed (flags) && ((uintptr_t) addr % checkpagesize))
|
|
||||||
{
|
|
||||||
set_errno (EINVAL);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!anonymous (flags) && fd != -1)
|
if (!anonymous (flags) && fd != -1)
|
||||||
{
|
{
|
||||||
/* Ensure that fd is open */
|
/* Ensure that fd is open */
|
||||||
|
@ -956,19 +933,12 @@ mmap64 (void *addr, size_t len, int prot, int flags, int fd, _off64_t off)
|
||||||
goto go_ahead;
|
goto go_ahead;
|
||||||
}
|
}
|
||||||
fsiz -= off;
|
fsiz -= off;
|
||||||
/* On NT systems we're creating the pages beyond EOF as reserved,
|
/* We're creating the pages beyond EOF as reserved, anonymous pages.
|
||||||
anonymous pages. That's not possible on 9x for two reasons.
|
|
||||||
It neither allows to create reserved pages in the shared memory
|
|
||||||
area, nor does it allow to create page aligend mappings (in
|
|
||||||
contrast to granularity aligned mappings).
|
|
||||||
|
|
||||||
Note that this isn't done in WOW64 environments since apparently
|
Note that this isn't done in WOW64 environments since apparently
|
||||||
WOW64 does not support the AT_ROUND_TO_PAGE flag which is required
|
WOW64 does not support the AT_ROUND_TO_PAGE flag which is required
|
||||||
to get this right. Too bad. */
|
to get this right. Too bad. */
|
||||||
if (wincap.virtual_protect_works_on_shared_pages ()
|
if (!wincap.is_wow64 ()
|
||||||
&& !wincap.is_wow64 ()
|
&& ((len > fsiz && !autogrow (flags)) || len < pagesize))
|
||||||
&& ((len > fsiz && !autogrow (flags))
|
|
||||||
|| len < pagesize))
|
|
||||||
orig_len = len;
|
orig_len = len;
|
||||||
if (len > fsiz)
|
if (len > fsiz)
|
||||||
{
|
{
|
||||||
|
@ -1018,14 +988,6 @@ go_ahead:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Deferred alignment test, see above. */
|
|
||||||
if (wincap.has_mmap_alignment_bug ()
|
|
||||||
&& fixed (flags) && ((uintptr_t) addr % pagesize))
|
|
||||||
{
|
|
||||||
set_errno (EINVAL);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (orig_len)
|
if (orig_len)
|
||||||
{
|
{
|
||||||
/* If the requested length is bigger than the file size, we try to
|
/* If the requested length is bigger than the file size, we try to
|
||||||
|
@ -1144,9 +1106,7 @@ munmap (void *addr, size_t len)
|
||||||
set_errno (EINVAL);
|
set_errno (EINVAL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
/* See comment in mmap64 for a description. */
|
size_t pagesize = getpagesize ();
|
||||||
size_t pagesize = wincap.has_mmap_alignment_bug () ?
|
|
||||||
getsystempagesize () : getpagesize ();
|
|
||||||
if (((uintptr_t) addr % pagesize) || !len)
|
if (((uintptr_t) addr % pagesize) || !len)
|
||||||
{
|
{
|
||||||
set_errno (EINVAL);
|
set_errno (EINVAL);
|
||||||
|
@ -1210,10 +1170,7 @@ msync (void *addr, size_t len, int flags)
|
||||||
|
|
||||||
SetResourceLock (LOCK_MMAP_LIST, WRITE_LOCK | READ_LOCK, "msync");
|
SetResourceLock (LOCK_MMAP_LIST, WRITE_LOCK | READ_LOCK, "msync");
|
||||||
|
|
||||||
/* See comment in mmap64 for a description. */
|
if (((uintptr_t) addr % getpagesize ())
|
||||||
size_t pagesize = wincap.has_mmap_alignment_bug () ?
|
|
||||||
getsystempagesize () : getpagesize ();
|
|
||||||
if (((uintptr_t) addr % pagesize)
|
|
||||||
|| (flags & ~(MS_ASYNC | MS_SYNC | MS_INVALIDATE))
|
|| (flags & ~(MS_ASYNC | MS_SYNC | MS_INVALIDATE))
|
||||||
|| (flags & (MS_ASYNC | MS_SYNC) == (MS_ASYNC | MS_SYNC)))
|
|| (flags & (MS_ASYNC | MS_SYNC) == (MS_ASYNC | MS_SYNC)))
|
||||||
{
|
{
|
||||||
|
@ -1221,7 +1178,7 @@ msync (void *addr, size_t len, int flags)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
#if 0 /* If I only knew why I did that... */
|
#if 0 /* If I only knew why I did that... */
|
||||||
len = roundup2 (len, pagesize);
|
len = roundup2 (len, getpagesize ());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Iterate through the map, looking for the mmapped area.
|
/* Iterate through the map, looking for the mmapped area.
|
||||||
|
@ -1274,8 +1231,7 @@ mprotect (void *addr, size_t len, int prot)
|
||||||
syscall_printf ("mprotect (addr: %p, len %u, prot %x)", addr, len, prot);
|
syscall_printf ("mprotect (addr: %p, len %u, prot %x)", addr, len, prot);
|
||||||
|
|
||||||
/* See comment in mmap64 for a description. */
|
/* See comment in mmap64 for a description. */
|
||||||
size_t pagesize = wincap.has_mmap_alignment_bug () ?
|
size_t pagesize = getpagesize ();
|
||||||
getsystempagesize () : getpagesize ();
|
|
||||||
if ((uintptr_t) addr % pagesize)
|
if ((uintptr_t) addr % pagesize)
|
||||||
{
|
{
|
||||||
set_errno (EINVAL);
|
set_errno (EINVAL);
|
||||||
|
@ -1361,9 +1317,6 @@ out:
|
||||||
extern "C" int
|
extern "C" int
|
||||||
mlock (const void *addr, size_t len)
|
mlock (const void *addr, size_t len)
|
||||||
{
|
{
|
||||||
if (!wincap.has_working_virtual_lock ())
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
/* Instead of using VirtualLock, which does not guarantee that the pages
|
/* Instead of using VirtualLock, which does not guarantee that the pages
|
||||||
|
@ -1429,9 +1382,6 @@ mlock (const void *addr, size_t len)
|
||||||
extern "C" int
|
extern "C" int
|
||||||
munlock (const void *addr, size_t len)
|
munlock (const void *addr, size_t len)
|
||||||
{
|
{
|
||||||
if (!wincap.has_working_virtual_lock ())
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
push_thread_privilege (SE_LOCK_MEMORY_PRIV, true);
|
push_thread_privilege (SE_LOCK_MEMORY_PRIV, true);
|
||||||
|
|
|
@ -20,13 +20,7 @@ static NO_COPY wincaps wincap_unknown = {
|
||||||
has_security:true,
|
has_security:true,
|
||||||
has_security_descriptor_control:false,
|
has_security_descriptor_control:false,
|
||||||
has_ip_helper_lib:false,
|
has_ip_helper_lib:false,
|
||||||
map_view_of_file_ex_sucks:false,
|
|
||||||
altgr_is_ctrl_alt:true,
|
|
||||||
has_physical_mem_access:true,
|
has_physical_mem_access:true,
|
||||||
has_working_copy_on_write:true,
|
|
||||||
share_mmaps_only_by_name:false,
|
|
||||||
virtual_protect_works_on_shared_pages:true,
|
|
||||||
has_mmap_alignment_bug:false,
|
|
||||||
has_hard_links:true,
|
has_hard_links:true,
|
||||||
can_open_directories:true,
|
can_open_directories:true,
|
||||||
has_move_file_ex:true,
|
has_move_file_ex:true,
|
||||||
|
@ -51,7 +45,6 @@ static NO_COPY wincaps wincap_unknown = {
|
||||||
detect_win16_exe:false,
|
detect_win16_exe:false,
|
||||||
has_null_console_handler_routine:true,
|
has_null_console_handler_routine:true,
|
||||||
has_disk_ex_ioctls:false,
|
has_disk_ex_ioctls:false,
|
||||||
has_working_virtual_lock:true,
|
|
||||||
has_disabled_user_tos_setting:false,
|
has_disabled_user_tos_setting:false,
|
||||||
has_fileid_dirinfo:false,
|
has_fileid_dirinfo:false,
|
||||||
has_exclusiveaddruse:false,
|
has_exclusiveaddruse:false,
|
||||||
|
@ -73,13 +66,7 @@ static NO_COPY wincaps wincap_nt4 = {
|
||||||
has_security:true,
|
has_security:true,
|
||||||
has_security_descriptor_control:false,
|
has_security_descriptor_control:false,
|
||||||
has_ip_helper_lib:false,
|
has_ip_helper_lib:false,
|
||||||
map_view_of_file_ex_sucks:false,
|
|
||||||
altgr_is_ctrl_alt:true,
|
|
||||||
has_physical_mem_access:true,
|
has_physical_mem_access:true,
|
||||||
has_working_copy_on_write:true,
|
|
||||||
share_mmaps_only_by_name:false,
|
|
||||||
virtual_protect_works_on_shared_pages:true,
|
|
||||||
has_mmap_alignment_bug:false,
|
|
||||||
has_hard_links:true,
|
has_hard_links:true,
|
||||||
can_open_directories:true,
|
can_open_directories:true,
|
||||||
has_move_file_ex:true,
|
has_move_file_ex:true,
|
||||||
|
@ -104,7 +91,6 @@ static NO_COPY wincaps wincap_nt4 = {
|
||||||
detect_win16_exe:false,
|
detect_win16_exe:false,
|
||||||
has_null_console_handler_routine:true,
|
has_null_console_handler_routine:true,
|
||||||
has_disk_ex_ioctls:false,
|
has_disk_ex_ioctls:false,
|
||||||
has_working_virtual_lock:true,
|
|
||||||
has_disabled_user_tos_setting:false,
|
has_disabled_user_tos_setting:false,
|
||||||
has_fileid_dirinfo:false,
|
has_fileid_dirinfo:false,
|
||||||
has_exclusiveaddruse:false,
|
has_exclusiveaddruse:false,
|
||||||
|
@ -126,13 +112,7 @@ static NO_COPY wincaps wincap_nt4sp4 = {
|
||||||
has_security:true,
|
has_security:true,
|
||||||
has_security_descriptor_control:false,
|
has_security_descriptor_control:false,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
map_view_of_file_ex_sucks:false,
|
|
||||||
altgr_is_ctrl_alt:true,
|
|
||||||
has_physical_mem_access:true,
|
has_physical_mem_access:true,
|
||||||
has_working_copy_on_write:true,
|
|
||||||
share_mmaps_only_by_name:false,
|
|
||||||
virtual_protect_works_on_shared_pages:true,
|
|
||||||
has_mmap_alignment_bug:false,
|
|
||||||
has_hard_links:true,
|
has_hard_links:true,
|
||||||
can_open_directories:true,
|
can_open_directories:true,
|
||||||
has_move_file_ex:true,
|
has_move_file_ex:true,
|
||||||
|
@ -157,7 +137,6 @@ static NO_COPY wincaps wincap_nt4sp4 = {
|
||||||
detect_win16_exe:false,
|
detect_win16_exe:false,
|
||||||
has_null_console_handler_routine:true,
|
has_null_console_handler_routine:true,
|
||||||
has_disk_ex_ioctls:false,
|
has_disk_ex_ioctls:false,
|
||||||
has_working_virtual_lock:true,
|
|
||||||
has_disabled_user_tos_setting:false,
|
has_disabled_user_tos_setting:false,
|
||||||
has_fileid_dirinfo:false,
|
has_fileid_dirinfo:false,
|
||||||
has_exclusiveaddruse:true,
|
has_exclusiveaddruse:true,
|
||||||
|
@ -179,13 +158,7 @@ static NO_COPY wincaps wincap_2000 = {
|
||||||
has_security:true,
|
has_security:true,
|
||||||
has_security_descriptor_control:true,
|
has_security_descriptor_control:true,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
map_view_of_file_ex_sucks:false,
|
|
||||||
altgr_is_ctrl_alt:true,
|
|
||||||
has_physical_mem_access:true,
|
has_physical_mem_access:true,
|
||||||
has_working_copy_on_write:true,
|
|
||||||
share_mmaps_only_by_name:false,
|
|
||||||
virtual_protect_works_on_shared_pages:true,
|
|
||||||
has_mmap_alignment_bug:false,
|
|
||||||
has_hard_links:true,
|
has_hard_links:true,
|
||||||
can_open_directories:true,
|
can_open_directories:true,
|
||||||
has_move_file_ex:true,
|
has_move_file_ex:true,
|
||||||
|
@ -210,7 +183,6 @@ static NO_COPY wincaps wincap_2000 = {
|
||||||
detect_win16_exe:false,
|
detect_win16_exe:false,
|
||||||
has_null_console_handler_routine:true,
|
has_null_console_handler_routine:true,
|
||||||
has_disk_ex_ioctls:false,
|
has_disk_ex_ioctls:false,
|
||||||
has_working_virtual_lock:true,
|
|
||||||
has_disabled_user_tos_setting:true,
|
has_disabled_user_tos_setting:true,
|
||||||
has_fileid_dirinfo:true,
|
has_fileid_dirinfo:true,
|
||||||
has_exclusiveaddruse:true,
|
has_exclusiveaddruse:true,
|
||||||
|
@ -232,13 +204,7 @@ static NO_COPY wincaps wincap_xp = {
|
||||||
has_security:true,
|
has_security:true,
|
||||||
has_security_descriptor_control:true,
|
has_security_descriptor_control:true,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
map_view_of_file_ex_sucks:false,
|
|
||||||
altgr_is_ctrl_alt:true,
|
|
||||||
has_physical_mem_access:true,
|
has_physical_mem_access:true,
|
||||||
has_working_copy_on_write:true,
|
|
||||||
share_mmaps_only_by_name:false,
|
|
||||||
virtual_protect_works_on_shared_pages:true,
|
|
||||||
has_mmap_alignment_bug:false,
|
|
||||||
has_hard_links:true,
|
has_hard_links:true,
|
||||||
can_open_directories:true,
|
can_open_directories:true,
|
||||||
has_move_file_ex:true,
|
has_move_file_ex:true,
|
||||||
|
@ -263,7 +229,6 @@ static NO_COPY wincaps wincap_xp = {
|
||||||
detect_win16_exe:false,
|
detect_win16_exe:false,
|
||||||
has_null_console_handler_routine:true,
|
has_null_console_handler_routine:true,
|
||||||
has_disk_ex_ioctls:true,
|
has_disk_ex_ioctls:true,
|
||||||
has_working_virtual_lock:true,
|
|
||||||
has_disabled_user_tos_setting:true,
|
has_disabled_user_tos_setting:true,
|
||||||
has_fileid_dirinfo:true,
|
has_fileid_dirinfo:true,
|
||||||
has_exclusiveaddruse:true,
|
has_exclusiveaddruse:true,
|
||||||
|
@ -285,13 +250,7 @@ static NO_COPY wincaps wincap_2003 = {
|
||||||
has_security:true,
|
has_security:true,
|
||||||
has_security_descriptor_control:true,
|
has_security_descriptor_control:true,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
map_view_of_file_ex_sucks:false,
|
|
||||||
altgr_is_ctrl_alt:true,
|
|
||||||
has_physical_mem_access:false,
|
has_physical_mem_access:false,
|
||||||
has_working_copy_on_write:true,
|
|
||||||
share_mmaps_only_by_name:false,
|
|
||||||
virtual_protect_works_on_shared_pages:true,
|
|
||||||
has_mmap_alignment_bug:false,
|
|
||||||
has_hard_links:true,
|
has_hard_links:true,
|
||||||
can_open_directories:true,
|
can_open_directories:true,
|
||||||
has_move_file_ex:true,
|
has_move_file_ex:true,
|
||||||
|
@ -316,7 +275,6 @@ static NO_COPY wincaps wincap_2003 = {
|
||||||
detect_win16_exe:false,
|
detect_win16_exe:false,
|
||||||
has_null_console_handler_routine:true,
|
has_null_console_handler_routine:true,
|
||||||
has_disk_ex_ioctls:true,
|
has_disk_ex_ioctls:true,
|
||||||
has_working_virtual_lock:true,
|
|
||||||
has_disabled_user_tos_setting:true,
|
has_disabled_user_tos_setting:true,
|
||||||
has_fileid_dirinfo:true,
|
has_fileid_dirinfo:true,
|
||||||
has_exclusiveaddruse:true,
|
has_exclusiveaddruse:true,
|
||||||
|
@ -338,13 +296,7 @@ static NO_COPY wincaps wincap_vista = {
|
||||||
has_security:true,
|
has_security:true,
|
||||||
has_security_descriptor_control:true,
|
has_security_descriptor_control:true,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
map_view_of_file_ex_sucks:false,
|
|
||||||
altgr_is_ctrl_alt:true,
|
|
||||||
has_physical_mem_access:false,
|
has_physical_mem_access:false,
|
||||||
has_working_copy_on_write:true,
|
|
||||||
share_mmaps_only_by_name:false,
|
|
||||||
virtual_protect_works_on_shared_pages:true,
|
|
||||||
has_mmap_alignment_bug:false,
|
|
||||||
has_hard_links:true,
|
has_hard_links:true,
|
||||||
can_open_directories:true,
|
can_open_directories:true,
|
||||||
has_move_file_ex:true,
|
has_move_file_ex:true,
|
||||||
|
@ -369,7 +321,6 @@ static NO_COPY wincaps wincap_vista = {
|
||||||
detect_win16_exe:false,
|
detect_win16_exe:false,
|
||||||
has_null_console_handler_routine:true,
|
has_null_console_handler_routine:true,
|
||||||
has_disk_ex_ioctls:true,
|
has_disk_ex_ioctls:true,
|
||||||
has_working_virtual_lock:true,
|
|
||||||
has_disabled_user_tos_setting:true,
|
has_disabled_user_tos_setting:true,
|
||||||
has_fileid_dirinfo:true,
|
has_fileid_dirinfo:true,
|
||||||
has_exclusiveaddruse:true,
|
has_exclusiveaddruse:true,
|
||||||
|
|
|
@ -20,13 +20,7 @@ struct wincaps
|
||||||
unsigned has_security : 1;
|
unsigned has_security : 1;
|
||||||
unsigned has_security_descriptor_control : 1;
|
unsigned has_security_descriptor_control : 1;
|
||||||
unsigned has_ip_helper_lib : 1;
|
unsigned has_ip_helper_lib : 1;
|
||||||
unsigned map_view_of_file_ex_sucks : 1;
|
|
||||||
unsigned altgr_is_ctrl_alt : 1;
|
|
||||||
unsigned has_physical_mem_access : 1;
|
unsigned has_physical_mem_access : 1;
|
||||||
unsigned has_working_copy_on_write : 1;
|
|
||||||
unsigned share_mmaps_only_by_name : 1;
|
|
||||||
unsigned virtual_protect_works_on_shared_pages : 1;
|
|
||||||
unsigned has_mmap_alignment_bug : 1;
|
|
||||||
unsigned has_hard_links : 1;
|
unsigned has_hard_links : 1;
|
||||||
unsigned can_open_directories : 1;
|
unsigned can_open_directories : 1;
|
||||||
unsigned has_move_file_ex : 1;
|
unsigned has_move_file_ex : 1;
|
||||||
|
@ -51,7 +45,6 @@ struct wincaps
|
||||||
unsigned detect_win16_exe : 1;
|
unsigned detect_win16_exe : 1;
|
||||||
unsigned has_null_console_handler_routine : 1;
|
unsigned has_null_console_handler_routine : 1;
|
||||||
unsigned has_disk_ex_ioctls : 1;
|
unsigned has_disk_ex_ioctls : 1;
|
||||||
unsigned has_working_virtual_lock : 1;
|
|
||||||
unsigned has_disabled_user_tos_setting : 1;
|
unsigned has_disabled_user_tos_setting : 1;
|
||||||
unsigned has_fileid_dirinfo : 1;
|
unsigned has_fileid_dirinfo : 1;
|
||||||
unsigned has_exclusiveaddruse : 1;
|
unsigned has_exclusiveaddruse : 1;
|
||||||
|
@ -89,13 +82,7 @@ public:
|
||||||
bool IMPLEMENT (has_security)
|
bool IMPLEMENT (has_security)
|
||||||
bool IMPLEMENT (has_security_descriptor_control)
|
bool IMPLEMENT (has_security_descriptor_control)
|
||||||
bool IMPLEMENT (has_ip_helper_lib)
|
bool IMPLEMENT (has_ip_helper_lib)
|
||||||
bool IMPLEMENT (map_view_of_file_ex_sucks)
|
|
||||||
bool IMPLEMENT (altgr_is_ctrl_alt)
|
|
||||||
bool IMPLEMENT (has_physical_mem_access)
|
bool IMPLEMENT (has_physical_mem_access)
|
||||||
bool IMPLEMENT (has_working_copy_on_write)
|
|
||||||
bool IMPLEMENT (share_mmaps_only_by_name)
|
|
||||||
bool IMPLEMENT (virtual_protect_works_on_shared_pages)
|
|
||||||
bool IMPLEMENT (has_mmap_alignment_bug)
|
|
||||||
bool IMPLEMENT (has_hard_links)
|
bool IMPLEMENT (has_hard_links)
|
||||||
bool IMPLEMENT (can_open_directories)
|
bool IMPLEMENT (can_open_directories)
|
||||||
bool IMPLEMENT (has_move_file_ex)
|
bool IMPLEMENT (has_move_file_ex)
|
||||||
|
@ -120,7 +107,6 @@ public:
|
||||||
bool IMPLEMENT (detect_win16_exe)
|
bool IMPLEMENT (detect_win16_exe)
|
||||||
bool IMPLEMENT (has_null_console_handler_routine)
|
bool IMPLEMENT (has_null_console_handler_routine)
|
||||||
bool IMPLEMENT (has_disk_ex_ioctls)
|
bool IMPLEMENT (has_disk_ex_ioctls)
|
||||||
bool IMPLEMENT (has_working_virtual_lock)
|
|
||||||
bool IMPLEMENT (has_disabled_user_tos_setting)
|
bool IMPLEMENT (has_disabled_user_tos_setting)
|
||||||
bool IMPLEMENT (has_fileid_dirinfo)
|
bool IMPLEMENT (has_fileid_dirinfo)
|
||||||
bool IMPLEMENT (has_exclusiveaddruse)
|
bool IMPLEMENT (has_exclusiveaddruse)
|
||||||
|
|
Loading…
Reference in New Issue