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 base::string16& type); 35 36 static base::string16 GetAccessString(HandleType handle_type, 37 ACCESS_MASK access); 38 39 class HandleEnumerator : public base::RefCountedThreadSafe<HandleEnumerator> { 40 public: HandleEnumerator(bool all_handles)41 explicit HandleEnumerator(bool all_handles): 42 all_handles_(all_handles) { } 43 44 void EnumerateHandles(); 45 46 private: 47 bool all_handles_; 48 49 DISALLOW_COPY_AND_ASSIGN(HandleEnumerator); 50 }; 51 52 } // namespace content 53 54 #endif // CONTENT_COMMON_HANDLE_ENUMERATOR_WIN_H_ 55 56