DisassociateCurrentThreadFromCallback

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(
         PTP_CALLBACK_INSTANCE pci
)  

Parameters

pci
Type: PTP_CALLBACK_INSTANCE 

[in, out] A TP_CALLBACK_INSTANCE structure that defines the callback instance. The structure 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).

Requirements

Header: Declared in threadpoolapiset.h.

Library: Use kernelx.lib.