CRASH.H
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:
Windows编程
开发平台:
Visual C++
- /*++
- Copyright (c) 1993-1997 Microsoft Corporation
- Module Name:
- crash.h
- Abstract:
- This module implements support for handling crash dump files.
- *** Use this file when linking againts crashxxx.lib
- Revision History:
- --*/
- #ifndef _CRASHLIB_
- #define _CRASHLIB_
- #ifdef __cplusplus
- #pragma warning(disable:4200)
- extern "C" {
- #endif
- typedef struct _USERMODE_CRASHDUMP_HEADER {
- DWORD Signature;
- DWORD ValidDump;
- DWORD MajorVersion;
- DWORD MinorVersion;
- DWORD MachineImageType;
- DWORD ThreadCount;
- DWORD ModuleCount;
- DWORD MemoryRegionCount;
- DWORD ThreadOffset;
- DWORD ModuleOffset;
- DWORD DataOffset;
- DWORD MemoryRegionOffset;
- DWORD DebugEventOffset;
- DWORD ThreadStateOffset;
- DWORD Spare0;
- DWORD Spare1;
- } USERMODE_CRASHDUMP_HEADER, *PUSERMODE_CRASHDUMP_HEADER;
- typedef struct _CRASH_MODULE {
- DWORD BaseOfImage;
- DWORD SizeOfImage;
- DWORD ImageNameLength;
- CHAR ImageName[0];
- } CRASH_MODULE, *PCRASH_MODULE;
- typedef struct _CRASH_THREAD {
- DWORD ThreadId;
- DWORD SuspendCount;
- DWORD PriorityClass;
- DWORD Priority;
- DWORD Teb;
- DWORD Spare0;
- DWORD Spare1;
- DWORD Spare2;
- DWORD Spare3;
- DWORD Spare4;
- DWORD Spare5;
- DWORD Spare6;
- } CRASH_THREAD, *PCRASH_THREAD;
- //
- // usermode crash dump data types
- //
- #define DMP_EXCEPTION 1 // obsolete
- #define DMP_MEMORY_BASIC_INFORMATION 2
- #define DMP_THREAD_CONTEXT 3
- #define DMP_MODULE 4
- #define DMP_MEMORY_DATA 5
- #define DMP_DEBUG_EVENT 6
- #define DMP_THREAD_STATE 7
- //
- // usermode crashdump callback function
- //
- typedef BOOL (*PDMP_CREATE_DUMP_CALLBACK)(
- DWORD DataType,
- PVOID* DumpData,
- LPDWORD DumpDataLength,
- PVOID UserData
- );
- BOOL
- DmpCreateUserDump(
- IN LPSTR CrashDumpName,
- IN PDMP_CREATE_DUMP_CALLBACK DmpCallback,
- IN PVOID lpv
- );
- BOOL
- DmpInitialize (
- IN LPSTR FileName,
- OUT PCONTEXT *Context,
- OUT PEXCEPTION_RECORD *Exception,
- OUT PVOID *DmpHeader
- );
- VOID
- DmpUnInitialize (
- VOID
- );
- DWORD
- DmpReadMemory (
- IN PVOID BaseAddress,
- IN PVOID Buffer,
- IN ULONG Size
- );
- DWORD
- DmpWriteMemory (
- IN PVOID BaseAddress,
- IN PVOID Buffer,
- IN ULONG Size
- );
- PVOID
- VaToLocation (
- IN PVOID VirtualAddress
- );
- PVOID
- PhysicalToLocation (
- IN PVOID PhysicalAddress
- );
- PVOID
- PageToLocation (
- IN ULONG Page
- );
- ULONG
- GetPhysicalPage (
- IN PVOID PhysicalAddress
- );
- BOOL
- MapDumpFile(
- IN LPSTR FileName
- );
- ULONG
- PteToPfn (
- IN ULONG Pte
- );
- ULONG
- GetPhysicalPage (
- IN PVOID PhysicalAddress
- );
- DWORD
- DmpReadPhysicalMemory (
- IN PVOID BaseAddress,
- IN PVOID Buffer,
- IN ULONG Size
- );
- DWORD
- DmpWritePhysicalMemory (
- IN PVOID BaseAddress,
- IN PVOID Buffer,
- IN ULONG Size
- );
- BOOL
- DmpReadControlSpace(
- IN USHORT Processor,
- IN PVOID TargetBaseAddress,
- OUT PVOID UserInterfaceBuffer,
- OUT ULONG TransferCount,
- OUT PULONG ActualBytesRead
- );
- BOOL
- DmpGetContext(
- IN ULONG Processor,
- OUT PVOID Context
- );
- INT
- DmpGetCurrentProcessor(
- VOID
- );
- BOOL
- DmpGetThread(
- IN ULONG Processor,
- OUT PCRASH_THREAD Thread
- );
- #ifdef __cplusplus
- }
- #pragma warning(default:4200)
- #endif
- #endif