Index: snapshot/win/process_reader_win.cc |
diff --git a/snapshot/win/process_reader_win.cc b/snapshot/win/process_reader_win.cc |
index 09e04594fa3d06588d1980766cb1ed154437b812..67e59e0101a2d4ecfc694e067bfd95a1511dea6c 100644 |
--- a/snapshot/win/process_reader_win.cc |
+++ b/snapshot/win/process_reader_win.cc |
@@ -18,6 +18,7 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/numerics/safe_conversions.h" |
+#include "util/win/nt_internals.h" |
#include "util/win/process_structs.h" |
#include "util/win/scoped_handle.h" |
#include "util/win/time.h" |
@@ -26,49 +27,6 @@ namespace crashpad { |
namespace { |
-NTSTATUS NtQuerySystemInformation( |
- SYSTEM_INFORMATION_CLASS system_information_class, |
- PVOID system_information, |
- ULONG system_information_length, |
- PULONG return_length) { |
- static decltype(::NtQuerySystemInformation)* nt_query_system_information = |
- reinterpret_cast<decltype(::NtQuerySystemInformation)*>(GetProcAddress( |
- LoadLibrary(L"ntdll.dll"), "NtQuerySystemInformation")); |
- DCHECK(nt_query_system_information); |
- return nt_query_system_information(system_information_class, |
- system_information, |
- system_information_length, |
- return_length); |
-} |
- |
-// The 4th argument is CLIENT_ID*, but as we can't typedef that, we simply cast |
-// to void* here. |
-typedef NTSTATUS(WINAPI* NtOpenThreadFunction)( |
- PHANDLE ThreadHandle, |
- ACCESS_MASK DesiredAccess, |
- POBJECT_ATTRIBUTES ObjectAttributes, |
- const void* ClientId); |
- |
-template <class Traits> |
-NTSTATUS NtOpenThread(PHANDLE thread_handle, |
- ACCESS_MASK desired_access, |
- POBJECT_ATTRIBUTES object_attributes, |
- const process_types::CLIENT_ID<Traits>* client_id) { |
- static NtOpenThreadFunction nt_open_thread = |
- reinterpret_cast<NtOpenThreadFunction>( |
- GetProcAddress(LoadLibrary(L"ntdll.dll"), "NtOpenThread")); |
- DCHECK(nt_open_thread); |
- return nt_open_thread(thread_handle, |
- desired_access, |
- object_attributes, |
- static_cast<const void*>(client_id)); |
-} |
- |
-// Copied from ntstatus.h because um/winnt.h conflicts with general inclusion of |
-// ntstatus.h. |
-#define STATUS_BUFFER_TOO_SMALL ((NTSTATUS)0xC0000023L) |
-#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L) |
- |
// Gets a pointer to the process information structure after a given one, or |
// null when iteration is complete, assuming they've been retrieved in a block |
// via NtQuerySystemInformation(). |