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 #ifndef CONTENT_COMMON_HANDLE_ENUMERATOR_WIN_H_ 6 #define CONTENT_COMMON_HANDLE_ENUMERATOR_WIN_H_ 7 8 #include "base/memory/ref_counted.h" 9 #include "base/process/process.h" 10 #include "base/strings/string16.h" 11 12 namespace content { 13 14 enum HandleType { 15 ProcessHandle, 16 ThreadHandle, 17 FileHandle, 18 DirectoryHandle, 19 KeyHandle, 20 WindowStationHandle, 21 DesktopHandle, 22 ServiceHandle, 23 EventHandle, 24 MutexHandle, 25 SemaphoreHandle, 26 TimerHandle, 27 NamedPipeHandle, 28 JobHandle, 29 FileMapHandle, 30 AlpcPortHandle, 31 OtherHandle 32 }; 33 34 static HandleType StringToHandleType(const string16& type); 35 36 static string16 GetAccessString(HandleType handle_type, ACCESS_MASK access); 37 38 class HandleEnumerator : public base::RefCountedThreadSafe<HandleEnumerator> { 39 public: 40 explicit HandleEnumerator(bool all_handles): 41 all_handles_(all_handles) { } 42 43 void EnumerateHandles(); 44 45 private: 46 bool all_handles_; 47 48 DISALLOW_COPY_AND_ASSIGN(HandleEnumerator); 49 }; 50 51 } // namespace content 52 53 #endif // CONTENT_COMMON_HANDLE_ENUMERATOR_WIN_H_ 54 55