Geoff Chappell, Software Analyst
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 |