1// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4// 5// The avrt namespace encapsulates the details needed to support MMCSS. 6// 7// The Multimedia Class Scheduler service (MMCSS) enables multimedia 8// applications to ensure that their time-sensitive processing receives 9// prioritized access to CPU resources. This service enables multimedia 10// applications to utilize as much of the CPU as possible without denying 11// CPU resources to lower-priority applications. 12// MMCSS requires Windows Vista or higher and that the Avrt DLL is loaded. 13// 14// TODO(henrika): refactor and merge into existing thread implementation 15// for Windows to ensure that MMCSS can be enabled for all threads. 16// 17#ifndef MEDIA_AUDIO_WIN_AVRT_WRAPPER_WIN_H_ 18#define MEDIA_AUDIO_WIN_AVRT_WRAPPER_WIN_H_ 19 20#include <windows.h> 21#include <avrt.h> 22 23#include "base/basictypes.h" 24 25namespace avrt { 26 27// Loads the Avrt.dll which is available on Windows Vista and later. 28bool Initialize(); 29 30// Function wrappers for the underlying MMCSS functions. 31bool AvRevertMmThreadCharacteristics(HANDLE avrt_handle); 32HANDLE AvSetMmThreadCharacteristics(const wchar_t* task_name, 33 DWORD* task_index); 34bool AvSetMmThreadPriority(HANDLE avrt_handle, AVRT_PRIORITY priority); 35 36} // namespace avrt 37 38#endif // MEDIA_AUDIO_WIN_AVRT_WRAPPER_WIN_H_ 39 40