隨著Windows Vista和Windows 2008 Server的推出,一堆新的Windows API也隨之出現,為了方便查找,將新增的API列在這兒(應該不全,希望大家補充)。從新增的API功能來看,主要的亮點有以下幾個:
(1)對文件和注冊表操作的事務性支持,這是通過KTM(Kernel Transaction Manager)實現的;
(2)同步機制和原語的增強:讀寫鎖(SRW:Slim Reader/Writer (SRW) Locks)和條件變量(CV:Condition Variables);
(3)線程池的增強(Thread Pool);
(4)對NUMA(non-uniform memory Access:非一致性內存訪問)的支持;
(5)對應用程序重啟恢復的支持(ARR:Application Recovery and Restart);
以下就是我整理的新增API一覽表:
AcquireSRWLockExclusive
AcquireSRWLockShared
*AddClipboardFormatListener
AddMandatoryAce
AddSIDToBoundaryDescriptor
AllocateUserPhysicalPagesNuma
ApplicationRecoveryFinished
ApplicationRecoveryInProgress
CallbackMayRunLong
CancelIoEx
CancelSynchronousIo
CancelThreadpoolIo
ChangeWindowMessageFilter
ClosePrivateNamespace
CloseThreadpool
CloseThreadpoolCleanupGroup
CloseThreadpoolCleanupGroupMembers
CloseThreadpoolIo
CloseThreadpoolTimer
CloseThreadpoolWait
CloseThreadpoolWork
ControlServiceEx
CopyFileTransacted
CreateBoundaryDescriptor
CreateDesktopEx
CreateDirectoryTransacted
CreateEventEx
CreateFileMappingNuma
CreateFileTransacted
CreateHardLinkTransacted
CreateMutexEx
CreatePrivateNamespace
CreateSemaphoreEx
CreateSymbolicLink
CreateSymbolicLinkTransacted
CreateThreadpool
CreateThreadpoolCleanupGroup
CreateThreadpoolIo
CreateThreadpoolTimer
CreateThreadpoolWait
CreateThreadpoolWork
CreateWaitableTimerEx
DeleteBoundaryDescriptor
DeleteFileTransacted
DeleteProcThreadAttributeList
DisassociateCurrentThreadFromCallback
×EnumCalendarInfoExEx
×EnumDateFormatsExEx
×EnumDateFormatsProcExEx
EnumProcessModulesEx
EnumResourceLanguagesEx
EnumResourceNamesEx
EnumResourceTypesEx
×EnumSystemLocalesEx
×EnumTimeFormatsEx
×EnumTimeFormatsProcEx
FindFirstFileNameTransactedW
FindFirstFileNameW
FindFirstFileTransacted
FindNextFileNameW
FlushProcessWriteBuffers
FreeLibraryWhenCallbackReturns
GetApplicationRecoveryCallback
GetApplicationRestartSettings
×GetCalendarInfoEx
GetCompressedFileSizeTransacted
GetConsoleHistoryInfo
GetConsoleOriginalTitle
GetConsoleScreenBufferInfoEx
×GetCurrencyFormatEx
GetCurrentConsoleFontEx
×GetDateFormatEx
×GetDurationFormat
×GetDurationFormatEx
GetDynamicTimeZoneInformation
GetErrorMode
GetFileAttributesTransacted
GetFileBandwidthReservation
GetFileInformationByHandleEx
*GetFileVersionInfoEx
*GetFileVersionInfoSizeEx
GetFinalPathNameByHandle
GetFullPathNameTransacted
GetIconInfoEx
*GetLocaleInfoEx
GetLongPathNameTransacted
GetNamedPipeAttribute
GetNamedPipeClIEntComputerName
GetNamedPipeClIEntProcessId
GetNamedPipeClIEntSessionId
GetNamedPipeServerProcessId
GetNamedPipeServerSessionId
*GetNLSVersionEx
GetNumaProximityNode
*GetNumberFormatEx
GetPhysicalCursorPos
GetProductInfo
GetQueuedCompletionStatusEx
*GetStringScripts
*GetSystemDefaultLocaleName
GetTickCount64
GetTimeFormatEx
GetUpdatedClipboardFormats
*GetUserDefaultLocaleName
GetVolumeInformationByHandleW
*IdnToAscii
*IdnToNameprepUnicode
*IdnToUnicode
InitOnceBeginInitialize
InitOnceComplete
InitOnceExecuteOnce
InitOnceInitialize
InitializeConditionVariable
InitializeCriticalSectionEx
InitializeProcThreadAttributeList
InitializeSRWLock
InitiateShutdown
*IsNormalizedString
IsProcessDPIAware
IsThreadAFiber
IsThreadpoolTimerSet
*IsValidLocaleName
*LCIDToLocaleName
*LCMapStringEx
LeaveCriticalSectionWhenCallbackReturns
*LocaleNameToLCID
LogicalToPhysicalPoint
MapVIEwOfFileExNuma
MoveFileTransacted
*NormalizeString
NotifyServiceStatusChange
OpenFileById
OpenPrivateNamespace
PdhAddEnglishCounter
PdhCollectQueryDataWithTime
PdhValidatePathEx
PhysicalToLogicalPoint
QueryActCtxSettingsW
QueryFullProcessImageName
QueryIdleProcessorCycleTime
QueryProcessCycleTime
QuerySecurityAccessMask
QueryThreadCycleTime
RegCopyTree
RegCreateKeyTransacted
RegDeleteKeyTransacted
RegDeleteKeyValue
RegDeleteTree
RegDisablePredefinedCacheEx
RegisterApplicationRecoveryCallback
RegisterApplicationRestart
RegisterPowerSettingNotification
RegLoadAppKey
RegLoadMUIString
RegOpenKeyTransacted
RegSetKeyValue
ReleaseMutexWhenCallbackReturns
ReleaseSRWLockExclusive
ReleaseSRWLockShared
ReleaseSemaphoreWhenCallbackReturns
RemoveClipboardFormatListener
RemoveDirectoryTransacted
SetConsoleHistoryInfo
SetConsoleScreenBufferInfoEx
SetCurrentConsoleFontEx
SetDynamicTimeZoneInformation
SetEventWhenCallbackReturns
SetFileAttributesTransacted
SetFileBandwidthReservation
SetFileCompletionNotificationModes
SetFileInformationByHandle
SetFileIoOverlappedRange
SetPhysicalCursorPos
SetProcessDPIAware
SetSecurityAccessMask
SetThreadpoolThreadMaximum
SetThreadpoolThreadMinimum
SetThreadpoolTimer
SetThreadpoolWait
SHAddDefaultPropertIEsByExt
SHAssocEnumHandlers
SHBindToFolderIDListParent/> SHBindToFolderIDListParentEx
SHBindToObject
SHChangeNotifyRegisterThread
SHCreateAssociationRegistration
SHCreateDataObject
SHCreateDefaultContextMenu
SHCreateDefaultExtractIcon
SHCreateDefaultPropertIEsOp
SHCreateItemFromIDList
SHCreateItemFromParsingName
SHCreateItemFromRelativeName
SHCreateItemInKnownFolder
SHCreateItemWithParent
SHCreateShellItemArray
SHCreateShellItemArrayFromDataObject
SHCreateShellItemArrayFromIDLists
SHCreateShellItemArrayFromShellItem
SHEvaluateSystemCommandTemplate
SHGetControlPanelPath
SHGetDriveMedia
SHGetIDListFromObject
SHGetKnownFolderIDList
SHGetKnownFolderPath
SHGetLocalizedName
SHGetNameFromIDList
SHGetNameFromPropertyKey
SHGetPathFromIDListEx
SHGetPropertyStoreFromIDList
SHGetPropertyStoreFromParsingName
SHGetStockIconInfo
SHGetTemporaryPropertyForItem
SHLocalStrDup
SHOpenWithDialog
SHQueryUserNotificationState
SHRegGetBoolValueFromHKCUHKLM
SHRegGetValueFromHKCUHKLM
SHRemoveLocalizedName
SHSetDefaultPropertIEs
SHSetKnownFolderPath
SHSetTemporaryPropertyForItem
ShutdownBlockReasonCreate
ShutdownBlockReasonDestroy
ShutdownBlockReasonQuery
SleepConditionVariableCS
SleepConditionVariableSRW
StartThreadpoolIo
SubmitThreadpoolWork
TrySubmitThreadpoolCallback
UnregisterApplicationRecoveryCallback
UnregisterApplicationRestart
UnregisterPowerSettingNotification
UpdateProcThreadAttribute
UpdateLayeredWindowIndirect
VerifyScripts
VirtualAllocExNuma
WaitForThreadpoolIoCallbacks
WaitForThreadpoolTimerCallbacks
WaitForThreadpoolWaitCallbacks
WaitForThreadpoolWorkCallbacks
WakeAllConditionVariable
WakeConditionVariable
WindowFromPhysicalPoint
Wow64GetThreadContext
Wow64SetThreadContext
Wow64SuspendThread