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 25 namespace avrt { 26 27 // Loads the Avrt.dll which is available on Windows Vista and later. 28 bool Initialize(); 29 30 // Function wrappers for the underlying MMCSS functions. 31 bool AvRevertMmThreadCharacteristics(HANDLE avrt_handle); 32 HANDLE AvSetMmThreadCharacteristics(const wchar_t* task_name, 33 DWORD* task_index); 34 bool AvSetMmThreadPriority(HANDLE avrt_handle, AVRT_PRIORITY priority); 35 36 } // namespace avrt 37 38 #endif // MEDIA_AUDIO_WIN_AVRT_WRAPPER_WIN_H_ 39 40