Geoff Chappell, Software Analyst
The table below lists the 161 exports that are new to NTDLL in version 5.0, i.e., Windows 2000.
Documentation status is conveyed by colour coding. If you browse with scripting enabled, hovering over any text that has a background colour should produce a tooltip that explains the formatting. NTDLL exports that have all along had their own non-trivial documentation as exports from NTDLL are shown with no background colour. So too are the NTDLL implementations of documented functions and variables from the C Run-Time Library. If the whole of the documentation is just that the function is reserved or obsolete, without even giving a prototype, then the function is highlighted red or highlighted pink, respectively. Functions that look to be completely undocumented are highlighted yellow. If a function is documented now but is known not to have been documented immediately, especially in the contemporaneous Software Development Kit (SDK), then it is shaded yellow to retain some of its previous status as undocumented. If the delayed documentation came specifically from the function’s listing among the Settlement Program Interfaces in late 2002, then the shading is less yellow since Microsoft at least acknowledged that the documentation was late. An undocumented function is highlighted orange, as semi-documented, if it is at least declared in one or another header file from an SDK or, exceptionally, a Windows Driver Kit (WDK). NTDLL is low-level enough that some functions are documented in the Windows Driver Kit (WDK), typically as exports from the NT kernel for use by ring 0 software such as device drivers, but sometimes with non-specific talk of being callable from user mode. Such functions are shaded blue if they seem always to have had such documentation, but a brighter blue if the WDK documentation was not immediate. A function is shaded grey if it seems not to be documented but is known to be the entire low-level implementation of some function in a higher-level DLL such as KERNEL32 or ADVAPI32. Identifying these is a work in progress.
Function | Remarks |
---|---|
DbgPrintReturnControlC | |
LdrAlternateResourcesEnabled | discontinued in 6.0 |
LdrFlushAlternateResourceModules | |
LdrLoadAlternateResourceModule | |
LdrUnloadAlternateResourceModule | |
NtAccessCheckByType | |
NtAccessCheckByTypeAndAuditAlarm | declaration requires Windows XP and higher |
NtAccessCheckByTypeResultList | |
NtAccessCheckByTypeResultListAndAuditAlarm | declaration requires Windows XP and higher |
NtAccessCheckByTypeResultListAndAuditAlarmByHandle | declaration requires Windows XP and higher |
NtAllocateUserPhysicalPages | |
NtAreMappedFilesTheSame | |
NtAssignProcessToJobObject | |
NtCancelDeviceWakeupRequest | discontinued in 6.1 |
NtCreateJobObject | |
NtCreateWaitablePort | |
NtFilterToken | declared in Windows 10 WDK; declaration requires Windows XP and higher |
NtFreeUserPhysicalPages | |
NtGetDevicePowerState | |
NtGetWriteWatch | |
NtImpersonateAnonymousToken | declaration requires Windows XP and higher |
NtInitiatePowerAction | |
NtIsSystemResumeAutomatic | |
NtMapUserPhysicalPages | |
NtMapUserPhysicalPagesScatter | |
NtNotifyChangeMultipleKeys | declared in Windows 10 SDK |
NtOpenJobObject | |
NtPowerInformation | |
NtQueryDefaultUILanguage | |
NtQueryInformationJobObject | |
NtQueryInstallUILanguage | |
NtQueryOpenSubKeys | |
NtQueryQuotaInformationFile | undocumented until 2008-2009; documentation requires Windows 7 and higher |
NtReplyWaitReceivePortEx | |
NtRequestDeviceWakeup | discontinued in 6.1 |
NtRequestWakeupLatency | discontinued in 6.1 |
NtResetWriteWatch | |
NtSaveMergedKeys | |
NtSecureConnectPort | |
NtSetDefaultUILanguage | |
NtSetInformationJobObject | |
NtSetQuotaInformationFile | undocumented until 2008-2009; documentation requires Windows 7 and higher |
NtSetThreadExecutionState | |
NtSetUuidSeed | |
NtTerminateJobObject | |
RtlAddAccessAllowedAceEx | undocumented until 2008-2009; documentation requires Windows 2000 and higher; declaration requires Windows 2000 and higher |
RtlAddAccessAllowedObjectAce | |
RtlAddAccessDeniedAceEx | |
RtlAddAccessDeniedObjectAce | |
RtlAddAuditAccessAceEx | |
RtlAddAuditAccessObjectAce | |
RtlAddRange | discontinued in 5.2 |
RtlCallbackLpcClient | discontinued in 5.1 |
RtlCancelTimer | |
RtlCheckForOrphanedCriticalSections | |
RtlConvertToAutoInheritSecurityObject | |
RtlCopyRangeList | discontinued in 5.2 |
RtlCreateLpcServer | discontinued in 5.1 |
RtlCreateTimer | |
RtlCreateTimerQueue | |
RtlDebugPrintTimes | |
RtlDefaultNpAcl | |
RtlDeleteOwnersRanges | discontinued in 5.2 |
RtlDeleteRange | discontinued in 5.2 |
RtlDeleteTimer | |
RtlDeleteTimerQueue | |
RtlDeleteTimerQueueEx | |
RtlDeregisterWait | |
RtlDeregisterWaitEx | |
RtlDnsHostNameToComputerName | |
RtlEnableEarlyCriticalSectionEventCreation | |
RtlFindLastBackwardRunClear | |
RtlFindLeastSignificantBit | |
RtlFindMostSignificantBit | |
RtlFindNextForwardRunClear | |
RtlFindRange | discontinued in 5.2 |
RtlFreeRangeList | discontinued in 5.2 |
RtlGUIDFromString | |
RtlGetFirstRange | discontinued in 5.2 |
RtlGetNextRange | discontinued in 5.2 |
RtlGetSecurityDescriptorRMControl | |
RtlGetVersion | documentation since 2001-2002 requires Windows XP and higher |
RtlImpersonateLpcClient | discontinued in 5.1 |
RtlInitializeRangeList | discontinued in 5.2 |
RtlInt64ToUnicodeString | |
RtlInvertRangeList | discontinued in 5.2 |
RtlIsRangeAvailable | discontinued in 5.2 |
RtlMergeRangeLists | discontinued in 5.2 |
RtlNewSecurityObjectEx | |
RtlQueueWorkItem | |
RtlRegisterWait | |
RtlSelfRelativeToAbsoluteSD2 | |
RtlSetControlSecurityDescriptor | |
RtlSetIoCompletionCallback | |
RtlSetSecurityDescriptorRMControl | |
RtlSetSecurityObjectEx | |
RtlSetThreadPoolStartFunc | |
RtlSetTimer | |
RtlShutdownLpcServer | discontinued in 5.1 |
RtlStringFromGUID | |
RtlTraceDatabaseAdd | begins from SP1 |
RtlTraceDatabaseCreate | begins from SP1 |
RtlTraceDatabaseDestroy | begins from SP1 |
RtlTraceDatabaseEnumerate | begins from SP1 |
RtlTraceDatabaseFind | begins from SP1 |
RtlTraceDatabaseLock | begins from SP1 |
RtlTraceDatabaseUnlock | begins from SP1 |
RtlTraceDatabaseValidate | begins from SP1 |
RtlUlongByteSwap | x86 only; conditionally redefined by macro in terms of compiler intrinsic _byteswap_ulong |
RtlUlonglongByteSwap | x86 only; conditionally redefined by macro in terms of compiler intrinsic _byteswap_uint64 |
RtlUpdateTimer | |
RtlUshortByteSwap | x86 only; conditionally redefined by macro in terms of compiler intrinsic _byteswap_ushort |
RtlValidRelativeSecurityDescriptor | undocumented until 2005-2006 |
RtlVerifyVersionInfo | documentation since 2001-2002 requires Windows XP and higher |
RtlWalkFrameChain | undocumented until 2006-2007; documented as “reserved for system use” |
VerSetConditionMask | forwarded from KERNEL32 function VerSetConditionMask in 5.0 and higher |
ZwAccessCheckByType | declared in Windows 10 WDK |
ZwAccessCheckByTypeAndAuditAlarm | declared in Windows 10 WDK |
ZwAccessCheckByTypeResultList | declared in Windows 10 WDK |
ZwAccessCheckByTypeResultListAndAuditAlarm | declared in Windows 10 WDK |
ZwAccessCheckByTypeResultListAndAuditAlarmByHandle | declared in Windows 10 WDK |
ZwAllocateUserPhysicalPages | declared in Windows 10 WDK |
ZwAreMappedFilesTheSame | declared in Windows 10 WDK |
ZwAssignProcessToJobObject | declared in Windows 10 WDK |
ZwCancelDeviceWakeupRequest | discontinued in 6.1 |
ZwCreateJobObject | declared in Windows 10 WDK |
ZwCreateWaitablePort | declared in Windows 10 WDK |
ZwFilterToken | declared in Windows 10 WDK |
ZwFreeUserPhysicalPages | declared in Windows 10 WDK |
ZwGetDevicePowerState | declared in Windows 10 WDK |
ZwGetWriteWatch | declared in Windows 10 WDK |
ZwImpersonateAnonymousToken | declared in Windows 10 WDK |
ZwInitiatePowerAction | declared in Windows 10 WDK |
ZwIsSystemResumeAutomatic | |
ZwMapUserPhysicalPages | declared in Windows 10 WDK |
ZwMapUserPhysicalPagesScatter | declared in Windows 10 WDK |
ZwNotifyChangeMultipleKeys | declaration requires Windows 7 and higher |
ZwOpenJobObject | declared in Windows 10 WDK |
ZwPowerInformation | |
ZwQueryDefaultUILanguage | declared in Windows 10 WDK |
ZwQueryInformationJobObject | declared in Windows 10 WDK |
ZwQueryInstallUILanguage | declared in Windows 10 WDK |
ZwQueryOpenSubKeys | declared in Windows 10 WDK |
ZwQueryQuotaInformationFile | undocumented until 2000-2006; documentation until 2008-2009 requires Windows XP and higher; documentation since 2008-2009 requires Windows 7 and higher; declaration requires Windows Vista and higher |
ZwReplyWaitReceivePortEx | declared in Windows 10 WDK |
ZwRequestDeviceWakeup | discontinued in 6.1 |
ZwRequestWakeupLatency | discontinued in 6.1 |
ZwResetWriteWatch | declared in Windows 10 WDK |
ZwSaveMergedKeys | declared in Windows 10 WDK |
ZwSecureConnectPort | declared in Windows 10 WDK |
ZwSetDefaultUILanguage | declared in Windows 10 WDK |
ZwSetInformationJobObject | declared in Windows 10 WDK |
ZwSetQuotaInformationFile | undocumented until 2000-2006; documentation until 2008-2009 requires Windows XP and higher; documentation since 2008-2009 requires Windows 7 and higher; declaration requires Windows Vista and higher |
ZwSetThreadExecutionState | declared in Windows 10 WDK |
ZwSetUuidSeed | declared in Windows 10 WDK |
ZwTerminateJobObject | declared in Windows 10 WDK |
_ui64toa | |
iswdigit | |
iswlower | |
iswspace | |
iswxdigit |
With version 5.0, NTDLL drops 22 functions from its API: