Index: util/win/process_structs.h |
diff --git a/util/win/process_structs.h b/util/win/process_structs.h |
index 79f6515259c4bb13c29564749bd329e2f3bfcf6e..9c3be1811023de43ba387454e701267a3f5c86a2 100644 |
--- a/util/win/process_structs.h |
+++ b/util/win/process_structs.h |
@@ -309,12 +309,24 @@ struct CLIENT_ID { |
}; |
// This is a partial definition of the TEB, as we do not currently use many |
-// fields of it. See http://www.nirsoft.net/kernel_struct/vista/TEB.html. |
+// fields of it. See http://www.nirsoft.net/kernel_struct/vista/TEB.html, and |
+// the (arch-specific) definition of _TEB in winternl.h. |
template <class Traits> |
struct TEB { |
NT_TIB<Traits> NtTib; |
- typename Traits::Pointer EnvironmentPointer; |
+ typename Traits::Pointer ProcessEnvironmentBlock; |
CLIENT_ID<Traits> ClientId; |
+ |
+ // Not identical to Reserved2 in winternl's _TEB because we define ClientId. |
+ typename Traits::Pointer RemainderOfReserved2[397]; |
+ |
+ BYTE Reserved3[1952]; |
+ typename Traits::Pointer TlsSlots[64]; |
+ BYTE Reserved4[8]; |
+ typename Traits::Pointer Reserved5[26]; |
+ typename Traits::Pointer ReservedForOle; |
+ typename Traits::Pointer Reserved6[4]; |
+ typename Traits::Pointer TlsExpansionSlots; |
}; |
// See https://msdn.microsoft.com/en-us/library/gg750724.aspx. |