请教WINDOWS应用程序调用的API函数的DLL在内存中有几份拷贝?

请问WINDOWS应用程序调用的API函数的DLL在内存中有几份拷贝???
我们知道WINDOWS应用程序需要调用API函数,这些API函数被封装在DLL里,如:KERNEL32.DLL GDI32.DLL USER32.DLL

那么以上这3个DLL应该在WINDOWS启动后已经加载到内存中

我的问题是:
现在我启动我自己的WINDOWS应用程序,里面调用到KERNEL32.DLL里的API函数(其实这是动态链接上的).
那么我的应用程序到底是又加载了一份KERNEL32.DLL到内存?还是与"一开始就加载到内存的KERNEL32.DLL"共享使用??

------解决方案--------------------
是与"一开始就加载到内存的KERNEL32.DLL"共享使用
------解决方案--------------------
共享使用

你必要使用两份吗?
------解决方案--------------------
那些DLL会映射到你的进程空间中
------解决方案--------------------
这些DLL在windows启动的时候会被系统映射到内存中~~以加快程序的启动速度。。各个进程共享这些DLL,事实上DLL都是共享的,在内存中只有一份拷贝。

写时拷贝机制只是针对 ”页“ 而言,例如你改写kernel32中的一字节,那么将这改写后的一页只映射到你的内存空间。以后你的程序修改这页上的数据不会发生 写时拷贝。考虑最坏的情况,假设系统中的20个进程都修改了kernel32的所有数据,那么内存中也只有20份拷贝。