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