Geoff Chappell, Software Analyst
API-MS-Win-Core-ThreadPool-L1-1-0
All functions in the API-MS-Win-Core-ThreadPool-L1-1-0 set are exports from KERNEL32:
- CallbackMayRunLong
- CancelThreadpoolIo
- ChangeTimerQueueTimer
- CloseThreadpool
- CloseThreadpoolCleanupGroup
- CloseThreadpoolCleanupGroupMembers
- CloseThreadpoolIo
- CloseThreadpoolTimer
- CloseThreadpoolWait
- CloseThreadpoolWork
- CreateThreadpool
- CreateThreadpoolCleanupGroup
- CreateThreadpoolIo
- CreateThreadpoolTimer
- CreateThreadpoolWait
- CreateThreadpoolWork
- CreateTimerQueue
- CreateTimerQueueTimer
- DeleteTimerQueueEx
- DeleteTimerQueueTimer
- DisassociateCurrentThreadFromCallback
- FreeLibraryWhenCallbackReturns
- IsThreadpoolTimerSet
- LeaveCriticalSectionWhenCallbackReturns
- QueryThreadpoolStackInformation
- RegisterWaitForSingleObjectEx
- ReleaseMutexWhenCallbackReturns
- ReleaseSemaphoreWhenCallbackReturns
- SetEventWhenCallbackReturns
- SetThreadpoolStackInformation
- SetThreadpoolThreadMaximum
- SetThreadpoolThreadMinimum
- SetThreadpoolTimer
- SetThreadpoolWait
- StartThreadpoolIo
- SubmitThreadpoolWork
- TrySubmitThreadpoolCallback
- UnregisterWaitEx
- WaitForThreadpoolIoCallbacks
- WaitForThreadpoolTimerCallbacks
- WaitForThreadpoolWaitCallbacks
- WaitForThreadpoolWorkCallbacks
For the following functions, the implementations in KERNEL32 version 6.1 and
higher are just stubs which transfer the handling to wherever the schema redirects
the API Set:
- ChangeTimerQueueTimer
- CreateTimerQueue
- CreateTimerQueueTimer
- DeleteTimerQueueEx
- DeleteTimerQueueTimer
- UnregisterWaitEx
For all others, notably including all whose names contain Threadpool, KERNEL32
either forwards to a corresponding NTDLL function or has a more or less substantial
implementation whose essence is to call a corresponding NTDLL function.
New Locations
For each function that KERNEL32 version 6.1 transfers to the API Set, a non-trivial
implementation is exported from KERNELBASE version 6.1 and higher.
The other functions are also exported from KERNELBASE version 6.1 and higher,
but by reproducing the KERNEL32 handling in terms of NTDLL functions.
Schema Redirection
The Windows 7 schema redirects this API Set to KERNELBASE. Thus:
- high-level executables, which do not use the API Set, continue to import these
functions from KERNEL32;
- low-level executables have their imports from the API Set redirected to KERNELBASE;
- as a particular case of the preceding, the stub implementations in KERNEL32
import from underlying implementations in KERNELBASE.