Kernel Version 3.10 Exports

The table below lists the 618 exports from the Windows kernel in what appears to be the original version 3.10. For the purpose of this study, without having found an earlier Windows NT for inspection, these functions are effectively the original kernel-mode programming interface. They make up nearly a third of all exports from the kernel over all known versions. All but 37 of these functions are still exported as of version 10.0.

Documentation status is summarised by colour coding so that more detail can be given as Remarks with less text. Functions that have their own non-trivial documentation are shown with no background colour. 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. An undocumented function that is at least declared in one or another header file from the Windows Driver Kit (WDK) is highlighted orange. Functions that appear to be completely undocumented are highlighted yellow. If a function is documented now but is known not to have been documented in the first contemporaneous Device Driver Kit (DDK), WDK or Installable File System (IFS), then it is shaded yellow to retain some of its previous status as undocumented.

To be generous, without having found a development kit for Windows NT 3.1, the first contemporaneous documentation is here taken to be the DDK for Windows NT 3.51 from 1995. Even by this standard many exports were not documented immediately. This applies especially to the many whose names begin with Cc or FsRtl, which are thought to have been documented first in the IFS Kit for Windows 2000.

Nearly three quarters of these original exports are nowadays documented, but typically not with any indication of their long history. In the early years of 32-bit Windows, it does not seem to have been Microsoft’s standard practice to document which Windows versions have which kernel functions. For all documented functions in the table, including if marked as obsolete or reserved, assume that the WDK documentation has no version information except if stated otherwise in the Remarks column.

In some cases, the documentation admits to an existence before Windows 2000. In others, the documentation describes behaviour for specific versions, none of which precede Windows 2000. For a few, the documentation states explicitly that the function requires Windows 2000. Rather many are said to require Windows XP. Some are even said to require at least Windows Server 2003 SP1, which is so specific that you might think that it must have been checked. One was somehow thought by someone at Microsoft to be new for Windows Vista.

Most documented functions and even about a quarter of the undocumented functions are declared in one or another of the WDK header files. The WDK applies version constraints (in terms of the NTDDI_VERSION macro) to most declarations, but this also is a recent practice. When Microsoft decided to start adding this information, it seems no trouble was taken to determine any function’s origin from before Windows 2000. Yet instead of leaving the old declarations without version constraints, trouble was taken to add version information in the full knowledge that the addition would be factually wrong for the overwhelming majority of these old functions. In this way, very nearly all these original functions are said to require at least Windows 2000 (and some are said to be very recent indeed). Exported variables are always declared without version constraints. When a function, typically obsolete, is redefined by a macro or is implemented inline, no version constraints apply.

