The partial free is not supported from VirtualFree (we have a test for that) but NtFreeVirtualMemory supports it.
The primary motivation behind these patches is the preparation for VM placeholders support. With those flags (MEM_RESERVE_PLACEHOLDER, MEM_PRESERVE_PLACEHOLDER, MEM_REPLACE_PLACEHOLDER and MEM_COALESCE_PLACEHOLDERS) views might be arbitrary split or joined with just page alignment.
-- v2: ntdll: Add logging for free ranges. ntdll: Support partial view release in NtFreeVirtualMemory(). ntdll: Factor out some view manipulation functions. ntdll: Fully support unaligned views in free ranges management. ntdll: Fix size validation in NtFreeVirtualMemory(). kernelbase: Validate nonzero size for MEM_RELEASE in VirtualFreeEx(). ntdll/tests: Add tests for freeing a part of view.