MINIDUMP_CALLBACK_TYPE 枚举 (minidumpapiset.h)

标识 MiniDumpCallback 函数返回的信息的类型。 并非所有内存故障都会导致回调;例如,如果故障在堆栈内,则故障被视为不可恢复,最小转储将失败。

语法

typedef enum _MINIDUMP_CALLBACK_TYPE {
  ModuleCallback,
  ThreadCallback,
  ThreadExCallback,
  IncludeThreadCallback,
  IncludeModuleCallback,
  MemoryCallback,
  CancelCallback,
  WriteKernelMinidumpCallback,
  KernelMinidumpStatusCallback,
  RemoveMemoryCallback,
  IncludeVmRegionCallback,
  IoStartCallback,
  IoWriteAllCallback,
  IoFinishCallback,
  ReadMemoryFailureCallback,
  SecondaryFlagsCallback,
  IsProcessSnapshotCallback,
  VmStartCallback,
  VmQueryCallback,
  VmPreReadCallback,
  VmPostReadCallback
} MINIDUMP_CALLBACK_TYPE;

常量

 
ModuleCallback
回调函数返回模块信息。
ThreadCallback
回调函数返回线程信息。
ThreadExCallback
回调函数返回扩展线程信息。
IncludeThreadCallback
回调函数指示要包含的线程。 它被称为小型转储库
枚举进程中的线程,而不是在收集的信息之后,就像它一样
ThreadCallbackThreadExCallback。 它被调用
每个线程。 如果回调函数返回 FALSE,则排除当前线程。
这允许调用方获取进程中线程子集的信息,而无需挂起
不感兴趣的线程。 或者,可以修改 ThreadWriteFlags
MINIDUMP_CALLBACK_OUTPUT的成员
结构并返回 TRUE ,以避免收集不必要的信息
运行。
IncludeModuleCallback
回调函数指示要包含的模块。 回调函数作为
小型转储库枚举进程中的模块,而不是在收集信息后,因为它
使用 ModuleCallback。 为每个模块调用它。 如果回调函数
返回 FALSE,排除当前模块。 或者,你可以修改
的 ModuleWriteFlags 成员
MINIDUMP_CALLBACK_OUTPUT 结构和
返回 TRUE 以避免为模块收集不必要的信息。
MemoryCallback
回调函数返回要包含在转储中的内存区域。 仅调用回调
对于不使用 MiniDumpWithFullMemory 标志生成的转储。 如果回调函数返回
FALSE 或大小为 0 的区域,将不会再次调用回调。


DbgHelp 6.1 及更早版本: 不支持此值。
CancelCallback
回调函数返回取消信息。


DbgHelp 6.1 及更早版本: 不支持此值。
WriteKernelMinidumpCallback
用户模式小型转储已成功完成。 若要启动内核模式小型转储,则回调
应返回 TRUE 并设置 的 Handle 成员
MINIDUMP_CALLBACK_OUTPUT 结构。


DbgHelp 6.1 及更早版本: 不支持此值。
KernelMinidumpStatusCallback
回调函数返回内核小型转储的状态信息。


DbgHelp 6.1 及更早版本: 不支持此值。
RemoveMemoryCallback
回调函数返回要从转储中排除的内存区域。 仅调用回调
对于不使用 MiniDumpWithFullMemory 标志生成的转储。 如果回调
函数返回 FALSE 或大小为 0 的区域,将不会再次调用回调。


DbgHelp 6.3 及更早版本: 不支持此值。
IncludeVmRegionCallback
回调函数返回有关虚拟内存区域的信息。 它为每个调用两次
全内存写入过程中的区域。 的 VmRegion 成员
MINIDUMP_CALLBACK_OUTPUT 结构
包含当前内存区域。 可以修改区域的基址和大小,只要是新的
区域仍然是原始区域的子集;将忽略对其他成员所做的更改。 如果回调返回
TRUE 并设置 的 Continue 成员
MINIDUMP_CALLBACK_OUTPUT
如果为 TRUE,小型转储库将使用 指定的区域
VmRegion 作为要写入的区域。 如果回调返回
FALSE 或如果 ContinueFALSE
不会为其他内存区域调用回调。


