XAsyncBegin, and give it a provider callback
to handle the different state changes. Recall that the async
block contains the task queue to use and an optional implementation of a
completion callback. The callback must then handle the five different
cases for the async task’s runtime as shown in the following table.
Set up custom provider
Write a custom async provider with XAsyncBegin and a provider callback that handles the Begin, Cleanup, GetResult, DoWork, and Cancel cases of a task.
This topic provides an example of how to set up a custom async provider. When writing a custom async provider, async methods are started by a
call to XAsyncBegin. This function has a callback
parameter that implements, for example, the handling of state changes, enqueueing
callbacks, and triggering completion.
There’s a lot to unpack here, but the basic idea is straightforward:
call
Last modified on October 26, 2026
