OLD | NEW |
---|---|
1 // Copyright 2015 The Crashpad Authors. All rights reserved. | 1 // Copyright 2015 The Crashpad Authors. All rights reserved. |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
302 }; | 302 }; |
303 | 303 |
304 // See https://msdn.microsoft.com/en-us/library/gg750647.aspx. | 304 // See https://msdn.microsoft.com/en-us/library/gg750647.aspx. |
305 template <class Traits> | 305 template <class Traits> |
306 struct CLIENT_ID { | 306 struct CLIENT_ID { |
307 typename Traits::Pointer UniqueProcess; | 307 typename Traits::Pointer UniqueProcess; |
308 typename Traits::Pointer UniqueThread; | 308 typename Traits::Pointer UniqueThread; |
309 }; | 309 }; |
310 | 310 |
311 // This is a partial definition of the TEB, as we do not currently use many | 311 // This is a partial definition of the TEB, as we do not currently use many |
312 // fields of it. See http://www.nirsoft.net/kernel_struct/vista/TEB.html. | 312 // fields of it. See http://www.nirsoft.net/kernel_struct/vista/TEB.html, and |
313 // the (arch-specific) definition of _TEB in winternal.h. | |
313 template <class Traits> | 314 template <class Traits> |
314 struct TEB { | 315 struct TEB { |
315 NT_TIB<Traits> NtTib; | 316 NT_TIB<Traits> NtTib; |
316 typename Traits::Pointer EnvironmentPointer; | 317 typename Traits::Pointer EnvironmentPointer; |
317 CLIENT_ID<Traits> ClientId; | 318 CLIENT_ID<Traits> ClientId; |
319 typename Traits::Pointer Reserved0[397]; | |
Mark Mentovai
2015/09/29 22:14:04
Can you name the reserved fields to match <wintern
scottmg
2015/09/30 18:54:11
Done.
| |
320 BYTE Reserved1[1952]; | |
321 typename Traits::Pointer TlsSlots[64]; | |
322 BYTE Reserved2[8]; | |
323 typename Traits::Pointer Reserved3[32]; | |
Mark Mentovai
2015/09/29 22:14:04
No reason you can’t have this be Reserved5/ForOle/
scottmg
2015/09/30 18:54:11
Done.
| |
318 }; | 324 }; |
319 | 325 |
320 // See https://msdn.microsoft.com/en-us/library/gg750724.aspx. | 326 // See https://msdn.microsoft.com/en-us/library/gg750724.aspx. |
321 template <class Traits> | 327 template <class Traits> |
322 struct SYSTEM_THREAD_INFORMATION { | 328 struct SYSTEM_THREAD_INFORMATION { |
323 union { | 329 union { |
324 struct { | 330 struct { |
325 LARGE_INTEGER KernelTime; | 331 LARGE_INTEGER KernelTime; |
326 LARGE_INTEGER UserTime; | 332 LARGE_INTEGER UserTime; |
327 LARGE_INTEGER CreateTime; | 333 LARGE_INTEGER CreateTime; |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
443 using EXCEPTION_POINTERS64 = EXCEPTION_POINTERS<internal::Traits64>; | 449 using EXCEPTION_POINTERS64 = EXCEPTION_POINTERS<internal::Traits64>; |
444 | 450 |
445 #pragma pack(pop) | 451 #pragma pack(pop) |
446 | 452 |
447 //! \} | 453 //! \} |
448 | 454 |
449 } // namespace process_types | 455 } // namespace process_types |
450 } // namespace crashpad | 456 } // namespace crashpad |
451 | 457 |
452 #endif // CRASHPAD_UTIL_WIN_PROCESS_STRUCTS_H_ | 458 #endif // CRASHPAD_UTIL_WIN_PROCESS_STRUCTS_H_ |
OLD | NEW |