DbgHelp 6.4 及更早版本: 不支持此值。
IoStartCallback
回调函数指示调用方将提供备用 I/O 例程。 如果回调
返回 TRUE ,并将 Status 成员设置为
MINIDUMP_CALLBACK_OUTPUT
S_FALSE,小型转储库将通过回调发送所有 I/O。 调用方将
接收每个数据片段的 IoWriteAllCallback 回调。


DbgHelp 6.4 及更早版本: 不支持此值。
IoWriteAllCallback
回调必须写入所有请求的字节或失败。 的 Io 成员
MINIDUMP_CALLBACK_INPUT 结构包含
请求。 如果写入操作失败,回调应返回 FALSE。 如果你的设备不支持
写入操作成功,回调应返回 TRUE 并设置
的状态 成员
MINIDUMP_CALLBACK_OUTPUT
S_OK。 调用方将收到 IoFinishCallback 回调
I/O 完成时。


DbgHelp 6.4 及更早版本: 不支持此值。
IoFinishCallback
回调返回 I/O 完成信息。 如果回调返回 FALSE
不设置 的 Status 成员
MINIDUMP_CALLBACK_OUTPUT
S_OK,小型转储库假定小型转储写入操作失败。


DbgHelp 6.4 及更早版本: 不支持此值。
ReadMemoryFailureCallback
读取内存失败。 如果回调返回 TRUE 并设置
的 Status 成员
MINIDUMP_CALLBACK_OUTPUT
S_OK,将忽略内存故障,并从小型转储中省略该块。 否则,则为
失败会导致无法写入到小型转储。


DbgHelp 6.4 及更早版本: 不支持此值。
SecondaryFlagsCallback
回调返回辅助信息。


DbgHelp 6.5 及更早版本: 不支持此值。
IsProcessSnapshotCallback
回调函数指示目标是进程还是快照。

DbgHelp 6.2 及更早版本: 不支持此值。
VmStartCallback
回调函数指示被调用方是否支持和接受虚拟内存回调,例如 VmQueryCallbackVmPreReadCallbackVmPostReadCallback

返回值S_FALSE表示支持虚拟内存回调。 值S_OK表示不支持虚拟内存回调。

DbgHelp 6.2 及更早版本: 不支持此值。
VmQueryCallback
为快照目标调用回调函数,以从目标收集虚拟地址内存信息。
仅当 VmStartCallback 返回值S_FALSE时,才会调用回调。


DbgHelp 6.2 及更早版本: 不支持此值。
VmPreReadCallback
为每个 ReadVirtual 操作发送回调函数。 这些读取不限于添加到转储的内存块。 引擎还访问进程环境块 (PEB) 、线程环境块 (TEB) 、加载程序数据、卸载的模块跟踪和其他块。 即使这些块最终未出现在转储中,它们也会从目标中读取,并且会为每个块启动虚拟内存回调。 仅当 VmStartCallback 返回S_FALSE时,才会调用回调。

DbgHelp 6.2 及更早版本: 不支持此值。
VmPostReadCallback
回调函数允许被调用方使用来自其他源(如缓存)的数据更改缓冲区内容,或执行模糊处理。 此时的缓冲区由 VmPreReadCallbackReadProcessMemory 完全或部分填充。 仅当 VmStartCallback 返回S_FALSE时,才会调用回调。

DbgHelp 6.2 及更早版本: 不支持此值。

要求

要求
Header minidumpapiset.h (包括 DbgHelp.h)
可再发行组件 DbgHelp.dll 5.1 或更高版本

另请参阅

MINIDUMP_CALLBACK_INPUT

MiniDumpCallback