CreateThreadpoolWork function (threadpoolapiset.h)

Creates a new work object.


PTP_WORK CreateThreadpoolWork(
  [in]                PTP_WORK_CALLBACK    pfnwk,
  [in, out, optional] PVOID                pv,
  [in, optional]      PTP_CALLBACK_ENVIRON pcbe


[in] pfnwk

The callback function. A worker thread calls this callback each time you call SubmitThreadpoolWork to post the work object. For details, see WorkCallback.

[in, out, optional] pv

Optional application-defined data to pass to the callback function.

[in, optional] pcbe

A pointer to a TP_CALLBACK_ENVIRON structure that defines the environment in which to execute the callback. Use the InitializeThreadpoolEnvironment function to initialize the structure before calling this function.

If this parameter is NULL, the callback executes in the default callback environment. For more information, see InitializeThreadpoolEnvironment.

Return value

If the function succeeds, it returns a pointer to a TP_WORK structure that defines the work object. Applications do not modify the members of this structure.

If the function fails, it returns NULL. To retrieve extended error information, call GetLastError.


To compile an application that uses this function, define _WIN32_WINNT as 0x0600 or higher.


For an example, see Using the Thread Pool Functions.


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)
Library Kernel32.lib
DLL Kernel32.dll

See also



Thread Pools