KERNEL32 4.0 Named Exports

The table below lists all the functions that are first exported from KERNEL32 by name in version 4.0, i.e., for Windows 95 and Windows NT 4.0.

Version 4.0 is complicated by its use for two operating systems. The Windows that runs on DOS came first and is referred to below as Windows. The Windows that survives today began as Windows NT and is referred to below as NT even though it has long superseded the other Windows. Many KERNEL32 functions that were introduced for version 4.0 only ever appeared in the Windows stream. They are marked “Windows only”. Some were eventually picked up for the NT stream, even long after the Windows stream’s last version. Very many more Windows-only functions were only ever exported by ordinal, and are listed on the separate pages of Ordinal-Only Exports for versions 4.0, 4.10 and 4.90.

Since the ordering of build numbers means that both Windows 95 releases precede all Windows NT 4.0 releases, functions that do not appear as exports until the original Windows NT 4.0 might be described as beginning in Windows NT 4.0. For symmetry, they are instead marked as “NT-only in 4.0” if they are taken up for version 4.10, or as “NT only” if they are not exported from any later version in the Windows stream.

Most Windows-only functions seem never to have got documented, especially if their reason for existence was to support an exchange of functionality with the 16-bit KRNL386.DLL. These and other functions that appear to be completely undocumented are highlighted yellow.

