Named Exports Added For KERNEL32 4.0

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 added 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 “begins 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, else as “NT only”. Inevitably, and more complicated, some functions appear first as exports from a Windows 95 build but not from any build of Windows NT 4.0. If they are taken up for version 5.0, then they are marked below as “Windows-only in 4.0”, else as “Windows only”.

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
Callback12 Windows only
Callback16 Windows only
Callback20 Windows only
Callback24 Windows only
Callback28 Windows only
Callback32 Windows only
Callback36 Windows only
Callback4 Windows only
Callback40 Windows only
Callback44 Windows only
Callback48 Windows only
Callback52 Windows only
Callback56 Windows only
Callback60 Windows only
Callback64 Windows only
Callback8 Windows only
CancelIo NT-only in 4.0;
implemented as jump to api-ms-win-core-io-l1-1-1 in 6.2 and higher
CancelWaitableTimer NT-only in 4.0;
implemented as jump to API-MS-Win-Core-Synch-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-synch-l1-2-0 in 6.2 and higher
CloseSystemHandle Windows only
ConvertToGlobalHandle Windows only
CopyFileExA NT-only in 4.0
CopyFileExW NT-only in 4.0;
implemented as jump to api-ms-win-core-file-l2-1-0 in 6.2 only;
implemented as jump to api-ms-win-core-file-l2-1-1 in 6.3 and higher
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
FT_Exit0 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_Exit4 Windows only
FT_Exit40 Windows only
FT_Exit44 Windows only
FT_Exit48 Windows only
FT_Exit52 Windows only
FT_Exit56 Windows only
FT_Exit8 Windows only
FT_Prolog Windows only
FT_Thunk Windows only
FindFirstFileExA NT-only in 4.0;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-file-l1-2-0 in 6.2 only;
implemented as jump to api-ms-win-core-file-l1-2-1 in 6.3 and higher
FindFirstFileExW NT-only in 4.0;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-file-l1-2-0 in 6.2 only;
implemented as jump to api-ms-win-core-file-l1-2-1 in 6.3 and higher
FreeLSCallback Windows only
FreeSLCallback Windows only
GetConsoleInputExeNameA NT only;
forwarded to KERNELBASE in 6.2 and higher
GetConsoleInputExeNameW NT only;
forwarded to KERNELBASE in 6.2 and higher
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 only;
implemented as jump to api-ms-win-core-file-l1-2-0 in 6.2 only;
implemented as jump to api-ms-win-core-file-l1-2-1 in 6.3 and higher
GetDiskFreeSpaceExW begins in OSR2;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-file-l1-2-0 in 6.2 only;
implemented as jump to api-ms-win-core-file-l1-2-1 in 6.3 and higher
GetErrorMode Windows-only before 6.0;
implemented as jump to API-MS-Win-Core-ErrorHandling-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-errorhandling-l1-1-1 in 6.2 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 only;
implemented as jump to api-ms-win-core-file-l1-2-0 in 6.2 only;
implemented as jump to api-ms-win-core-file-l1-2-1 in 6.3 and higher
GetFileAttributesExW NT-only in 4.0;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-file-l1-2-0 in 6.2 only;
implemented as jump to api-ms-win-core-file-l1-2-1 in 6.3 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;
implemented as jump to api-ms-win-core-processthreads-l1-1-2 in 6.3 and higher
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 only;
implemented as jump to api-ms-win-core-processthreads-l1-1-1 in 6.2 only;
implemented as jump to api-ms-win-core-processthreads-l1-1-2 in 6.3 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 only;
implemented as jump to api-ms-win-core-synch-l1-2-0 in 6.2 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;
implemented as jump to api-ms-win-core-processthreads-l1-1-1 in 6.2 only;
implemented as jump to api-ms-win-core-processthreads-l1-1-2 in 6.3 and higher
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 only;
implemented as jump to api-ms-win-core-synch-l1-2-0 in 6.2 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 only;
implemented as jump to api-ms-win-core-processthreads-l1-1-1 in 6.2 only;
implemented as jump to api-ms-win-core-processthreads-l1-1-2 in 6.3 and higher
ReadConsoleInputExA NT only;
forwarded to KERNELBASE in 6.2 and higher
ReadConsoleInputExW NT only;
forwarded to KERNELBASE in 6.2 and higher
ReadFileScatter begins in SP3;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-file-l1-2-0 in 6.2 only;
implemented as jump to api-ms-win-core-file-l1-2-1 in 6.3 and higher;
documented for SP2 (not inspected for this study) and higher
RegisterServiceProcess Windows only
ReinitializeCriticalSection Windows only
SMapLS 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
SMapLS_IP_EBP_8 Windows only
SUnMapLS 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
SUnMapLS_IP_EBP_8 Windows only
SetConsoleIcon NT-only
SetConsoleInputExeNameA NT only;
forwarded to KERNELBASE in 6.2 and higher
SetConsoleInputExeNameW NT only;
forwared to KERNELBASE in 6.2 and higher
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;
implemented as jump to api-ms-win-core-processthreads-l1-1-1 in 6.2 only;
implemented as jump to api-ms-win-core-processthreads-l1-1-2 in 6.3 and higher
SetThreadIdealProcessor NT-only in 4.0;
implemented as jump to api-ms-win-core-processthreads-l1-1-3 in 10.0 and higher
SetThreadPriorityBoost NT-only in 4.0;
implemented as jump to API-MS-Win-Core-ProcessThreads-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-processthreads-l1-1-1 in 6.2 only;
implemented as jump to api-ms-win-core-processthreads-l1-1-2 in 6.3 and higher
SetWaitableTimer NT-only in 4.0;
implemented as jump to API-MS-Win-Core-Synch-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-synch-l1-2-0 in 6.2 and higher
SignalObjectAndWait NT-only in 4.0;
implemented as jump to api-ms-win-core-synch-l1-2-0 in 6.2 and higher
SwitchToThread NT-only in 4.0;
implemented as jump to API-MS-Win-Core-ProcessThreads-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-processthreads-l1-1-1 in 6.2 only;
implemented as jump to api-ms-win-core-processthreads-l1-1-2 in 6.3 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)
UTRegister Windows-only in 4.0
UTUnRegister Windows-only in 4.0
UnMapLS Windows only
UnMapLSFixArray Windows only
UninitializeCriticalSection Windows only
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 only;
implemented as jump to api-ms-win-core-memory-l1-1-1 in 6.2 only;
implemented as jump to api-ms-win-core-memory-l1-1-2 in 6.3 and higher
VirtualFreeEx NT-only in 4.0;
implemented as jump to API-MS-Win-Core-Memory-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-memory-l1-1-1 in 6.2 only;
implemented as jump to api-ms-win-core-memory-l1-1-2 in 6.3 and higher
WriteFileGather begins in SP3;
implemented as jump to API-MS-Win-Core-File-L1-1-0 in 6.1 only;
implemented as jump to api-ms-win-core-file-l1-2-0 in 6.2 only;
implemented as jump to api-ms-win-core-file-l1-2-1 in 6.3 and higher;
documented for SP2 (not obtained for this study) and higher
_DebugOut Windows only
_DebugPrintf Windows only
dprintf Windows only