Winapi 任务管理器使用什么API转储进程

Winapi 任务管理器使用什么API转储进程,winapi,dump,taskmanager,Winapi,Dump,Taskmanager,谁能告诉我windows内置任务管理器使用什么API来转储我选择的进程 如果我是对的,那不是迷你垃圾桶。如果不是这个,那又怎样? 非常感谢 只有一种方法,MiniDumpWriteDump()就是方法 运行dumpbin.exe/imports c:\windows\system32\taskmgr.exe查看它使用的函数,您可以很容易地看到这一点。您将看到它从DbgHelp.dll导入minidumpWriteMap。这也是DbgHelp.dll最近随Windows提供的原因。只有一种方法,M

谁能告诉我windows内置任务管理器使用什么API来转储我选择的进程

如果我是对的,那不是迷你垃圾桶。如果不是这个,那又怎样?
非常感谢

只有一种方法,MiniDumpWriteDump()就是方法


运行
dumpbin.exe/imports c:\windows\system32\taskmgr.exe
查看它使用的函数,您可以很容易地看到这一点。您将看到它从DbgHelp.dll导入minidumpWriteMap。这也是DbgHelp.dll最近随Windows提供的原因。

只有一种方法,MiniDumpWriteDump()就是这种方法


运行
dumpbin.exe/imports c:\windows\system32\taskmgr.exe
查看它使用的函数,您可以很容易地看到这一点。您将看到它从DbgHelp.dll导入minidumpWriteMap。这也是DbgHelp.dll最近随Windows提供的原因。

简短回答,它使用了
MiniDumpWriteDump

详细信息(跳过了一些不必要的详细信息):

在Windows 7版本中,每当您要转储进程时,任务管理器可执行文件中都会调用一些包装器函数,以及进程ID和可执行文件名,例如
foo.exe

它使用
OpenProcess
获取进程句柄,并使用
HeapAlloc
将其存储在堆中分配的某些结构中

它使用
gettempathw
获取某些局部变量中的临时目录,并使用
PathAppendW
附加可执行文件名,例如
foo.exe
,并使用
PathRemoveExtension
删除扩展名,使其变为
foo
而不使用
.exe
,然后使用
PathAddExtensionW
添加新扩展名,并调用
PathYetAnotherMakeUniqueName
检查路径是否未使用或生成类似
foo(2).DMP的新路径。最后,它使用
CreateFile
获得文件句柄

它使用
DuplicateHandle
复制句柄,并将其存储在该结构中,然后创建一个新线程,并将该结构作为参数传递给线程函数

线程使用参数
MiniDumpWriteDump
调用
DumpType
设置为
0x1826

MiniDumpWithFullMemory | MiniDumpWithHandleData | MiniDumpWithUnloadedModules | MiniDumpWithFullMemoryInfo | MiniDumpWithThreadInfo

简短回答,它使用
minidumpWriteDomainp

详细信息(跳过了一些不必要的详细信息):

在Windows 7版本中,每当您要转储进程时,任务管理器可执行文件中都会调用一些包装器函数,以及进程ID和可执行文件名,例如
foo.exe

它使用
OpenProcess
获取进程句柄,并使用
HeapAlloc
将其存储在堆中分配的某些结构中

它使用
gettempathw
获取某些局部变量中的临时目录,并使用
PathAppendW
附加可执行文件名,例如
foo.exe
,并使用
PathRemoveExtension
删除扩展名,使其变为
foo
而不使用
.exe
,然后使用
PathAddExtensionW
添加新扩展名,并调用
PathYetAnotherMakeUniqueName
检查路径是否未使用或生成类似
foo(2).DMP的新路径。最后,它使用
CreateFile
获得文件句柄

它使用
DuplicateHandle
复制句柄,并将其存储在该结构中,然后创建一个新线程,并将该结构作为参数传递给线程函数

线程使用参数
MiniDumpWriteDump
调用
DumpType
设置为
0x1826

MiniDumpWithFullMemory | MiniDumpWithHandleData | MiniDumpWithUnloadedModules | MiniDumpWithFullMemoryInfo | MiniDumpWithThreadInfo