Chromium Code Reviews| 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 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 276 typename Traits::UnsignedIntegral MinimumStackCommit; | 276 typename Traits::UnsignedIntegral MinimumStackCommit; |
| 277 typename Traits::Pointer FlsCallback; | 277 typename Traits::Pointer FlsCallback; |
| 278 LIST_ENTRY<Traits> FlsListHead; | 278 LIST_ENTRY<Traits> FlsListHead; |
| 279 typename Traits::Pointer FlsBitmap; | 279 typename Traits::Pointer FlsBitmap; |
| 280 DWORD FlsBitmapBits[4]; | 280 DWORD FlsBitmapBits[4]; |
| 281 DWORD FlsHighIndex; | 281 DWORD FlsHighIndex; |
| 282 }; | 282 }; |
| 283 | 283 |
| 284 template <class Traits> | 284 template <class Traits> |
| 285 struct NT_TIB { | 285 struct NT_TIB { |
| 286 typename Traits::Pointer ExceptionList; | 286 union { |
| 287 typename Traits::Pointer ExceptionList; | |
| 288 // See https://msdn.microsoft.com/en-us/library/dn424783.aspx. | |
|
Mark Mentovai
2015/09/18 15:44:07
But the rest of NT_TIB isn’t right for WoW64 eithe
scottmg
2015/09/18 19:45:26
I'm not sure if it is. I think it probably has the
Mark Mentovai
2015/09/18 22:10:50
scottmg wrote:
| |
| 289 typename Traits::Pointer Wow64Teb; | |
| 290 }; | |
| 287 typename Traits::Pointer StackBase; | 291 typename Traits::Pointer StackBase; |
| 288 typename Traits::Pointer StackLimit; | 292 typename Traits::Pointer StackLimit; |
| 289 typename Traits::Pointer SubSystemTib; | 293 typename Traits::Pointer SubSystemTib; |
| 290 union { | 294 union { |
| 291 typename Traits::Pointer FiberData; | 295 typename Traits::Pointer FiberData; |
| 292 BYTE Version[4]; | 296 BYTE Version[4]; |
| 293 }; | 297 }; |
| 294 typename Traits::Pointer ArbitraryUserPointer; | 298 typename Traits::Pointer ArbitraryUserPointer; |
| 295 typename Traits::Pointer Self; | 299 typename Traits::Pointer Self; |
| 296 }; | 300 }; |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 410 LARGE_INTEGER alignment_for_x86[6]; | 414 LARGE_INTEGER alignment_for_x86[6]; |
| 411 }; | 415 }; |
| 412 IO_COUNTERS IoCounters; | 416 IO_COUNTERS IoCounters; |
| 413 SYSTEM_THREAD_INFORMATION<Traits> Threads[1]; | 417 SYSTEM_THREAD_INFORMATION<Traits> Threads[1]; |
| 414 }; | 418 }; |
| 415 | 419 |
| 416 // http://undocumented.ntinternals.net/source/usermode/structures/thread_basic_i nformation.html | 420 // http://undocumented.ntinternals.net/source/usermode/structures/thread_basic_i nformation.html |
| 417 template <class Traits> | 421 template <class Traits> |
| 418 struct THREAD_BASIC_INFORMATION { | 422 struct THREAD_BASIC_INFORMATION { |
| 419 union { | 423 union { |
| 420 NTSTATUS ExitStatus; | 424 LONG ExitStatus; |
| 421 typename Traits::Pad padding_for_x64_0; | 425 typename Traits::Pad padding_for_x64_0; |
| 422 }; | 426 }; |
| 423 typename Traits::Pointer TebBaseAddress; | 427 typename Traits::Pointer TebBaseAddress; |
| 424 CLIENT_ID<Traits> ClientId; | 428 CLIENT_ID<Traits> ClientId; |
| 425 typename Traits::Pointer AffinityMask; | 429 typename Traits::Pointer AffinityMask; |
| 426 ULONG Priority; | 430 ULONG Priority; |
| 427 LONG BasePriority; | 431 LONG BasePriority; |
| 428 }; | 432 }; |
| 429 | 433 |
| 434 template <class Traits> | |
| 435 struct EXCEPTION_POINTERS { | |
| 436 typename Traits::Pointer ExceptionRecord; | |
| 437 typename Traits::Pointer ContextRecord; | |
| 438 }; | |
| 439 | |
| 430 #pragma pack(pop) | 440 #pragma pack(pop) |
| 431 | 441 |
| 432 //! \} | 442 //! \} |
| 433 | 443 |
| 434 } // namespace process_types | 444 } // namespace process_types |
| 435 } // namespace crashpad | 445 } // namespace crashpad |
| 436 | 446 |
| 437 #endif // CRASHPAD_UTIL_WIN_PROCESS_STRUCTS_H_ | 447 #endif // CRASHPAD_UTIL_WIN_PROCESS_STRUCTS_H_ |
| OLD | NEW |