Kernel Exports Added For Version 3.51

The table below lists the 105 exports that were added to the Windows kernel for the original version 3.51. All but seven are still exported in version 10.0.

Four other functions first appeared in version 3.51 but not in the original release. These additions for version 3.51 service packs are listed separately.

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.

Function Remarks
DbgPrompt undocumented until 2005-2006
ExAcquireSharedStarveExclusive declaration requires Windows 2000 and higher
ExCreateCallback undocumented until 1996-2000;
declaration requires Windows 2000 and higher
ExEventObjectType (data) mentioned since 1996-2000 in documentation of ObReferenceObjectByHandle, etc
ExNotifyCallback undocumented until 1996-2000;
declaration requires Windows 2000 and higher
ExPostSystemEvent discontinued in 5.0
ExRaiseAccessViolation undocumented until 1996-2000;
declaration requires Windows 2000 and higher
ExRaiseDatatypeMisalignment undocumented until 1996-2000;
declaration requires Windows 2000 and higher
ExRaiseException  
ExRegisterCallback undocumented until 1996-2000;
declaration requires Windows 2000 and higher
ExReinitializeResourceLite declaration requires Windows 2000 and higher
ExReleaseResourceLite undocumented until 1996-2000;
declaration requires Windows 2000 and higher
ExUnregisterCallback undocumented until 1996-2000;
declaration requires Windows 2000 and higher
FsRtlPostPagingFileStackOverflow undocumented until 2000 (IFS);
documentation since 2008-2009 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
HalDispatchTable (data)  
HalPrivateDispatchTable (data)  
InterlockedDecrement x86 only;
conditionally redefined by macro as compiler intrinsic _InterlockedDecrement or using InterlockedExchangeAdd macro;
supported for x64 by macro as compiler intrinsic _InterlockedDecrement
InterlockedExchange x86 only;
conditionally redefined by macro as compiler intrinsic _InterlockedExchange or by inline assembly language using xchg instruction;
supported for x64 by macro as compiler intrinsic _InterlockedExchange
InterlockedIncrement x86 only;
conditionally redefined by macro as compiler intrinsic _InterlockedIncrement or using InterlockedExchangeAdd macro;
supported for x64 by macro as compiler intrinsic _InterlockedIncrement
IoDriverObjectType (data)  
IoGetAttachedDevice undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
IoQueryFileInformation undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
IoQueryVolumeInformation undocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
IoRegisterFsRegistrationChange undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
IoUnregisterFsRegistrationChange undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
KeAddSystemServiceTable  
KeI386Call16BitFunction x86 only;
discontinued in 6.2
KeI386ReleaseGdtSelectors x86 only;
discontinued in 6.2
KeI386SetGdtSelector x86 only;
discontinued in 6.2
KeInsertHeadQueue undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
KeProfileInterruptWithSource  
KePulseEvent undocumented until 1996-2000;
declaration requires Windows 2000 and higher
KeServiceDescriptorTable (data) x86-only except in 5.2 from Windows Server 2003 SP1
KeSetDmaIoCoherency  
KeSetImportanceDpc undocumented until 1996-2000;
declaration requires Windows 2000 and higher
KeSetTargetProcessorDpc undocumented until 1996-2000;
not declared unless SINGLE_GROUP_LEGACY_API defined;
declaration requires Windows 2000 and higher
KeUserModeCallback  
LdrAccessResource  
LdrEnumResources  
LdrFindResource_U  
LpcRequestPort  
MmAdjustWorkingSetSize  
MmCreateSection  
MmLockPagableDataSection declaration requires Windows 2000 and higher
MmLockPagableSectionByHandle declaration requires Windows 2000 and higher
MmMapViewInSystemSpace undocumented until 2000-2002;
declaration requires Windows 2000 and higher
MmMapViewOfSection  
MmPageEntireDriver declaration requires Windows 2000 and higher
MmResetDriverPaging declaration requires Windows 2000 and higher
MmSectionObjectType (data)  
MmSecureVirtualMemory undocumented until 2000-2002;
declaration requires Windows 2000 and higher
MmSetAddressRangeModified undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
MmSetBankedSection  
MmUnmapViewInSystemSpace undocumented until 2000-2002;
declaration requires Windows 2000 and higher
MmUnmapViewOfSection  
MmUnsecureVirtualMemory undocumented until 2000-2002;
declaration requires Windows 2000 and higher
NtAllocateUuids  
NtBuildNumber  
PoQueryPowerSequence discontinued in 5.1
PoRegisterDeviceForIdleDetection not in 4.0;
undocumented until 2000-2002;
declaration requires Windows 2000 and higher
PoRequestPowerChange discontinued in 5.1
PsEstablishWin32Callouts  
PsLookupProcessByProcessId undocumented until 2000-2006 (IFS);
documentation requires Windows 2000 and higher
PsLookupThreadByThreadId undocumented until 2000-2006 (IFS);
documentation requires Windows 2000 and higher
PsReferenceImpersonationToken undocumented until 2000-2006 (IFS);
documentation until 2007 requires Windows XP and higher;
documentation since 2007 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
PsReferencePrimaryToken undocumented until 2000-2006 (IFS);
documentation until 2007 requires Windows XP and higher;
documentation since 2007 requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
PsSetProcessPriorityByClass  
RtlAddAce undocumented until 2000-2006 (IFS);
documentation requires Windows Server 2003 SP1, and higher;
declaration requires Windows 2000 and higher
RtlAllocateAndInitializeSid discontinued in 5.1;
uundocumented until 2000-2006 (IFS);
declaration requires Windows 2000 and higher
RtlAreAllAccessesGranted  
RtlCaptureStackBackTrace undocumented until 2008-2009;
documentation requires Windows XP and higher;
declaration requires Windows XP and higher
RtlCreateUnicodeString undocumented until 2000 (IFS);
documentation requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
RtlFindMessage  
RtlFormatCurrentUserKeyPath  
RtlImageNtHeader  
RtlInitializeSid undocumented until 2000 (IFS);
documentation requires Windows 2000 and higher;
declaration requires Windows 2000 and higher
RtlIntegerToChar  
RtlMultiByteToUnicodeN undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlSetSaclSecurityDescriptor  
RtlUnicodeStringToInteger declaration requires Windows 2000 and higher
RtlUnicodeToMultiByteSize undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
RtlZeroHeap  
SeCaptureSecurityDescriptor  
SeCloseObjectAuditAlarm  
SeCreateAccessState  
SeDeleteAccessState  
SePrivilegeCheck undocumented until 2000 (IFS);
declaration requires Windows 2000 and higher
SePrivilegeObjectAuditAlarm  
SeReleaseSecurityDescriptor  
ZwAlertThread  
ZwClearEvent  
ZwCreateTimer not in 4.0;
undocumented until 2005-2006;
declaration requires Windows 2000 and higher
ZwDuplicateToken undocumented until 2007;
documentation requires Windows 2000 and higher
ZwNotifyChangeKey undocumented until 2007;
documentation requires Windows XP and higher;
declaration requires Windows 2000 and higher
ZwOpenProcess undocumented until 2005-2006
ZwOpenThread  
ZwPulseEvent  
ZwQueryInformationProcess  
ZwQuerySecurityObject undocumented until 2000-2006 (IFS);
documentation requires Windows XP and higher;
declaration requires Windows 2000 and higher
ZwResetEvent  
ZwSetDefaultLocale  
ZwSetSystemInformation  
ZwSetTimer not in 4.0;
undocumented until 2005-2006;
declaration requires Windows 2000 and higher
ZwWaitForMultipleObjects