AvSetMmThreadCharacteristicsA function (avrt.h)

Associates the calling thread with the specified task.


AVRTAPI HANDLE AvSetMmThreadCharacteristicsA(
  [in]      LPCSTR  TaskName,
  [in, out] LPDWORD TaskIndex


[in] TaskName

The name of the task to be performed. This name must match the name of one of the subkeys of the following key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks.

[in, out] TaskIndex

The unique task identifier. The first time this function is called, this value must be 0 on input. The index value is returned on output and can be used as input in subsequent calls.

Return value

If the function succeeds, it returns a handle to the task.

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

The following are possible error codes.

Return code Description
Either TaskIndex is not 0 on the first call or is not recognized value (on subsequent calls).
The specified task does not match any of the tasks stored in the registry.
The caller does not have sufficient privilege.


When the task is completed, call the AvRevertMmThreadCharacteristics function.


The avrt.h header defines AvSetMmThreadCharacteristics as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.


Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header avrt.h
Library Avrt.lib
DLL Avrt.dll

See also

Multimedia Class Scheduler Service