Nearly a fifth of the original functions are still neither documented nor declared as of the WDK for Windows 7. (This is not to say that any of them ought to be documented or declared, just that they still aren't documented or declared.) It might be thought unlikely that any of them will be documented by Microsoft any time soon, if ever. After all, if they haven’t been missed in well over a decade, can they even be worth knowing about? Yet a trickle of these ancient functions get newly documented with each new release of the WDK.

Function Remarks
CcCanIWrite undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcCopyRead undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
CcCopyWrite undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
CcDeferWrite undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcFlushCache undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcGetDirtyPages undocumented until 2000-2006 (IFS);
documentation requires Windows XP and higher;
declaration requires Windows XP and higher
CcGetFileObjectFromBcb undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcGetFileObjectFromSectionPtrs undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcInitializeCacheMap undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcIsThereDirtyData undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcMapData undocumented until 2000 (IFS);
documentation acknowledges existence before Windows 2000;
declaration requires Windows 2000 and higher, with variation for Windows XP and higher
CcMdlRead undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcMdlReadComplete undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcMdlWriteComplete undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcPinMappedData undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcPinRead undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcPrepareMdlWrite undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcPreparePinWrite undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcPurgeCacheSection undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher, with (undocumented) variation for Windows Vista and higher
CcRepinBcb undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcScheduleReadAhead undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcSetAdditionalCacheAttributes undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcSetDirtyPageThreshold undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcSetDirtyPinnedData undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcSetFileSizes undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcSetLogHandleForFile undocumented until 2000-2006 (IFS);
documentation requires Windows XP and higher;
declaration requires Windows XP and higher
CcSetReadAheadGranularity undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcUninitializeCacheMap undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcUnpinData undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcUnpinDataForThread undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcUnpinRepinnedBcb undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
CcZeroData undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher (and notes a variation for Windows Vista and higher);
declaration requires Windows 2000 and higher
DbgBreakPoint declaration requires Windows 2000 and higher;
conditionally redefined by macro as compiler intrinsic __debugbreak
DbgLoadImageSymbols  
DbgPrint documentation requires Windows 2000 and higher
ExAcquireResourceExclusive discontinued in 5.1;
redefined by (deprecated) macro as ExAcquireResourceExclusiveLite
ExAcquireResourceShared discontinued in 3.50
ExAllocatePool not documented as obsolete until 2000-2002;
declaration (deprecated) requires Windows 2000 and higher
ExAllocatePoolWithQuota not documented as obsolete until 2000-2002;
declaration (deprecated) requires Windows 2000 and higher
ExConvertExclusiveToShared discontinued in 3.50
ExDeleteResource discontinued in 5.1;
redefined by (deprecated) macro as ExDeleteResourceLite
ExDisableResourceBoost discontinued in 3.50
ExExtendZone documented since 1996-2000 as obsolete;
declaration (deprecated) requires Windows 2000 and higher
ExFreePool declaration requires Windows 2000 and higher
ExInitializeResource discontinued in 5.1;
redefined by (deprecated) macro as ExInitializeResourceLite
ExInitializeZone not documented as obsolete until 1996-2000;
declaration (deprecated) requires Windows 2000 and higher
ExInterlockedAddLargeInteger declaration requires Windows 2000 and higher
ExInterlockedAddUlong declaration requires Windows 2000 and higher;
redefined by macro as ExfInterlockedAddUlong (x86 only)
ExInterlockedDecrementLong x86 only;
redefined by (deprecated) macro using Exfi386InterlockedDecrementLong;
supported for x64 by macro using compiler intrinsic _InterlockedDecrement
ExInterlockedExchangeUlong x86 only;
redefined by (deprecated) macro in terms of Exfi386InterlockedExchangeUlong;
supported for x64 by macro in terms of compiler intrinsic _InterlockedExchange
ExInterlockedIncrementLong x86 only;
redefined by (deprecated) macro using Exfi386InterlockedIncrementLong;
supported for x64 as macro using compiler intrinsic _InterlockedIncrement
ExInterlockedInsertHeadList declaration requires Windows 2000 and higher;
redefined by macro as ExfInterlockedInsertHeadList (x86 only)
ExInterlockedInsertTailList declaration requires Windows 2000 and higher;
redefined by macro as ExfInterlockedInsertTailList (x86 only)
ExInterlockedPopEntryList declaration requires Windows 2000 and higher;
redefined by macro as ExfInterlockedPopEntryList (x86 only)
ExInterlockedPushEntryList declaration requires Windows 2000 and higher;
redefined by macro as ExfInterlockedPushEntryList (x86 only)
ExInterlockedRemoveHeadList declaration requires Windows 2000 and higher;
redefined by macro as ExfInterlockedRemoveHeadList (x86 only)
ExIsResourceAcquiredShared discontinued in 3.50
ExLocalTimeToSystemTime declaration requires Windows 2000 and higher
ExQueryPoolBlockSize undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
ExQueueWorkItem not documented as obsolete until 1996-2000 (and still not obsolete in IFS documentation);
declaration (deprecated) requires Windows 2000 and higher
ExRaiseHardError  
ExRaiseStatus declaration requires Windows 2000 and higher
ExReleaseResource discontinued in 3.50
ExReleaseResourceForThread discontinued in 5.1;
redefined by (deprecated) macro as ExReleaseResourceForThreadLite
ExSystemExceptionFilter  
ExSystemTimeToLocalTime declaration requires Windows 2000 and higher
Exi386InterlockedDecrementLong x86 only
Exi386InterlockedExchangeUlong x86 only
Exi386InterlockedIncrementLong x86 only
FsRtlAddLargeMcbEntry undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlAddMcbEntry undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlAllocatePool undocumented until 2000 (IFS);
not declared
FsRtlAllocatePoolWithQuota undocumented until 2000 (IFS);
not declared
FsRtlAllocateResource undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
FsRtlAreNamesEqual undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlBalanceReads undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
FsRtlCheckLockForReadAccess undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlCheckLockForWriteAccess undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlCheckOplock undocumented until 2000-2006 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
FsRtlCopyRead undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlCopyWrite undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlCurrentBatchOplock undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
FsRtlDeregisterUncProvider undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlDissectDbcs undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
FsRtlDissectName undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlDoesDbcsContainWildCards undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
FsRtlDoesNameContainWildCards undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlFastCheckLockForRead undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
FsRtlFastCheckLockForWrite undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
FsRtlFastUnlockAll undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlFastUnlockAllByKey undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlFastUnlockSingle undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
FsRtlGetNextFileLock undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlGetNextLargeMcbEntry undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlGetNextMcbEntry undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlInitializeFileLock undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlInitializeLargeMcb undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlInitializeMcb undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlInitializeOplock undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
FsRtlIsDbcsInExpression undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlIsFatDbcsLegal undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
FsRtlIsHpfsDbcsLegal undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
FsRtlIsNameInExpression undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlIsNtstatusExpected undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlIsTotalDeviceFailure undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
FsRtlLegalAnsiCharacterArray (data)  
FsRtlLookupLargeMcbEntry undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlLookupLastLargeMcbEntry undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlLookupLastMcbEntry undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlLookupMcbEntry undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlMdlRead  
FsRtlNormalizeNtstatus undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlNotifyChangeDirectory  
FsRtlNotifyCleanup undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlNotifyReportChange  
FsRtlNumberOfRunsInLargeMcb undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlNumberOfRunsInMcb undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlOplockFsctrl undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
FsRtlOplockIsFastIoPossible undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
FsRtlPostStackOverflow undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
FsRtlPrepareMdlWrite  
FsRtlPrivateLock undocumented until 2000-2006;
declaration requires Windows 2000 and higher
FsRtlProcessFileLock undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlRegisterUncProvider undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlRemoveLargeMcbEntry undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlRemoveMcbEntry undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlSyncVolumes  
FsRtlUninitializeFileLock undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlUninitializeLargeMcb undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlUninitializeMcb undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
FsRtlUninitializeOplock undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
IoAcquireCancelSpinLock declaration requires Windows 2000 and higher
IoAcquireVpbSpinLock undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
IoAdapterObjectType (data)  
IoAllocateAdapterChannel not documented as obsolete until 1996-2000;
conditionally redefined inline and deprecated, else not declared
IoAllocateController declaration requires Windows 2000 and higher
IoAllocateErrorLogEntry declaration requires Windows 2000 and higher
IoAllocateIrp declaration requires Windows 2000 and higher
IoAllocateMdl declaration requires Windows 2000 and higher
IoAttachDevice declaration requires Windows 2000 and higher
IoAttachDeviceByPointer declaration (deprecated) requires Windows 2000 and higher
IoBuildAsynchronousFsdRequest declaration requires Windows 2000 and higher
IoBuildDeviceIoControlRequest declaration requires Windows 2000 and higher
IoBuildPartialMdl declaration requires Windows 2000 and higher
IoBuildSynchronousFsdRequest declaration requires Windows 2000 and higher
IoCallDriver redefined by macro in terms of IofCallDriver
IoCancelIrp declaration requires Windows 2000 and higher
IoCheckDesiredAccess undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
IoCheckEaBufferValidity undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
IoCheckFunctionAccess undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
IoCheckShareAccess declaration requires Windows 2000 and higher
IoCompleteRequest redefined by macro using IofCompleteRequest
IoConnectInterrupt declaration requires Windows 2000 and higher
IoCreateController declaration requires Windows 2000 and higher
IoCreateDevice declaration requires Windows 2000 and higher
IoCreateFile undocumented until 1996-2000;
declaration requires Windows 2000 and higher
IoCreateStreamFileObject undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
IoCreateSymbolicLink declaration requires Windows 2000 and higher
IoCreateSynchronizationEvent declaration requires Windows 2000 and higher
IoCreateUnprotectedSymbolicLink declaration requires Windows 2000 and higher
IoDeleteController declaration requires Windows 2000 and higher
IoDeleteDevice declaration requires Windows 2000 and higher
IoDeleteSymbolicLink declaration requires Windows 2000 and higher
IoDetachDevice declaration requires Windows 2000 and higher
IoDeviceObjectType (data)  
IoDisconnectInterrupt declaration requires Windows 2000 and higher
IoFileObjectType (data) mentioned in documentation since 1996-2000 of ObReferenceObjectByHandle, etc
IoFreeController declaration requires Windows 2000 and higher
IoFreeIrp declaration requires Windows 2000 and higher
IoFreeMdl declaration requires Windows 2000 and higher
IoGetConfigurationInformation declaration requires Windows 2000 and higher
IoGetCurrentProcess declaration requires Windows 2000 and higher
IoGetDeviceObjectPointer declaration requires Windows 2000 and higher
IoGetRelatedDeviceObject declaration requires Windows 2000 and higher
IoInitializeIrp declaration requires Windows 2000 and higher
IoInitializeTimer declaration requires Windows 2000 and higher
IoIsOperationSynchronous undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
IoMakeAssociatedIrp declaration requires Windows 2000 and higher
IoQueryDeviceDescription not documented as obsolete until 1996-2000;
declaration (deprecated) requires Windows 2000 and higher
IoRaiseHardError declaration requires Windows 2000 and higher
IoRaiseInformationalHardError declaration requires Windows 2000 and higher
IoReadOperationCount (data)  
IoReadTransferCount (data)  
IoRegisterDriverReinitialization declaration requires Windows 2000 and higher
IoRegisterFileSystem undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
IoRegisterShutdownNotification declaration requires Windows 2000 and higher
IoReleaseCancelSpinLock declaration requires Windows 2000 and higher
IoReleaseVpbSpinLock undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
IoRemoveShareAccess declaration requires Windows 2000 and higher
IoReportHalResourceUsage  
IoReportResourceUsage not documented as obsolete until 1996-2000;
declaration (deprecated) requires Windows 2000 and higher
IoSetHardErrorOrVerifyDevice declaration requires Windows 2000 and higher
IoSetInformation undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
IoSetShareAccess declaration requires Windows 2000 and higher
IoStartNextPacket declaration requires Windows 2000 and higher
IoStartNextPacketByKey declaration requires Windows 2000 and higher
IoStartPacket declaration requires Windows 2000 and higher
IoStartTimer declaration requires Windows 2000 and higher
IoStatisticsLock (data)  
IoStopTimer declaration requires Windows 2000 and higher
IoUnregisterFileSystem undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
IoUnregisterShutdownNotification declaration requires Windows 2000 and higher
IoUpdateShareAccess declaration requires Windows 2000 and higher
IoVerifyVolume undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
IoWriteErrorLogEntry declaration requires Windows 2000 and higher
IoWriteOperationCount (data)  
IoWriteTransferCount (data)  
KdDebuggerEnabled (data) undocumented until 2002-2005;
documentation (as KD_DEBUGGER_ENABLED via macro) requires Windows XP and higher
KdDebuggerNotPresent (data) undocumented until 2002-2005;
documentation (as KD_DEBUGGER_NOT_PRESENT via macro) requires Windows XP and higher
KdPollBreakIn  
Ke386CallBios x86 only;
discontinued in 6.2
Ke386IoSetAccessProcess x86 only
Ke386QueryIoAccessMap x86 only
Ke386SetIoAccessMap x86 only
KeAcquireSpinLockAtDpcLevel redefined for x86 by macro using KefAcquireSpinLockAtDpcLevel;
declaration for x64 requires Windows 2000 and higher
KeAttachProcess undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
KeBugCheck declaration requires Windows 2000 and higher
KeBugCheckEx declaration requires Windows 2000 and higher
KeCancelTimer declaration requires Windows 2000 and higher
KeConnectInterrupt discontinued in 6.0
KeDcacheFlushCount discontinued in 5.2
KeDelayExecutionThread declaration requires Windows 2000 and higher
KeDetachProcess undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
KeDisconnectInterrupt discontinued in 6.0
KeEnterKernelDebugger undocumented until 2000-2002;
not declared
KeFindConfigurationEntry  
KeFlushEntireTb  
KeGetCurrentThread undocumented until 1996-2000;
redefined inline for x64 to read from gs segment
KeGetPreviousMode x86 only
KeI386AbiosCall x86 only;
discontinued in 6.2
KeI386AllocateGdtSelectors x86 only;
discontinued in 6.2
KeI386FlatToGdtSelector x86 only;
discontinued in 6.2
KeI386GetLid x86 only;
discontinued in 6.2
KeI386MachineType x86 only
KeI386ReleaseLid x86 only;
discontinued in 6.2
KeIcacheFlushCount discontinued in 5.2
KeInitializeApc  
KeInitializeDeviceQueue declaration requires Windows 2000 and higher
KeInitializeDpc declaration requires Windows 2000 and higher
KeInitializeEvent  
KeInitializeInterrupt  
KeInitializeMutant undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
KeInitializeMutex declaration requires Windows 2000 and higher
KeInitializePowerStatus discontinued in 3.50
KeInitializeSemaphore declaration requires Windows 2000 and higher
KeInitializeSpinLock x86 only;
conditionally redefined inline;
declaration requires Windows 2000 and higher;
supported for x64 through inline definition
KeInitializeTimer declaration requires Windows 2000 and higher
KeInsertByKeyDeviceQueue declaration requires Windows 2000 and higher
KeInsertDeviceQueue declaration requires Windows 2000 and higher
KeInsertQueueApc  
KeInsertQueueDpc declaration requires Windows 2000 and higher
KeInsertQueuePowerStatus discontinued in 3.50
KeIsExecutingDpc x86-only before 6.0
KeLeaveCriticalRegion declaration requires Windows 2000 and higher
KeNumberProcessors (data) undocumented until 2007;
documented as obsolete for Windows Vista SP1, and higher
KeProfileInterrupt x86 only;
discontinued in 6.2
KeQuerySystemTime x86 only;
declaration requires Windows 2000 and higher;
supported for x64 by macro to access shared user data
KeQueryTickCount x86 only;
redefined by macro as block of code that reads KeTickCount;
supported for x64 by macro to access shared user data
KeQueryTimeIncrement declaration requires Windows 2000 and higher
KeReadStateEvent declaration requires Windows 2000 and higher
KeReadStateMutex declaration requires Windows 2000 and higher
KeReadStateSemaphore declaration requires Windows 2000 and higher
KeReadStateTimer declaration requires Windows 2000 and higher
KeReleaseMutant undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
KeReleaseMutex declaration requires Windows 2000 and higher
KeReleaseSemaphore declaration requires Windows 2000 and higher
KeReleaseSpinLockFromDpcLevel redefined for x86 by macro using KefReleaseSpinLockFromDpcLevel;
declaration for x64 requires Windows 2000 and higher
KeRemoveByKeyDeviceQueue declaration requires Windows 2000 and higher
KeRemoveDeviceQueue declaration requires Windows 2000 and higher
KeRemoveEntryDeviceQueue declaration requires Windows 2000 and higher
KeRemoveQueueDpc declaration requires Windows 2000 and higher
KeRemoveQueuePowerStatus discontinued in 3.50
KeResetEvent declaration requires Windows 2000 and higher
KeSetBasePriorityThread declaration requires Windows 2000 and higher
KeSetEvent declaration requires Windows 2000 and higher
KeSetPriorityThread declaration requires Windows 2000 and higher
KeSetTimeIncrement discontinued in 6.3
KeSetTimer declaration requires Windows 2000 and higher
KeSynchronizeExecution declaration requires Windows 2000 and higher
KeTerminateThread discontinued in 6.1
KeTimeIncrement (data) discontinued in 3.50
KeUpdateRunTime discontinued in 6.3
KeUpdateSystemTime discontinued in 6.2
KeWaitForMultipleObjects declaration requires Windows 2000 and higher
KeWaitForMutexObject redefined by macro as KeWaitForSingleObject
KeWaitForSingleObject declaration requires Windows 2000 and higher
Kei386EoiHelper x86 only
KiAcquireSpinLock x86 only
KiCoprocessorError x86 only;
discontinued in 6.3
KiDeliverApc x86 only
KiDispatchInterrupt x86 only
KiIpiSend discontinued in 4.0
KiIpiServiceRoutine x86 only
KiReleaseSpinLock x86 only
KiUnexpectedInterrupt x86 only
Kii386SpinOnSpinLock x86 only;
discontinued in 6.1
LsaCallAuthenticationPackage documentation is in SDK for SECUR32, and requires Windows NT 3.1 and higher
LsaDeregisterLogonProcess documentation is in SDK for SECUR32, and requires Windows NT 3.1 and higher
LsaFreeReturnBuffer documentation is in SDK for SECUR32, and requires Windows NT 3.1 and higher
LsaLogonUser documentation is in SDK for SECUR32, and requires Windows NT 3.1 and higher
LsaLookupAuthenticationPackage documentation is in SDK for SECUR32, and requires Windows NT 3.1 and higher
LsaRegisterLogonProcess documentation is in SDK for SECUR32, and requires Windows NT 3.1 and higher
MmAllocateContiguousMemory declaration requires Windows 2000 and higher
MmAllocateNonCachedMemory declaration requires Windows 2000 and higher
MmBuildMdlForNonPagedPool declaration requires Windows 2000 and higher
MmCreateMdl not documented as obsolete until 1999-2000;
declaration requires Windows 2000 and higher
MmDbgTranslatePhysicalAddress discontinued in 5.0
MmFlushImageSection undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
MmForceSectionClosed undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
MmFreeContiguousMemory declaration requires Windows 2000 and higher
MmFreeNonCachedMemory declaration requires Windows 2000 and higher
MmGetPhysicalAddress declaration requires Windows 2000 and higher
MmIsAddressValid declaration requires Windows 2000 and higher
MmIsNonPagedSystemAddressValid declaration (deprecated) requires Windows 2000 and higher
MmMapIoSpace declaration requires Windows 2000 and higher
MmMapLockedPages documented since 2002-2005 as obsolete for Windows 2000 and higher;
declaration requires Windows 2000 and higher
MmProbeAndLockPages declaration requires Windows 2000 and higher
MmQuerySystemSize declaration requires Windows 2000 and higher
MmSetAddressRangeModified undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
MmSizeOfMdl declaration requires Windows 2000 and higher
MmUnlockPages declaration requires Windows 2000 and higher
MmUnmapIoSpace declaration requires Windows 2000 and higher
MmUnmapLockedPages declaration requires Windows 2000 and higher
NlsLeadByteInfo (data)  
NlsMbCodePageTag (data) declared via NLS_MB_CODE_PAGE_TAG macro;
macro undocumented until 2008-2009
NtAdjustPrivilegesToken declaration requires Windows 2000 and higher
NtAllocateLocallyUniqueId undocumented until 2008-2009;
mentioned since 2007 in documentation of ZwAllocateLocallyUniqueId;
not declared
NtAllocateVirtualMemory undocumented until 2008-2009;
declaration requires Windows 2000 and higher
NtClose undocumented until 2008-2009;
mentioned since 2007 in documentation of ZwClose;
declaration requires Windows 2000 and higher
NtConnectPort  
NtCreateEvent undocumented until 2008-2009;
documentation requires Windows XP and higher;
not declared
NtCreateFile undocumented until 2008-2009;
mentioned since 2007 in documentation of ZwCreateFile;
declaration requires Windows 2000 and higher
NtCreateSection undocumented until 2008-2009;
mentioned since 2007 in documentation of ZwCreateSection;
declaration requires Windows XP and higher
NtDeviceIoControlFile undocumented until 2008-2009;
declaration requires Windows 2000 and higher
NtDuplicateObject undocumented until 2008-2009;
not declared
NtDuplicateToken undocumented until 2008-2009;
documentation requires Windows 2000 and higher;
declaration requires Windows XP and higher
NtFreeVirtualMemory undocumented until 2008-2009;
declaration requires Windows 2000 and higher
NtFsControlFile undocumented until 2008-2009;
declaration requires Windows 2000 and higher
NtGlobalFlag (data)  
NtLockFile undocumented until 2008-2009;
documentation requires Windows 7 and higher;
declaration requires Windows 2000 and higher
NtMapViewOfSection undocumented until 2008-2009;
mentioned since 2007 in documentation of ZwMapViewOfSection;
not declared
NtNotifyChangeDirectoryFile  
NtOpenFile undocumented until 2008-2009;
mentioned since 2007 in documentation of ZwOpenFile;
declaration requires Windows 2000 and higher
NtOpenProcessToken declaration requires Windows 2000 and higher
NtQueryDirectoryFile undocumented until 2008-2009;
documentation requires Windows XP and higher;
declaration requires Windows 2000 and higher
NtQueryEaFile  
NtQueryInformationFile undocumented until 2008-2009;
mentioned since 2007 in documentation of ZwQueryInformationFile;
declaration requires Windows 2000 and higher
NtQueryInformationToken undocumented until 2008-2009;
documentation requires Windows XP and higher;
declaration requires Windows 2000 and higher
NtQuerySecurityObject undocumented until 2008-2009;
documentation requires Windows XP and higher;
declaration requires Windows 2000 and higher
NtQueryVolumeInformationFile undocumented until 2008-2009;
declaration requires Windows 2000 and higher
NtReadFile undocumented until 2008-2009;
mentioned since 2007 in documentation of ZwReadFile;
declaration requires Windows 2000 and higher
NtRequestPort  
NtRequestWaitReplyPort  
NtSetEvent undocumented until 2008-2009;
not declared
NtSetInformationFile undocumented until 2008-2009;
mentioned since 2007 in documentation of ZwSetInformationFile;
declaration requires Windows 2000 and higher
NtSetInformationProcess  
NtSetInformationThread undocumented until 2008-2009;
mentioned since 2007 in documentation of ZwSetInformationThread;
declaration requires Windows XP and higher
NtSetSecurityObject undocumented until 2008-2009;
documentation requires Windows XP and higher;
declaration requires Windows 2000 and higher
NtUnlockFile undocumented until 2008-2009;
documentation requires Windows 7 and higher;
declaration requires Windows 2000 and higher
NtVdmControl  
NtWaitForSingleObject undocumented until 2008-2009;
documentation requires Windows XP and higher;
not declared
NtWriteFile undocumented until 2008-2009;
mentioned since 2007 in documentation of ZwWriteFile;
declaration requires Windows 2000 and higher
ObCreateObject  
ObDereferenceObject redefined by macro in terms of ObfDereferenceObject
ObInsertObject undocumented until 2007;
declaration requires Windows 2000 and higher
ObOpenObjectByPointer undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
ObQueryNameString undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
ObReferenceObjectByHandle declaration requires Windows 2000 and higher
ObReferenceObjectByPointer declaration requires Windows 2000 and higher
PfxFindPrefix declaration requires Windows 2000 and higher
PfxInitialize declaration requires Windows 2000 and higher
PfxInsertPrefix declaration requires Windows 2000 and higher
PfxRemovePrefix declaration requires Windows 2000 and higher
ProbeForRead discontinued in 3.50;
restored in 5.0
ProbeForWrite undocumented until 1996-2000;
declaration requires Windows 2000 and higher
PsChargePoolQuota undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
PsCreateSystemProcess discontinued in 6.0
PsCreateSystemThread declaration requires Windows 2000 and higher
PsInitialSystemProcess (data) undocumented until 2007;
documentation requires Windows NT 4.0 and higher
PsProcessType (data) mentioned since 2005-2006 in documentation of ObReferenceObjectByHandle, etc
PsReturnPoolQuota undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
PsTerminateSystemThread declaration requires Windows 2000 and higher
PsThreadType (data) mentioned since 2005-2006 in documentation of ObReferenceObjectByHandle, etc
READ_REGISTER_BUFFER_UCHAR x86 only;
supported for x64 by inline definition
READ_REGISTER_BUFFER_ULONG x86 only;
supported for x64 by inline definition
READ_REGISTER_BUFFER_USHORT x86 only;
supported for x64 by inline definition
READ_REGISTER_UCHAR x86 only;
supported for x64 by inline definition
READ_REGISTER_ULONG x86 only;
supported for x64 by inline definition
READ_REGISTER_USHORT x86 only;
supported for x64 by inline definition
RtlAbsoluteToSelfRelativeSD undocumented until 2000-2006 (IFS);
documentation requires Windows Server 2003 SP1, and higher;
declaration requires Windows Server 2003 SP1, and higher
RtlAddAccessAllowedAce undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlAllocateHeap undocumented until 2000-2006 (IFS);
documentation requires Windows XP and higher;
declaration requires Windows 2000 and higher
RtlAnsiStringToUnicodeSize redefined by macro using NlsMbCodePageTag and RtlxAnsiStringToUnicodeSize
RtlAnsiStringToUnicodeString declaration requires Windows 2000 and higher
RtlAppendAsciizToString  
RtlAppendStringToString undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
RtlAppendUnicodeStringToString declaration requires Windows 2000 and higher
RtlAppendUnicodeToString declaration requires Windows 2000 and higher
RtlAreBitsClear undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlAreBitsSet undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlAssert undocumented until 2000-2002
RtlCharToInteger declaration requires Windows 2000 and higher
RtlCheckRegistryKey declaration requires Windows 2000 and higher
RtlClearAllBits undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlClearBits undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlCompareMemory declaration requires Windows 2000 and higher
RtlCompareMemoryUlong undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlCompareString declaration requires Windows 2000 and higher
RtlCompareUnicodeString declaration requires Windows 2000 and higher
RtlConvertLongToLargeInteger x86 only;
redefined inline (deprecated for Windows XP and higher), also for x64
RtlConvertSidToUnicodeString undocumented until 2008-2009;
documentation requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
RtlConvertUlongToLargeInteger x86 only;
redefined inline (deprecated for Windows XP and higher), also for x64
RtlCopyLuid undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlCopySid undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlCopyString declaration requires Windows 2000 and higher
RtlCopyUnicodeString declaration requires Windows 2000 and higher
RtlCreateAcl undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlCreateHeap undocumented until 2000-2006 (IFS);
documentation requires Windows XP and higher;
declaration requires Windows XP and higher
RtlCreateRegistryKey declaration requires Windows 2000 and higher
RtlCreateSecurityDescriptor declaration requires Windows 2000 and higher
RtlCustomCPToUnicodeN undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
RtlDelete undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlDeleteElementGenericTable undocumented until 2000 (IFS);
conditionally redefined by macro as RtlDeleteElementGenericTableAvl;
declaration requires Windows 2000 and higher
RtlDeleteRegistryValue declaration requires Windows 2000 and higher
RtlDestroyHeap undocumented until 2000-2006 (IFS);
documentation requires Windows XP and higher;
declaration requires Windows XP and higher
RtlEnlargedIntegerMultiply x86 only;
redefined inline (also for x64) to use 64-bit integer arithmetic
RtlEnlargedUnsignedDivide x86 only;
redefined inline (also for x64) to use 64-bit integer arithmetic
RtlEnlargedUnsignedMultiply x86 only;
redefined inline (also for x64) to use 64-bit integer arithmetic
RtlEnumerateGenericTable undocumented until 2000 (IFS);
conditionally redefined by macro as RtlEnumerateGenericTableAvl;
declaration requires Windows 2000 and higher
RtlEnumerateGenericTableWithoutSplaying undocumented until 2000 (IFS);
conditionally redefined by macro as RtlEnumerateGenericTableWithoutSplayingAvl;
declaration requires Windows 2000 and higher
RtlEqualLuid undocumented until 1996-2000;
redefined by macro
RtlEqualSid undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlEqualString declaration requires Windows 2000 and higher
RtlEqualUnicodeString declaration requires Windows 2000 and higher
RtlExtendedIntegerMultiply x86 only;
defined inline for x64 to use 64-bit arithmetic
RtlExtendedLargeIntegerDivide x86 only;
defined inline for x64 to use 64-bit arithmetic
RtlExtendedMagicDivide x86 only;
defined inline for x64 to use 64-bit arithmetic
RtlFillMemory redefined by macro using memset
RtlFillMemoryUlong x86 only;
undocumented until 2000 (IFS);
declaration requires Windows XP and higher;
defined inline for x64 to use compiler intrinsic __stosq
RtlFindClearBits undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlFindClearBitsAndSet undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlFindFirstRunClear undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlFindFirstRunSet discontinued in 5.1
RtlFindLongestRunClear undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlFindLongestRunSet discontinued in 5.1
RtlFindSetBits undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlFindSetBitsAndClear undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlFindUnicodePrefix undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlFreeAnsiString declaration requires Windows 2000 and higher
RtlFreeHeap undocumented until 2000-2006 (IFS);
documentation requires Windows XP and higher;
declaration requires Windows 2000 and higher
RtlFreeOemString undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlFreeUnicodeString  
RtlGenerate8dot3Name undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher;
different return type declared for Windows Vista SP1, and higher
RtlGetCallersAddress undocumented until 2000-2002;
conditionally redefined by macro for x64 to use compiler intrinsic _ReturnAddress;
declaration requires Windows 2000 and higher
RtlGetDaclSecurityDescriptor undocumented until 2000-2006 (IFS);
documentation requires Windows Server 2003 SP1, and higher;
declaration requires Windows 2000 and higher
RtlGetElementGenericTable undocumented until 2000 (IFS);
conditonally redefined by macro as RtlGetElementGenericTableAvl;
declaration requires Windows 2000 and higher
RtlGetGroupSecurityDescriptor undocumented until 2000-2006 (IFS);
documentation requires Windows Server 2003 SP1, and higher;
declaration requires Windows Server 2003 SP1, and higher
RtlGetHeapUserValue discontinued in 3.50
RtlGetOwnerSecurityDescriptor undocumented until 2000 (IFS);
documentation requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
RtlInitAnsiString declaration requires Windows 2000 and higher
RtlInitCodePageTable undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
RtlInitString declaration requires Windows 2000 and higher
RtlInitUnicodeString  
RtlInitializeBitMap undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlInitializeGenericTable undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
conditionally redefined by macro as RtlInitializeGenericTableAvl;
declaration requires Windows 2000 and higher
RtlInitializeUnicodePrefix undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlInsertElementGenericTable undocumented until 2000 (IFS);
conditionally redefined by macro as RtlInsertElementGenericTableAvl;
declaration requires Windows 2000 and higher
RtlInsertUnicodePrefix undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlIntegerToUnicodeString declaration requires Windows 2000 and higher
RtlLargeIntegerAdd x86 only;
redefined inline (deprecated) to use 64-bit integer arithmetic (x64 also)
RtlLargeIntegerArithmeticShift x86 only;
redefined inline (deprecated for Windows XP and higher) to use 64-bit integer arithmetic (x64 also)
RtlLargeIntegerDivide x86 only;
declaration (deprecated) requires Windows 2000 and higher;
redefined inline for x64 to use 64-bit integer arithmetic
RtlLargeIntegerNegate x86 only;
redefined inline (deprecated) to use 64-bit integer arithmetic (x64 also)
RtlLargeIntegerShiftLeft x86 only;
redefined inline (deprecated for Windows XP and higher) to use 64-bit integer arithmetic (x64 also)
RtlLargeIntegerShiftRight x86 only;
redefined inline (deprecated for Windows XP and higher) to use 64-bit integer arithmetic (x64 also)
RtlLargeIntegerSubtract x86 only;
redefined inline (deprecated) to use 64-bit integer arithmetic (x64 also)
RtlLengthRequiredSid undocumented until 2000 (IFS);
documentation requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
RtlLengthSecurityDescriptor declaration requires Windows 2000 and higher
RtlLengthSid undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlLookupElementGenericTable undocumented until 2000 (IFS);
conditionally redefined by macro as RtlLookupElementGenericTableAvl;
declaration requires Windows 2000 and higher
RtlMapGenericMask undocumented until 2000-2002;
declaration requires Windows 2000 and higher
RtlMoveMemory redefined by macro using memmove
RtlNextUnicodePrefix undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlNtStatusToDosError undocumented until 2000-2006 (IFS);
documented until 2007 as reserved;
declaration requires Windows 2000 and higher
RtlNtStatusToDosErrorNoTeb undocumented until 2000-2006 (IFS);
declaration requires Windows XP and higher
RtlNumberGenericTableElements undocumented until 2000 (IFS);
conditionally redefined by macro as RtlNumberGenericTableElementsAvl
RtlNumberOfClearBits undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlNumberOfSetBits undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlOemStringToCountedUnicodeString undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlOemStringToUnicodeSize undocumented until 2000 (IFS);
redefined by macro in terms of NlsMbOemCodePageTag and RtlxOemStringToUnicodeSize
RtlOemStringToUnicodeString undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlOemToUnicodeN undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlPrefixString  
RtlPrefixUnicodeString undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlQueryRegistryValues declaration requires Windows 2000 and higher
RtlQueryTimeZoneInformation  
RtlRandom undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlRemoveUnicodePrefix undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlSecondsSince1970ToTime undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlSecondsSince1980ToTime undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlSetAllBits undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlSetBits undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlSetDaclSecurityDescriptor declaration requires Windows 2000 and higher
RtlSetGroupSecurityDescriptor undocumented until 2000-2006 (IFS);
documentation requires Windows Server 2003 SP1, and higher;
declaration requires Windows Server 2003 SP1, and higher
RtlSetHeapUserValue discontinued in 3.50
RtlSetOwnerSecurityDescriptor undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlSetTimeZoneInformation  
RtlSplay undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlSubAuthorityCountSid undocumented until 2000-2006 (IFS);
declaration requires Windows XP and higher
RtlSubAuthoritySid undocumented until 2000 (IFS);
documentation requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
RtlTimeFieldsToTime declaration requires Windows 2000 and higher
RtlTimeToSecondsSince1970 undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlTimeToSecondsSince1980 undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlTimeToTimeFields declaration requires Windows 2000 and higher
RtlUnicodeStringToAnsiSize undocumented until 1996-2000;
redefined by macro in terms of NlsMbCodePageTag and RtlxUnicodeStringToAnsiSize
RtlUnicodeStringToAnsiString declaration requires Windows 2000 and higher
RtlUnicodeStringToCountedOemString undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlUnicodeStringToOemSize undocumented until 2000 (IFS);
redefined by macro in terms of NlsMbOemCodePageTag and RtlxUnicodeStringToOemSize
RtlUnicodeStringToOemString undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlUnicodeToCustomCPN undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
RtlUnicodeToMultiByteN undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlUnicodeToOemN undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlUnwind also exported from KERNEL32 version 3.51 and higher;
documentation and declaration are in SDK for KERNEL32;
documentation requires Windows 2000 and higher
RtlUpcaseUnicodeChar undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlUpcaseUnicodeString declaration requires Windows 2000 and higher
RtlUpcaseUnicodeStringToAnsiString  
RtlUpcaseUnicodeStringToCountedOemString undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlUpcaseUnicodeStringToOemString undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlUpcaseUnicodeToCustomCPN undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
RtlUpcaseUnicodeToMultiByteN undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlUpcaseUnicodeToOemN undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlUpperChar undocumented until 1996-2000;
declaration requires Windows 2000 and higher
RtlUpperString declaration requires Windows 2000 and higher
RtlValidSecurityDescriptor declaration requires Windows 2000 and higher
RtlValidSid undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlWriteRegistryValue declaration requires Windows 2000 and higher
RtlZeroMemory redefined by macro using memset
SeAccessCheck declaration requires Windows 2000 and higher
SeAppendPrivileges undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SeAssignSecurity declaration requires Windows 2000 and higher
SeAuditingFileEvents undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SeCaptureSubjectContext undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SeCreateClientSecurity undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SeDeassignSecurity declaration requires Windows 2000 and higher
SeExports (data) undocumented until 2000-2006 (IFS)
SeFreePrivileges undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SeImpersonateClient undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SeLockSubjectContext undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SeOpenObjectAuditAlarm undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SePublicDefaultDacl (data)  
SeQueryAuthenticationIdToken undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SeQuerySecurityDescriptorInfo undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SeReleaseSubjectContext undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SeSetSecurityDescriptorInfo undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SeSinglePrivilegeCheck declaration requires Windows 2000 and higher
SeSystemDefaultDacl (data)  
SeTokenType undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
SeUnlockSubjectContext undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
WRITE_REGISTER_BUFFER_UCHAR x86 only;
supported for x64 by inline definition
WRITE_REGISTER_BUFFER_ULONG x86 only;
supported for x64 by inline definition
WRITE_REGISTER_BUFFER_USHORT x86 only;
supported for x64 by inline definition
WRITE_REGISTER_UCHAR x86 only;
supported for x64 by inline definition
WRITE_REGISTER_ULONG x86 only;
supported for x64 by inline definition
WRITE_REGISTER_USHORT x86 only;
supported for x64 by inline definition
ZwAccessCheckAndAuditAlarm  
ZwAllocateVirtualMemory undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
ZwClose declaration requires Windows 2000 and higher
ZwCloseObjectAuditAlarm  
ZwCreateDirectoryObject declaration requires Windows 2000 and higher
ZwCreateFile documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
ZwCreateKey declaration requires Windows 2000 and higher
ZwCreateSection undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
ZwCreateSymbolicLinkObject  
ZwDeleteKey declaration requires Windows 2000 and higher
ZwDeleteValueKey undocumented until 2002-2005;
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
ZwDeviceIoControlFile undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
ZwDisplayString declaration requires Windows 2000 and higher
ZwDuplicateObject undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
ZwEnumerateKey declaration requires Windows 2000 and higher
ZwEnumerateValueKey declaration requires Windows 2000 and higher
ZwFlushKey declaration requires Windows 2000 and higher
ZwFreeVirtualMemory undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
ZwLoadDriver undocumented until 2000-2006 (IFS);
documentation requires Windows XP and higher;
declaration requires Windows 2000 and higher
ZwMakeTemporaryObject declaration requires Windows 2000 and higher
ZwMapViewOfSection declaration requires Windows 2000 and higher
ZwOpenDirectoryObject undocumented until 2000-2006 (IFS);
documentation requires Windows XP and higher;
declaration requires Windows 2000 and higher
ZwOpenFile undocumented until 1996-2000;
declaration requires Windows 2000 and higher
ZwOpenKey declaration requires Windows 2000 and higher
ZwOpenProcessToken  
ZwOpenSection declaration requires Windows 2000 and higher
ZwOpenSymbolicLinkObject undocumented until 1996-2000;
declaration requires Windows 2000 and higher
ZwOpenThreadToken  
ZwQueryInformationFile declaration requires Windows 2000 and higher
ZwQueryInformationToken undocumented until 2000-2006 (IFS);
documentation requires Windows XP and higher;
declaration requires Windows 2000 and higher
ZwQueryKey declaration requires Windows 2000 and higher
ZwQuerySymbolicLinkObject undocumented until 1996-2000;
declaration requires Windows 2000 and higher
ZwQueryValueKey declaration requires Windows 2000 and higher
ZwQueryVolumeInformationFile undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
ZwReadFile declaration requires Windows 2000 and higher
ZwSetInformationProcess  
ZwSetValueKey declaration requires Windows 2000 and higher
ZwUnmapViewOfSection declaration requires Windows 2000 and higher
ZwWriteFile declaration requires Windows 2000 and higher
_except_handler2 x86 only
_itoa  
_local_unwind2 x86 only
_stricmp  
_strnicmp  
_vsnprintf  
_wcsnicmp  
sprintf  
strncpy  
strstr  
wcschr  
wcscpy  
wcscspn  
wcslen  
wcsstr