include/link_libraries.hpp preserves the unique linker pragmas from the original
source. Dynamic resolution itself needs only the normal Windows loader imports,
but the broader original include/link surface was retained for compatibility.
The pragmas are disabled by default and require
NTFORGE_LINK_LEGACY_LIBRARIES=ON. This keeps the resolver/test targets buildable
without unrelated optional SDK import libraries. Enable the option only when added
research code actually calls those statically imported APIs.
| Library group | Typical purpose |
|---|---|
kernel32, advapi32, user32 |
Core process, security/registry/service, and UI APIs. |
ntdll |
Native API import surface; this project normally resolves its exports dynamically. |
bcrypt, ncrypt, crypt32, cryptnet, wintrust |
Cryptography, certificates, chain retrieval, and trust verification. |
secur32 |
SSPI, LSA logon-session, and security-package APIs. |
ws2_32, mswsock, dnsapi, iphlpapi |
Sockets, extensions, DNS, and network configuration. |
rpcrt4 |
RPC runtime. |
ole32, oleaut32, comsupp, comsuppw |
COM/OLE automation and compiler support wrappers. |
taskschd |
Task Scheduler COM interfaces. |
shell32, shlwapi |
Shell operations and helper routines. |
psapi, dbghelp, pdh |
Process inspection, symbols/debugging, and performance counters. |
wtsapi32, userenv |
Terminal Services sessions and user profiles/environments. |
netapi32, mpr, rasapi32, rtutils |
Network management, providers, RAS, and routing utilities. |
wbemuuid |
WMI COM interface identifiers. |
virtdisk, setupapi, version |
Virtual disks, device installation, and version resources. |
wlanapi, powrprof |
WLAN and power-management APIs. |
activeds, adsiid |
Active Directory Service Interfaces. |
credui, normaliz |
Credential UI and Unicode normalization. |
Some libraries require optional Visual Studio/Windows SDK components. If the application never uses the associated static API surface, removing that pragma is a build-system cleanup decision, not a native resolver requirement.