- [KMTEST:IOFILESYSTEM] Add support for NTFS
- [KMTEST:IODEVICEOBJECT] Work around a Windows 7 bug, account for struct size changes on x64, accept Vista+ behavior
- [KMTEST:EXPOOLS] Accept pool being promoted to NonPaged on Vista+, accept 2GB allocation on x64, guard an undocumented behavior
- [KMTEST:CMSECURITY] Add tests for Vista-Win8.1
[COM_APITEST]
- Add NTDDI version gating to classes and interfaces in tests
- Remove rigid offset tests. Instead, offsets to known interfaces can be logged by defining LOG_COM_INTERFACE_OFFSETS.
- Replace the noreg member of the known interfaces array with a function pointer that can be used to determine if a com test should be globally registered depending on the current NTDDI version. I could probably replace this with a min and max registered NTDDI value, but I thought this was confusing for interfaces that are never globally registered.
[INCLUDE/REACTOS]
- Rename the existing interface definition for IShellBrowserService to IShellBrowserService_XP at {1307EE17-EA83-49EB-96B2-3A28E2D7048A}. This only exists on XP and Server 2003, no earlier or later versions.
- Rename IID_IShellBrowserServce to IID_IShellBrowserService since this definition is correct for Windows 7+ at {DFBC7E30-F9E5-455F-88F8-FA98C1E494CA}
- Add an interface definition for IShellBrowserService4 at {F5A24314-5B8B-44FA-BC2E-31285544B520}. This definition for IShellBrowserService exists for Vista only and no other version.
[PSDK]
- Add a define for NTDDI_WIN7SP1. While this isn't defined in the public Windows headers, it clearly exists in private headers because it is referenced in the public WinBase.h header.
- [INCLUDE/WINE] Add synced Wine headers for the iphlpapi winetest to use. This helps us slowly decouple our headers and wine's headers.
- [PSDK] Add definitions we are missing for other winetest syncs.
- [WINETESTS][APITESTS] Fix breaking changes, remove duplicate definitions for debugstr_guid.
- Reimplement `RtlUnhandledExceptionFilter()` by just calling
`RtlUnhandledExceptionFilter2()`.
- Return an adequate exception filter value `EXCEPTION_CONTINUE_SEARCH`
from `RtlUnhandledExceptionFilter2()`, instead of some random error.
If `ExceptionCode` is `STATUS_POSSIBLE_DEADLOCK` however, return
`EXCEPTION_CONTINUE_EXECUTION` instead, as shown by a test from Whindmar Saksit.
- The second parameter of `RtlUnhandledExceptionFilter2()` is not
a flag, but a pointer to string `PCSTR` !
See https://skanthak.hier-im-netz.de/download/NTDLL.H
who is the only one online who has the correct definition,
whose usage I've double-checked on Win7 ntdll.dll.
This is used in the `<function_name>` slot in the displayed
debugger message:
```
*** An Access Violation occurred in <program_command_line>:<function_name>
The instruction at <address> tried to write to a NULL pointer
```
For example, see: https://community.osr.com/t/access-violation/33435
Add useful macros, similar to the powrprof.dll `IsPwr*()` functions,
but that are suitable when one has a `SYSTEM_POWER_CAPABILITIES`
structure initialized from `NtPowerInformation(SystemPowerCapabilities)`.
- `IS_PWR_SUSPEND_ALLOWED()`, equivalent to `IsPwrSuspendAllowed()`,
indicating whether any of the S1, S2, S3 sleep states are supported.
- `IS_PWR_HIBERNATE_ALLOWED()`, equivalent to `IsPwrHibernateAllowed()`,
indicating whether the S4 sleep state is supported and the
hibernation file is present.
- `IS_PWR_POWEROFF_ALLOWED()`, equivalent to `IsPwrShutdownAllowed()`,
indicating whether the S5 "soft-off" state is supported.
PSEH has 2 scopes: an outer scope, that starts with _SEH3_TRY and ends with _SEH3_END, and an inner scope that goes around the try block only. PSEH tracks try-levels by using an enum, which increments at every new TRY scrope, and which needs to be accessible in the outer scope for all registration and cleanup to work. But it should only increment when nested within the inner try scope, not from the except scope. This is fixed by adding an additional _SEH3$_InnerTryLevel, which increments only within the try block, but resets to the parent-value outside of it.
Should fix CORE-20316.
The Win32 TryEnterCriticalSection(), which returns a 32-bit BOOL,
directly redirects to NTDLL!RtlTryEnterCriticalSection().
The latter should therefore return a 32-bit boolean as well:
use the LOGICAL type for this purpose. This change has been
validated with the System Informer phnt headers.
This mismatch was caught by Marcin Jabłoński (TheNNX).
The LOGICAL (32-bit boolean) type is already defined for kernel-mode
in the XDK/DDK ntdef.h header. Add the type in the NDK for usage in
user-mode NT code also.
The definition present in kmt_platform.h can now be removed, since
it can now use the one from the NDK.
2nd parameter of FT_Library_SetLcdGeometry() is `FT_Vector sub[3]`,
as specified in the header, and not `FT_Vector* sub`
Fixes compilation error when compiling with i686-w64-mingw32-g++
version 13-win32:
```
sdk/.../freetype/src/base/ftlcdfil.c:361:42: error: argument 2 of type ‘FT_Vector *’ {aka ‘struct FT_Vector_ *’} declared as a pointer [-Werror=array-parameter=]
361 | FT_Vector* sub )
| ~~~~~~~~~~~~^~~
In file included from sdk/.../freetype/include/freetype/internal/ftobjs.h:32,
from sdk/.../freetype/src/base/ftadvanc.c:23,
from sdk/.../freetype/src/base/ftbase.c:22:
sdk/.../freetype/include/freetype/ftlcdfil.h:318:42: note: previously declared as an array ‘FT_Vector[3]’ {aka ‘struct FT_Vector_[3]’}
318 | FT_Vector sub[3] );
| ~~~~~~~~~~~~^~~~~~
cc1: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
cc1: all warnings being treated as errors
```