0

我想知道 kernel32.dll (或其他)中的 API 是否有子程序。例如 CopyFile 函数,它应该采取不同的动作将文件从 C: 复制到 D: 并从 netshare 路径 (\HOSTNAME\SHAREDFOLDER\FILENAME) 复制到某个地方,或者触发 windows server 2012 (hyper-v) 新功能ODX . 所以在CopyFile函数的定义中,应该有一些if/else分支,并调用一些子函数,不是吗?如果子程序存在。是否可以直接调用这些子函数,是否可以将它们挂钩?谢谢。

4

1 回答 1

0

据我所知,kernel32.dll调用函数的当前实现在ntdll.dll. 然后中的函数以ntdll.dll某种方式对内核进行系统调用。

要回答您的问题,是的,它调用子例程,并且它们可能会被挂钩,但是关于如何以不同方式具体读取和写入文件系统的大部分逻辑可能都隐藏在内核中。

请记住,您可能不应该深入研究这些 DLL 的内部——最好使用公共接口。依赖实现细节会使您的代码更加脆弱,并且可能会因操作系统升级而中断。

于 2013-07-26T04:09:40.890 回答