Function Remarks
AllocLSCallback Windows only
AllocSLCallback Windows only
Callback4 Windows only
Callback8 Windows only
Callback12 Windows only
Callback16 Windows only
Callback20 Windows only
Callback24 Windows only
Callback28 Windows only
Callback32 Windows only
Callback36 Windows only
Callback40 Windows only
Callback44 Windows only
Callback48 Windows only
Callback52 Windows only
Callback56 Windows only
Callback60 Windows only
Callback64 Windows only
CancelIo NT-only in 4.0
CancelWaitableTimer NT-only in 4.0;
implemented as jump to API-MS-Win-Core-Synch-L1-1-0 in 6.1 and higher
CloseSystemHandle Windows only
ConvertToGlobalHandle Windows only
CopyFileExA NT-only in 4.0
CopyFileExW NT-only in 4.0
CreateKernelThread Windows only
CreateSocketHandle x86 only;
Windows-only before 5.1
CreateToolhelp32Snapshot Windows-only in 4.0
CreateWaitableTimerA NT-only in 4.0
CreateWaitableTimerW NT-only in 4.0
dprintf Windows only
FindFirstFileExA NT-only in 4.0;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 and higher
FindFirstFileExW NT-only in 4.0;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 and higher
FreeLSCallback Windows only
FreeSLCallback Windows only
FT_Exit0 Windows only
FT_Exit4 Windows only
FT_Exit8 Windows only
FT_Exit12 Windows only
FT_Exit16 Windows only
FT_Exit20 Windows only
FT_Exit24 Windows only
FT_Exit28 Windows only
FT_Exit32 Windows only
FT_Exit36 Windows only
FT_Exit40 Windows only
FT_Exit44 Windows only
FT_Exit48 Windows only
FT_Exit52 Windows only
FT_Exit56 Windows only
FT_Prolog Windows only
FT_Thunk Windows only
GetConsoleInputExeNameA NT only
GetConsoleInputExeNameW NT only
GetConsoleKeyboardLayoutNameA NT only
GetConsoleKeyboardLayoutNameW NT only
GetDaylightFlag Windows only
GetDiskFreeSpaceExA begins in OSR2;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 and higher
GetDiskFreeSpaceExW begins in OSR2;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 and higher
GetErrorMode Windows-only before 6.0;
implemented as jump to API-MS-Win-Core-ErrorHandling-L1-1-0 in 6.1 and higher;
documented as requiring at least Windows Vista
GetFileAttributesExA NT-only in 4.0;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 and higher
GetFileAttributesExW NT-only in 4.0;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 and higher
GetHandleContext x86 only;
Windows-only before 5.1
GetLSCallbackTarget Windows only
GetLSCallbackTemplate Windows only
GetProcessFlags Windows only
GetProcessPriorityBoost NT-only in 4.0
GetProductName Windows only
GetSLCallbackTarget Windows only
GetSLCallbackTemplate Windows only
GetThreadPriorityBoost NT-only in 4.0;
implemented as jump to API-MS-Win-Core-ProcessThreads-L1-1-0 in 6.1 and higher
Heap32First Windows-only in 4.0
Heap32ListFirst Windows-only in 4.0
Heap32ListNext Windows-only in 4.0
Heap32Next Windows-only in 4.0
HeapSetFlags Windows only
InitializeCriticalSectionAndSpinCount begins in SP3;
implemented as jump to API-MS-Win-Core-Synch-L1-1-0 in 6.1 and higher
InterlockedCompareExchange x86 only;
NT-only in 4.0
InterlockedExchangeAdd x86 only;
NT-only in 4.0
InvalidateNLSCache Windows only
IsLSCallback Windows only
IsProcessorFeaturePresent NT-only in 4.0
IsSLCallback Windows only
K32Thk1632Epilog Windows only
K32Thk1632Prolog Windows only
MakeCriticalSectionGlobal Windows only
MapHInstLS Windows only
MapHInstLS_PN Windows only
MapHInstSL Windows only
MapHInstSL_PN Windows only
MapHModuleLS Windows only
MapHModuleSL Windows only
MapSL Windows only
MapSLFix Windows only
Module32First Windows-only in 4.0
Module32Next Windows-only in 4.0
NotifyNLSUserCache Windows only
OpenVxDHandle Windows only
OpenWaitableTimerA NT-only in 4.0
OpenWaitableTimerW NT-only in 4.0;
implemented as jump to API-MS-Win-Core-Synch-L1-1-0 in 6.1 and higher
Process32First Windows-only in 4.0
Process32Next Windows-only in 4.0
QT_Thunk Windows only
QueryNumberOfEventLogRecords Windows only
QueryOldestEventLogRecord Windows only
QueueUserAPC implemented as jump to API-MS-Win-Core-ProcessThreads-L1-1-0 in 6.1 and higher
ReadConsoleInputExA NT-only
ReadConsoleInputExW NT-only
ReadFileScatter begins in SP3;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 and higher;
documented for SP2 (not inspected for this study)
RegisterServiceProcess Windows only
ReinitializeCriticalSection Windows only
SetConsoleIcon NT-only
SetConsoleInputExeNameA NT-only
SetConsoleInputExeNameW NT-only
SetCriticalSectionSpinCount begins in SP3;
forwarded to NTDLL function RtlSetCriticalSectionSpinCount (NT only)
SetDaylightFlag Windows only
SetHandleContext x86 only;
Windows-only before 5.1
SetProcessAffinityMask NT-only in 4.0
SetProcessPriorityBoost NT-only in 4.0
SetThreadIdealProcessor NT-only in 4.0
SetThreadPriorityBoost NT-only in 4.0;
implemented as jump to API-MS-Win-Core-ProcessThreads-L1-1-0 in 6.1 and higher
SetWaitableTimer NT-only in 4.0;
implemented as jump to API-MS-Win-Core-Synch-L1-1-0 in 6.1 and higher
SignalObjectAndWait NT-only in 4.0
SMapLS Windows only
SMapLS_IP_EBP_8 Windows only
SMapLS_IP_EBP_12 Windows only
SMapLS_IP_EBP_16 Windows only
SMapLS_IP_EBP_20 Windows only
SMapLS_IP_EBP_24 Windows only
SMapLS_IP_EBP_28 Windows only
SMapLS_IP_EBP_32 Windows only
SMapLS_IP_EBP_36 Windows only
SMapLS_IP_EBP_40 Windows only
SUnMapLS Windows only
SUnMapLS_IP_EBP_8 Windows only
SUnMapLS_IP_EBP_12 Windows only
SUnMapLS_IP_EBP_16 Windows only
SUnMapLS_IP_EBP_20 Windows only
SUnMapLS_IP_EBP_24 Windows only
SUnMapLS_IP_EBP_28 Windows only
SUnMapLS_IP_EBP_32 Windows only
SUnMapLS_IP_EBP_36 Windows only
SUnMapLS_IP_EBP_40 Windows only
SwitchToThread NT-only in 4.0;
implemented as jump to API-MS-Win-Core-ProcessThreads-L1-1-0 in 6.1 and higher
Thread32First Windows-only in 4.0
Thread32Next Windows-only in 4.0
ThunkConnect32 Windows only
TlsAllocInternal Windows only
TlsFreeInternal Windows only
Toolhelp32ReadProcessMemory Windows-only in 4.0 
TryEnterCriticalSection NT-only in 4.0;
forwarded to NTDLL function RtlTryEnterCriticalSection (NT-only)
UninitializeCriticalSection Windows only
UnMapLS Windows only
UnMapLSFixArray Windows only
UTRegister Windows-only in 4.0
UTUnRegister Windows-only in 4.0
VerifyVersionInfoA begins in SP4;
NT only;
documented as requiring at least Windows 2000
VerifyVersionInfoW begins in SP4;
NT only;
documented as requiring at least Windows 2000
VirtualAllocEx NT-only in 4.0;
implemented as jump to API-MS-Win-Core-Memory-L1-1-0 in 6.1 and higher
VirtualFreeEx NT-only in 4.0;
implemented as jump to API-MS-Win-Core-Memory-L1-1-0 in 6.1 and higher
WriteFileGather begins in SP3;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 and higher;
documented for SP2 (not inspected for this study)
_DebugOut Windows only
_DebugPrintf Windows only