[NTDLL_VISTA:LDR] Implement DLL Notification (#6795)

Implement DLL Load Notification, an NT6+ feature.
https://learn.microsoft.com/en-us/windows/win32/devnotes/dll-load-notification

- [RTL] Sync `RTL_STATIC_LIST_HEAD` and `RtlFailFast` from XDK to NDK.
- [NTDLL_VISTA] Introduce ntdll_vista_static static library and link both ntdll_vista and ntdll to it.
- [NDK][LDR] Add and fix DLL Notification definitions.
- [NTDLL_VISTA] Code improvements.
- [NTDLL_VISTA:LDR] Implement Dll Notification.
- [NTDLL][NTDLL_APITEST] Add Dll Notification API test.
This commit is contained in:
Ratin Gao 2025-03-03 04:13:33 +08:00 committed by GitHub
parent 6988b4e2c4
commit ccf1e97aa1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 539 additions and 53 deletions

View file

@ -22,6 +22,9 @@ $if (_WDMDDK_ || _WINNT_)
#define FAST_FAIL_MRDATA_MODIFIED 19
#define FAST_FAIL_INVALID_FAST_FAIL_CODE 0xFFFFFFFF
$endif(_WDMDDK_ || _WINNT_)
$if (_WDMDDK_)
DECLSPEC_NORETURN
FORCEINLINE
VOID
@ -31,9 +34,6 @@ RtlFailFast(
__fastfail(Code);
}
$endif(_WDMDDK_ || _WINNT_)
$if (_WDMDDK_)
#if !defined(NO_KERNEL_LIST_ENTRY_CHECKS) && (defined(_M_CEE_PURE) || defined(_M_CEE_SAFE))
#define NO_KERNEL_LIST_ENTRY_CHECKS
#endif