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 12namespace content { 13 14enum 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 34static HandleType StringToHandleType(const base::string16& type); 35 36static base::string16 GetAccessString(HandleType handle_type, 37 ACCESS_MASK access); 38 39class HandleEnumerator : public base::RefCountedThreadSafe<HandleEnumerator> { 40 public: 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