IDebugEventCallbacks::CreateProcess 方法 (dbgeng.h)

当目标中发生创建进程调试事件时,引擎将调用 CreateProcess 回调方法。

语法

HRESULT CreateProcess(
  [in]           ULONG64 ImageFileHandle,
  [in]           ULONG64 Handle,
  [in]           ULONG64 BaseOffset,
  [in]           ULONG   ModuleSize,
  [in, optional] PCSTR   ModuleName,
  [in, optional] PCSTR   ImageName,
  [in]           ULONG   CheckSum,
  [in]           ULONG   TimeDateStamp,
  [in]           ULONG64 InitialThreadHandle,
  [in]           ULONG64 ThreadDataOffset,
  [in]           ULONG64 StartOffset
);

参数

[in] ImageFileHandle

指定进程的映像文件的句柄。 如果此信息不可用,ImageFileHandleNULL

[in] Handle

指定进程的句柄。 此参数对应于CREATE_PROCESS_DEBUG_INFO结构中的 hProcess 字段。 如果此信息不可用,ImageFileHandleNULL

[in] BaseOffset

指定目标内存地址空间中进程的可执行映像的基址。 如果此信息不可用,BaseOffsetNULL

[in] ModuleSize

指定进程的可执行映像大小(以字节为单位)。 如果此信息不可用,ModuleSize 将为零。

[in, optional] ModuleName

指定调试器引擎使用的简化模块名称。 在大多数情况下,这与不包括扩展名的图像文件名匹配。 如果此信息不可用,ModuleNameNULL

[in, optional] ImageName

指定进程的可执行映像文件名,其中包括路径。 如果此信息不可用,ImageNameNULL

[in] CheckSum

指定进程的可执行映像的校验和。 如果此信息不可用,CheckSum 将为零。

[in] TimeDateStamp

指定进程的可执行映像文件的日期和时间戳。 如果此信息不可用,TimeDateStamp 将为零。

[in] InitialThreadHandle

指定进程的初始线程的句柄。 此参数对应于CREATE_PROCESS_DEBUG_INFO结构中的 hThread 字段。 如果此信息不可用,InitialThreadHandleNULL

[in] ThreadDataOffset

指定作系统为此线程维护的数据块。 块中的实际数据特定于作系统。 如果此信息不可用,ThreadDataOffsetNULL

[in] StartOffset

指定进程虚拟地址空间中线程的起始地址。 如果此信息不可用,StartOffsetNULL

返回值

此方法返回一个 DEBUG_STATUS_XXX 值,该值指示引擎处理此事件后目标的执行应如何继续。 有关引擎如何处理此值的详细信息,请参阅 监视事件

言论

只有在 IDebugEventCallbacks::GetInterestMask返回的掩码中设置了DEBUG_EVENT_CREATE_PROCESS标志时,引擎才会调用此方法。

有关处理事件的详细信息,请参阅 监视事件。 有关线程的信息,请参阅 线程和进程

要求

要求 价值
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h)