diff --git a/winsup/cygwin/ntdll.h b/winsup/cygwin/ntdll.h index 0c6ad13dc..554e04665 100644 --- a/winsup/cygwin/ntdll.h +++ b/winsup/cygwin/ntdll.h @@ -1423,6 +1423,12 @@ extern "C" NTSTATUS NTAPI NtMapViewOfSection (HANDLE, HANDLE, PVOID *, ULONG_PTR, SIZE_T, PLARGE_INTEGER, PSIZE_T, SECTION_INHERIT, ULONG, ULONG); + +/* For the extended memory API. */ +#if __MINGW64_VERSION_MAJOR < 8 +#error "Version >= 8 of the w32api headers is required" +#endif + NTSTATUS NTAPI NtMapViewOfSectionEx (HANDLE, HANDLE, PVOID *, PLARGE_INTEGER, PSIZE_T, ULONG, ULONG, PMEM_EXTENDED_PARAMETER, ULONG); diff --git a/winsup/cygwin/winlean.h b/winsup/cygwin/winlean.h index 2ee4aaff4..2e2308eb6 100644 --- a/winsup/cygwin/winlean.h +++ b/winsup/cygwin/winlean.h @@ -99,47 +99,17 @@ details. */ extern "C" { #endif -/* Define extended memory API here as long as not available from mingw-w64. */ +/* For the extended memory API. */ +#if __MINGW64_VERSION_MAJOR < 8 +#error "Version >= 8 of the w32api headers is required" +#endif -typedef struct _MEM_ADDRESS_REQUIREMENTS -{ - PVOID LowestStartingAddress; - PVOID HighestEndingAddress; - SIZE_T Alignment; -} MEM_ADDRESS_REQUIREMENTS, *PMEM_ADDRESS_REQUIREMENTS; - -typedef enum MEM_EXTENDED_PARAMETER_TYPE -{ - MemExtendedParameterInvalidType = 0, - MemExtendedParameterAddressRequirements, - MemExtendedParameterNumaNode, - MemExtendedParameterPartitionHandle, - MemExtendedParameterUserPhysicalHandle, - MemExtendedParameterAttributeFlags, - MemExtendedParameterMax -} MEM_EXTENDED_PARAMETER_TYPE, *PMEM_EXTENDED_PARAMETER_TYPE; - -#define MEM_EXTENDED_PARAMETER_TYPE_BITS 8 - -typedef struct DECLSPEC_ALIGN(8) MEM_EXTENDED_PARAMETER -{ - struct - { - DWORD64 Type : MEM_EXTENDED_PARAMETER_TYPE_BITS; - DWORD64 Reserved : 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS; - }; - union - { - DWORD64 ULong64; - PVOID Pointer; - SIZE_T Size; - HANDLE Handle; - DWORD ULong; - }; -} MEM_EXTENDED_PARAMETER, *PMEM_EXTENDED_PARAMETER; - -PVOID VirtualAlloc2 (HANDLE, PVOID, SIZE_T, ULONG, ULONG, - PMEM_EXTENDED_PARAMETER, ULONG); +/* VirtualAlloc2 is declared in if NTDDI_VERSION + >= NTDDI_WIN10_RS4 (a compile-time condition). But we need the + declaration unconditionally, even though the function will only be + executed on systems that support it (a run-time condition). */ +PVOID WINAPI VirtualAlloc2 (HANDLE, PVOID, SIZE_T, ULONG, ULONG, + PMEM_EXTENDED_PARAMETER, ULONG); #ifdef __cplusplus } diff --git a/winsup/utils/cygpath.cc b/winsup/utils/cygpath.cc index aa9df3a21..bc5f11dd0 100644 --- a/winsup/utils/cygpath.cc +++ b/winsup/utils/cygpath.cc @@ -24,7 +24,6 @@ details. */ #define _WIN32_WINNT 0x0a00 #define WINVER 0x0a00 #define NOCOMATTRIBUTE -#define PMEM_EXTENDED_PARAMETER PVOID #include #include #include diff --git a/winsup/utils/ps.cc b/winsup/utils/ps.cc index f3eb9e847..478ed8efd 100644 --- a/winsup/utils/ps.cc +++ b/winsup/utils/ps.cc @@ -6,7 +6,6 @@ This software is a copyrighted work licensed under the terms of the Cygwin license. Please consult the file "CYGWIN_LICENSE" for details. */ -#define PMEM_EXTENDED_PARAMETER PVOID #include #include #include