DisassociateCurrentThreadFromCallback function (threadpoolapiset.h)
Removes the association between the currently executing callback function and the object that initiated the callback. The current thread will no longer count as executing a callback on behalf of the object.
Syntax
void DisassociateCurrentThreadFromCallback(
[in, out] PTP_CALLBACK_INSTANCE pci
);
Parameters
[in, out] pci
A pointer to a TP_CALLBACK_INSTANCE structure that defines the callback instance. The pointer is passed to the callback function.
Return value
None
Remarks
If this is the last thread executing a callback on behalf of the object, any threads waiting for the object's callbacks to complete will be released.
The thread remains associated with the object's cleanup group until the thread returns to the thread pool. This lets DLL shutdown routines safely synchronize with outstanding callbacks and proceed with unloading the DLL's code when all callbacks have completed.
The callback-generating object remains valid for the duration of the callback. The callback object may be reused or released (although synchronization with cleanup group release is still required).
To compile an application that uses this function, define _WIN32_WINNT as 0x0600 or higher.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows Vista [desktop apps | UWP apps] |
Minimum supported server | Windows Server 2008 [desktop apps | UWP apps] |
Target Platform | Windows |
Header | threadpoolapiset.h (include Windows.h on Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Library | Kernel32.lib |
DLL | Kernel32.dll |
See also
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns