Ну например после ХР появились:
— Desktop Window Manager,
и API для него
— Транзакционные операции с файлами и реестром, и API для них. Например
раз,
два.
— XPS принтинг, и
API для него
— Аудиоподсистема была переделана, и появился
Windows Core Audio API
— ntdll рантайм обзавелся своим внутренним развитым thread pool, ну и API для него
не поленились вытащить наверх
— Win'RT — дикая помесь COM'а и plain API (
например). +
еще немного мусора вкинули в бедный token object
Что сделали, но не задокументировали (но я както по-необходимости расковырял):
— Window bands, и набор следующих API, торчащих из user32:
HWND WINAPI CreateWindowInBand(DWORD dwExStyle, LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam, DWORD dwBand);
BOOL WINAPI SetWindowBand(HWND hWnd, HWND hwndInsertAfter, DWORD dwBand);
BOOL WINAPI GetWindowBand(HWND hWnd, PDWORD pdwBand);
С помощью них сама винда, и все (сильно) желающие могут впендюривать свои окошки туда, где обычно показываются Win'RT приложения.
— WNF, вероятно расшифровывающийся как Windows Notification Framework. Используется для рассылки "сообщений" подписчикам. Сообщение — это бинарные данные. Имеют своеобразное "имя", которое по сути — 64хбитный идентификатор, который помимо иденцификации еще и указывает scope и security rules сообщений и скорее всего микрософтовский тим генерирует из макросом навроде CTL_CODE, используемого для генерации IOCTL кодов для драйверов. Вот такие вот API юзаются с ним (недоисследовал, но может комуто пригодится):
NTSTATUS NtCreateWnfStateName (PULONGLONG pName, ULONG arg_4, ULONG arg_8, BOOL arg_c, PVOID arg_10, ULONG arg_14, PSECURITY_DESCRIPTOR pSD)
NTSTATUS NtDeleteWnfStateName(PULONGLONG name)
NTSTATUS NtQueryWnfStateNameInformation (ULONGLONG *name, ULONG_PTR arg2, PVOID arg3, PVOID arg4, ULONG_PTR arg5);
NTSTATUS NtQueryWnfStateData (PULONGLONG name, PVOID arg2Zero, PVOID arg3Zero, PULONG arg4PointerToUlong0x200000, PVOID arg5Data, PULONG arg6DataLen)
NTSTATUS NtUpdateWnfStateData (PULONGLONG name, PVOID arg2Data, ULONG arg3DataLen, PVOID arg4Zero, PVOID arg5Zero, ULONG_PTR arg6Test, BOOL arg7Test)
NTSTATUS NtSubscribeWnfStateChange (PULONGLONG name, PVOID arg2, PVOID arg3, PVOID arg4)
NTSTATUS NtUnsubscribeWnfStateChange (PVOID arg)
NTSTATUS NtWaitForWnfNotifications (WnfChangeNotifyEntry *cn_entry, PVOID arg2)
struct WnfChangeNotifyEntry
{
ULONG ulUnknown1;
ULONG ulUnknown2;
ULONGLONG name;
//many other still unknown bytes :(
};