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 winternl.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 ProcessEnvironmentBlock; |
317 CLIENT_ID<Traits> ClientId; | 318 CLIENT_ID<Traits> ClientId; |
319 // Not identical to Reserved2 in winternl's _TEB because we define ClientId. | |
Mark Mentovai
2015/10/01 20:28:05
Blank before this, and after RemainderOfReserved2.
scottmg
2015/10/01 21:01:07
Done.
| |
320 typename Traits::Pointer RemainderOfReserved2[397]; | |
321 BYTE Reserved3[1952]; | |
322 typename Traits::Pointer TlsSlots[64]; | |
323 BYTE Reserved4[8]; | |
324 typename Traits::Pointer Reserved5[26]; | |
325 typename Traits::Pointer ReservedForOle; | |
326 typename Traits::Pointer Reserved6[4]; | |
327 typename Traits::Pointer TlsExpansionSlots; | |
318 }; | 328 }; |
319 | 329 |
320 // See https://msdn.microsoft.com/en-us/library/gg750724.aspx. | 330 // See https://msdn.microsoft.com/en-us/library/gg750724.aspx. |
321 template <class Traits> | 331 template <class Traits> |
322 struct SYSTEM_THREAD_INFORMATION { | 332 struct SYSTEM_THREAD_INFORMATION { |
323 union { | 333 union { |
324 struct { | 334 struct { |
325 LARGE_INTEGER KernelTime; | 335 LARGE_INTEGER KernelTime; |
326 LARGE_INTEGER UserTime; | 336 LARGE_INTEGER UserTime; |
327 LARGE_INTEGER CreateTime; | 337 LARGE_INTEGER CreateTime; |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
443 using EXCEPTION_POINTERS64 = EXCEPTION_POINTERS<internal::Traits64>; | 453 using EXCEPTION_POINTERS64 = EXCEPTION_POINTERS<internal::Traits64>; |
444 | 454 |
445 #pragma pack(pop) | 455 #pragma pack(pop) |
446 | 456 |
447 //! \} | 457 //! \} |
448 | 458 |
449 } // namespace process_types | 459 } // namespace process_types |
450 } // namespace crashpad | 460 } // namespace crashpad |
451 | 461 |
452 #endif // CRASHPAD_UTIL_WIN_PROCESS_STRUCTS_H_ | 462 #endif // CRASHPAD_UTIL_WIN_PROCESS_STRUCTS_H_ |
OLD | NEW |