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 |